STM32F0串口中断接收的奇怪问题

2019-07-14 15:32发布

程序运行后,在中断服务程序的(1)和(2)位置设置断点后全速运行。电脑使用串口助手首次发送256个字节到STM32F0可以正常运行到断点(2)。
然后电脑上串口助手再次发送256字节后,就停在断点(1)了。这是为什么?
网上说中断服务中判断到ORE时,读一次接收缓冲就行了。但是没作用啊
  if(USART_GetFlagStatus(USART1, USART_FLAG_ORE) != RESET)
   {
     USART_ReceiveData(USART1);  
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
cmh20
1楼-- · 2019-07-14 21:47
路过帮顶!!!
分修一班人
2楼-- · 2019-07-15 01:52
第二次停在了断点1……是不是就说你ORE置位了?
youxi8745
3楼-- · 2019-07-15 06:43
咋感觉是这个的问题volatile ,不太懂
nyvvhxcs
4楼-- · 2019-07-15 12:22
帮顶吧,顺便学习学习
TOPCB
5楼-- · 2019-07-15 14:48
 精彩回答 2  元偷偷看……
dipper011
6楼-- · 2019-07-15 16:12
TOPCB 发表于 2018-12-3 20:51
先读取数据,然后再清除溢出标志位。

谢谢版主,这个中断没有问题。是外部清接收完标志时出错

一周热门 更多>