首页 > 代码库 > STM32F4 串口实验中收不到超级终端发送的数据,调试工具却能够
STM32F4 串口实验中收不到超级终端发送的数据,调试工具却能够
我用串口精灵发送数据没有问题。可是接收数据没反应。
串口接受的时候必需要用中断的。你发送仅仅靠单一的标志位是能够推断的,可是接受的时候,你是一直停留在while里面,我们推断接受是否完毕。通过检測是否收到0x0D、0x0A的连续来检測是否结束。当检測到这个结束序列后,就会置位USART_RX_STA的最高位来标记已经会搜到一次数据。之后等待外部函数清空才干够第二次接受。
改动:超级终端发送设置,以换行作为发送末尾。OK
while(1) { if(USART_RX_STA&0x8000) { len=USART_RX_STA&0x3fff;//μ?μ?′?′??óê?μ?μ?êy?Y3¤?è printf("\r\n?ú·¢?íμ????¢?a:\r\n"); for(t=0;t<len;t++) { USART_SendData(USART1, USART_RX_BUF[t]); //?ò′®?ú1·¢?íêy?Y while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//μè′y·¢?í?áê? } printf("\r\n\r\n");//2?è???DD USART_RX_STA=0; }else { times++; if(times%5000==0) { printf("\r\nALIENTEK ì??÷??STM32F407?a·¢°? ′®?úêμ?é\r\n"); printf("?yμ??-×ó@ALIENTEK\r\n\r\n\r\n"); } if(times%200==0)printf("??ê?è?êy?Y,ò???3μ?ü?áê?\r\n"); if(times%30==0)LED0=!LED0;//éá??LED,ìáê??μí3?y?ú??DD. delay_ms(10); } }
STM32F4 串口实验中收不到超级终端发送的数据,调试工具却能够
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。