STM32L432,UART帧错误是什么错误
一个奇怪的问题,使用STM32L432的UART通信,如果使能了uart的错误中断,代码如下:/* Enable the UART Error Interrupt: (Frame error, noise error, overrun error) */ SET_BIT(UartHandle.Instance->CR3, USART_CR3_EIE);则程序会一直在串口中断中出不来,程序就跑步起来了。
在中断中如果清除了帧错误(Frame error)中断标志位,则程序可正常运行了。
由此说明了,是帧错误导致的,
问题是,什么是帧错误,是软件错误还是硬件错误呢?
liu553824989 发表于 2016-10-21 20:06
我觉得是没清中断引起的,请看清楚UART的寄存器,打印出来看看把
确实是没清中断引起的。程序刚开始被误操作打开了帧错误中断使能,后来没有清除,就报出帧错误了。 这是常事。
通信参数是否设置正确;
通信线路是否可靠;是否有干扰;
通信速率是否设置过高;
软件内部是否有Bug;
等等。
另外所用测试串口软件是否可靠,可以备用几个测试,流行的如格西烽火、串口调试助手等都不错。
重新传送,即可 发错分类了,楼主下次麻烦按【求助】发 是不是和自动波特率检测方面的设置有关系 可以调试查看寄存器值确定一下到底什么问题啊 帧错误是串行帧位序列不符合接收设置要求,比如9600,8,n,1,接收到确是9600,8,e,1,多了一位偶校验位就会造成接收端帧错误。原因可能是收发端帧格式设置不一致,或者波特率不一致,强干扰也可能造成这种这种情况。 也就来看看 应该检查一下设置,两端设置是否一致 奇偶检验位的原因吧,这个帧错误还真是没听说过,我再看看手册 帮顶起来!~~~
页:
[1]
2