关于USART接收中断的BUG和注意事项

[复制链接]
35321|78
秒针之上 发表于 2015-4-25 11:00 | 显示全部楼层
其实不用这么麻烦的,直接在IRQ中断中将判断条件由
if(USART_GetITStatus(USART2,USART_IT_RXNE) != RESET)
改为while(USART_GetITStatus(USART2,USART_IT_RXNE) != RESET)就行了。
我本来也遇到了这个问题,将
if(USART_GetITStatus(USART2,USART_IT_RXNE) != RESET)
改成
if(USART_GetFlagStatus(USART1, USART_FLAG_ORE) != RESET)
以后直接读取DR的话,只能获取字符串中基数或者偶数位的字符。但是如果将if改成while(还是读取RXNE而不是ORE)就直接可以获取大批连续数据了
xiaoyh520 发表于 2015-5-21 17:39 | 显示全部楼层
我在也在这个地方中招了
Thor9 发表于 2015-5-21 20:26 | 显示全部楼层
betbet 发表于 2015-7-7 08:48 | 显示全部楼层
碰到同样的问题了,找了老半天。
joyo00321949 发表于 2015-8-13 09:10 | 显示全部楼层
谢谢,看了你的**全明白了
wangxinyong 发表于 2015-11-3 21:26 | 显示全部楼层
好贴,学习了,一直被困扰,感谢
那就地方iv 发表于 2015-11-4 08:46 | 显示全部楼层
谢谢楼主发帖总结,受益了
tatiyixi 发表于 2016-1-7 01:36 | 显示全部楼层
quangezaizhe 发表于 2016-4-12 18:05 | 显示全部楼层
MARK 解燃眉之急  不过我不是在电脑狂发信息到下位机 而是使能了接收中断,在整个系统上电瞬间可能导致了接收 ORE  表现就是用中断的东西可以工作但是中断频率也被拖慢了,主函数基本进不去
等我验证了再来补帖   先顶楼主
年年有恩 发表于 2016-6-3 09:51 | 显示全部楼层
马克!
victor1934 发表于 2016-6-9 10:57 | 显示全部楼层
感谢楼主分享,很不错的帖子,详细到位,支持一下~~
lanenwu 发表于 2016-6-9 22:30 | 显示全部楼层
感谢楼主的分享,希望咱们在解决了问题的时候也积极分享,感谢楼主
CBeginners 发表于 2016-6-12 16:34 | 显示全部楼层
xzezhen 发表于 2016-6-16 16:41 | 显示全部楼层
很赞,学习了
蓝色天使211 发表于 2016-7-3 17:41 | 显示全部楼层
好帖子,赞一个!
coderdd 发表于 2018-3-14 11:20 | 显示全部楼层
解决问题能力满分,有大神在,所以我基本百度,最终总能找到解决方案。。。。
echohmy 发表于 2019-5-27 15:41 | 显示全部楼层
cainiao518 发表于 2019-10-28 19:37 | 显示全部楼层
好帖,赞一个
qhtflsw 发表于 2020-10-30 10:24 | 显示全部楼层
  if (LL_USART_IsActiveFlag_ORE(USART1))
  {
    LL_USART_ClearFlag_ORE(USART1);
  }
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部