OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2393|回复: 1

串口接收发送,数据不对?

[复制链接]

37

主题

142

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
278
金钱
278
注册时间
2016-9-13
在线时间
73 小时
发表于 2018-6-20 10:27:53 | 显示全部楼层 |阅读模式
5金钱
判断标志位,如果接受到数据,则把数据给ch,然后输出 “你输入的是。。。”,
调试过程中发现,输入多个字符的时候,比如abcd,只有前两个数据可以正常输出,你输入的是a   你输入的是b你输入的是a   你输入的是b  ;
输入1个字符的时候,没有数据显示,只有  你输入的是(空格)   你输入的是(空格)   
这种功能不用中断就做不了吗?谢谢
[mw_shl_code=c,true]/* 如果USART2的接收标志位不为0,即已经接收到数据 */
                if(USART_GetFlagStatus(USART2,USART_FLAG_RXNE)!=RESET)
                {
                        USART_ClearFlag(USART2,USART_FLAG_RXNE);
                        /* 将USART2接收到的数据放入变量ch缓存 */
                        ch=USART_ReceiveData(USART2);
                        printf("你输入的是");
                       
                        /* 把ch的内容,通过USART2发送 */       
                        USART_SendData(USART2,ch);
                        while(USART_GetFlagStatus(USART2, USART_FLAG_TC)==0);
                        USART_SendData(USART2,'\r');
                        while(USART_GetFlagStatus(USART2, USART_FLAG_TC)==0);
                        USART_SendData(USART2,'\n');
                        while(USART_GetFlagStatus(USART2, USART_FLAG_TC)==0);
                       
                }[/mw_shl_code]

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-6-21 01:42:17 | 显示全部楼层
不用中断,没办法及时响应串口接收。 一定要做是可以的,但是你这代码完全没考虑时效,所以,肯定不行。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-26 05:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表