STM32F4 串口实验中收不到超级终端发送的数据,调试工具却可以
2015-08-18 17:39
435 查看
我用串口精灵发送数据没有问题,但是接收数据没反应。
串口接受的时候必须要用中断的,你发送只靠单一的标志位是可以判断的,但是接受的时候,你是一直停留在while里面,我们判断接受是否完成,通过检测是否收到0x0D、0x0A的连续来检测是否结束。当检测到这个结束序列后,就会置位USART_RX_STA的最高位来标记已经会搜到一次数据。之后等待外部函数清空才可以第二次接受。
修改:超级终端发送设置,以换行作为发送末尾,OK
串口接受的时候必须要用中断的,你发送只靠单一的标志位是可以判断的,但是接受的时候,你是一直停留在while里面,我们判断接受是否完成,通过检测是否收到0x0D、0x0A的连续来检测是否结束。当检测到这个结束序列后,就会置位USART_RX_STA的最高位来标记已经会搜到一次数据。之后等待外部函数清空才可以第二次接受。
修改:超级终端发送设置,以换行作为发送末尾,OK
while(1) { if(USART_RX_STA&0x8000) { len=USART_RX_STA&0x3fff;//µÃµ½´Ë´Î½ÓÊÕµ½µÄÊý¾Ý³¤¶È printf("\r\nÄú·¢Ë͵ÄÏûϢΪ:\r\n"); for(t=0;t<len;t++) { USART_SendData(USART1, USART_RX_BUF[t]); //Ïò´®¿Ú1·¢ËÍÊý¾Ý while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//µÈ´ý·¢ËͽáÊø } printf("\r\n\r\n");//²åÈë»»ÐÐ USART_RX_STA=0; }else { times++; if(times%5000==0) { printf("\r\nALIENTEK ̽Ë÷ÕßSTM32F407¿ª·¢°å ´®¿ÚʵÑé\r\n"); printf("ÕýµãÔ×Ó@ALIENTEK\r\n\r\n\r\n"); } if(times%200==0)printf("ÇëÊäÈëÊý¾Ý,ÒԻسµ¼ü½áÊø\r\n"); if(times%30==0)LED0=!LED0;//ÉÁ˸LED,ÌáʾϵͳÕýÔÚÔËÐÐ. delay_ms(10); } }
相关文章推荐
- STM32F4 串口实验中收不到超级终端发送的数据,调试工具却可以
- 这是我在公司自己写的一个小项目模仿的一个互帮派APP后面那些我也没有时间完善希望希望的朋友帮我完善后面那些
- css3--实现最小宽的的方法(带滚动条)
- pat 2-05. 求集合数据的均方差(水题)
- 自定义Toast,从顶部掉下,然后再弹一下
- STM32F4 串口实验中收不到超级终端发送的数据,调试工具却可以
- Linux系统中对SSD硬盘优化的方法
- eclipse启动tomcat 访问http://localhost:8080 报404错误
- iOS笔记———数据存储
- yum 安装mysql5.6
- STM32F4 串口实验中收不到超级终端发送的数据,调试工具却可以
- 笔记-CSS3实现3D搜索输入框
- php学习-表单验证2
- 关于Android 下拉刷新,上拉加载更多数据功能的详细解析
- 笔记-CSS3实现3D搜索输入框
- Java基础知识—内部类
- ASP.NET mvc异常处理的方法
- Android底层音频声道耳机插头和开关壳体的发展
- Objective-C:NSArray的常见操作
- SSIS ->> Reliability And Scalability