《T嵌入式技术及应用(STM32CubeMX版) 代码 ask16Main.docx》由会员分享,可在线阅读,更多相关《T嵌入式技术及应用(STM32CubeMX版) 代码 ask16Main.docx(2页珍藏版)》请在第一文库网上搜索。
1、1234567891011121314151617181920212223242526272829303132333435在任务16中,main,c文件中所编写用户应用程序如下,读者只需将下列代码按照程序编写规范的要求添加至main.c文件的对应位置处,就得到任务16的应用程序。inc1ude,stdio.h8inc1udestring,h”inc1udeSeria1,h”uint8_tComStr3=0x55,0xaa;命令的部分代码intmain(void)(char*fp;uint16_tva1;HA1_UART_Receive_ITGhuart1,&aRxBuf,1);*使能串口1接收
2、中断,并指定接收缓冲区和接收数据长度*/whi1e(1)(if(_HA1_UART_GET_F1AG(&huart1,UART_F1AG_ID1E)!=RESET)*判断是否是空闲中断(ID1E)发生*/(if(fp=strstr(constchar*)UserRxBuf,(constchar*)ComStr)!=NU11)收到0x55aaif(*(fp+4)=0x5a)检查是否收到了帧尾0x5a收到了帧尾0x5ava1=(uint16_t)*(fp+2)8(*(fp+3);/*将接收数据拼成DA转换值*/if(va14096)/*检查DA值的范围*/*在04095之间,则设置DA值,并启动D
3、A转换*/PrintfC当前输入数据为0x,即刎,输出电压为%.2fVrn”,va1,va1,3.3*va14095);HA1_DAC_SetVa1ue(hdac,DAC_CHANNE1_1,DAC_A1IGN_12B_R,va1);*设置DA转换值*/HA1_DAC_Start(&hdac,DAC_CHANNE1_1);/*启动DA转换*/)e1se*过大,则提示*/printf(当前输入数据为0x%x,即%d,输入数据过大!rn”,va1,va1);)e1se/*没收到数据尾0x5a*/Printf(输入非法!数据尾不是5a!rn*);)e1se/*没收到数据头*/Printf(输入非法!数据头不是55aa!rn*);)memset(UserRxBuf,0,UserRxCnt);串口接收缓冲区清0USerRXCnt=0;串口接收计数值清0363738394041424344454647484950_HA,_UART_C1EAR_ID1EF1AG(huart1);/*清除TD1E中断请求标志*/