STM32串口通信收发不一致,急!

2019-03-23 20:14发布

代码如下:
while(1)
{
      while(!USART_GetFlagStatus(USART1,USART_FLAG_RXNE));       //接收       
   i = USART_ReceiveData(USART1);

     USART_SendData(USART1,i);   //发送
     while (!USART_GetFlagStatus(USART1,USART_FLAG_TXE));
}

使用串口调试助手,发“abcde”,一般只能收到“e”,有点错乱,不知道问题出在哪里?大家帮看下!
还有在调试时,我发现写USART->DR,TXE标志没有清零,是怎么回事? 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
ghye
1楼-- · 2019-03-24 03:04
/ 总能够收到a才对喔
ghye
2楼-- · 2019-03-24 04:13
 精彩回答 2  元偷偷看……
dy452876
3楼-- · 2019-03-24 04:52

查询法不可以吗?

如果把发送和接受两个函数加在for循环里 就可以正常显示字符串了,这是为什么呢?

还有TXE状态调试的时候始终是1,没有清零过,是怎么回事?

 

战士大风车
4楼-- · 2019-03-24 05:25
你给的信息太少了,不能判断错误在哪
losingamong
5楼-- · 2019-03-24 06:01
 精彩回答 2  元偷偷看……
dy452876
6楼-- · 2019-03-24 07:30
to:ghye
前面收到的应该被覆盖掉了。
查询法就不行吗?
to :战士大风车
初始化什么的都是设定好的,我没改过,我就写了这么4句话。51单片机上就可以。
to:losingamong
试过,没有用。
我就是想 实现从串口通信助手发送并把接收字的符串显示出来,随便发多少(查询法)。大家再帮看看!

一周热门 更多>