一个奇怪的问题,使用
STM32L432的UART
通信,如果使能了uart的错误中断,代码如下:/* Enable the UART Error Interrupt: (Frame error, noise error, overrun error) */ SET_BIT(UartHandle.Instance->CR3, USART_CR3_EIE);
则程序会一直在串口中断中出不来,程序就跑步起来了。
在中断中如果清除了帧错误(Frame error)中断标志位,则程序可正常运行了。
由此说明了,是帧错误导致的,
问题是,什么是帧错误,是软件错误还是硬件错误呢?
确实是没清中断引起的。程序刚开始被误操作打开了帧错误中断使能,后来没有清除,就报出帧错误了。
串口的缓存也是要足够 的
一周热门 更多>