stm32 不断进入串口中断的bug解决方法

在使用stm32的时候,发现usart会莫名的卡在串口中断里,然而串口初始化只配置了RXNE中断,打断点发现不断进入中断却没不是RXNE中断引起的,经过查找资料发现是ORE的问题,2篇博文解决方案如下:

http://bbs.21ic.com/icview-160999-1-1.html

http://blog.csdn.net/origin333/article/details/49992383

大致原因为开启了RXNE中断之后 ORE也开启了,但是使用USART_GetITStatus却无法读取到ORE的标志位(未使能ERR时),这样也无法消除中断申请,自然一直进入串口中断,如果要消除ORE需要使用USART_GetFlagStatus(USART1, USART_FLAG_ORE) ;然后再读取DR:USART_ReceiveData(USART1);就可以消除该中断请求。

猜你喜欢

转载自blog.csdn.net/gongyuan073/article/details/79436705