一个奇怪的问题,使用STM32L432的UART通信,如果使能了uart的错误中断,代码如下:/* Enable the UART Error Interrupt: (Frame error, noise error, overrun error) */ SET_BIT(UartHandle.Instance->CR3, USART_CR3_EIE); 则程序会一直在串口中断中出不来,程序就跑步起来了。 在中断中如果清除了帧错误(Frame error)中断标志位,则程序可正常运行了。 由此说明了,是帧错误导致的, 问题是,什么是帧错误,是软件错误还是硬件错误呢? |
确实是没清中断引起的。程序刚开始被误操作打开了帧错误中断使能,后来没有清除,就报出帧错误了。
评分
查看全部评分
通信参数是否设置正确;
通信线路是否可靠;是否有干扰;
通信速率是否设置过高;
软件内部是否有Bug;
等等。
另外所用测试串口软件是否可靠,可以备用几个测试,流行的如格西烽火、串口调试助手等都不错。
重新传送,即可
评分
查看全部评分
评分
查看全部评分