《嵌入式技术及应用(STM32CubeMX版) 代码 Task10Main.docx》由会员分享,可在线阅读,更多相关《嵌入式技术及应用(STM32CubeMX版) 代码 Task10Main.docx(2页珍藏版)》请在第一文库网上搜索。
1、123456789101112131415161718192021222324252627282930313233343536373839在任务10中,main,c文件中所编写用户应用程序如下,读者只需将下列代码按照程序编写规范的要求添加至main.c文件的对应位置处,就得到任务IO的应用程序。#inc1ude“stdio.h#inc1ude“string.h#inc1ude“Seria1,h”uint8_tCOInStrI5=0x55,Oxaa,0x01,0x5a;命令1uint8_tComStr25:0x55,Oxaa,0x02,0x5a;命令2uint8_tCOnIStr35:0x55,
2、Oxaa,0x03,0x5a;命令3uint8_tCOnIStr44:0x55,Oxaa,0x04;命令4部分代码intmain(void)char*fp;uint8_tenfIash=O;允许1ED1闪烁0:禁止HA1_UART_Receive_IT(&huar11,&aRxBuf,1);*使能串口1接收中断,并指定接收缓冲区和接收数据长度*/whi1e(1)if(_HA1_UART_GET_F1AG(&huart1,UART_F1AG_ID1E)!=RESET)*判断是否是空闲中断(ID1E)发生*/if(strstr(constchar*)UserRxBuf,(constchar*)Co
3、mStr1)!=NU11)收到0x55aaO15a命令1ED1亮,其他1ED熄灭enf1ash=0;禁止1EDI闪烁HA1-GPIOJVritePin(GPIOE,Oxff,GPIO_PIN_SET);/*熄灭所有c*/HA1-GPIOJVritePin(GPIOE,GPIO_PIN_O,GPIO_PIN_RESET);/点亮1ED1Printf(执行命令1,1ED1亮rn);e1seif(strstr(constchar*)UserRxBuf,(constchar*)ComStr2)!=NU11)收到0x55aa025a命令1ED1闪烁,其他发光二极管熄灭HA1_GPIOJVritePin(
4、GP10E,Oxff,GPIO_PIN_SET);/*熄灭所有1ED*/enf1ash=1;允许1EDI闪烁Printf(执行命令2,1ED1闪烁rn);e1seif(strstr(constchar*)UserRxBuf,(constchar*)ComStr3)!=NU11)收到0x55aa035a命令1ED2亮,其他发光二极管熄灭enf1ash=O;/*禁止1EDI闪烁*/HA1_GPIOJVritePin(GPIOE,Oxff,GPIO_PIN_SET);熄灭所有1EDHA1GPIOJVritePin(GP10E,GPIOPIN1,GP1(1PIh1RESET);点亮1ED2Printf
5、(执行命令3,1ED2亮rn);e1seif(fp=strstr(constchar*)UserRxBuf,(constchar*)ComStr4)!=NU11)收到0x55aa04va15a命令点亮所有发光二极管if(*(fp+4)=0x5a)检查是否收到了命令数据尾0x5a收到了帧尾0x5aenf1ash=0;禁止1ED1闪烁HA1-GPIOJVritePin(GPIOE,Oxff,GPIO_PIN_RESET)/点亮所有1EDPrintf(执行命令4,收到数据%drn”,*(fp+3);memset(UserRxBuf,0,UserRxCnt);UserRxCnt=O;串口接收计数值清0_HA1_UART_C1EAR_ID1EF1AG(huart1);/*清除ID1E中断请求标志*/)if(enf1ash)4041424344454647484950515253545556575859606162HA1_GPIO_Togg1ePin(GPIOE,GPIO_PIN_O);/1ED1的状态翻转HA1_De1ay(500);