江飞雪 发表于 2016-10-12 17:35:41

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)中断标志位,则程序可正常运行了。
由此说明了,是帧错误导致的,
问题是,什么是帧错误,是软件错误还是硬件错误呢?


江飞雪 发表于 2016-11-28 11:10:33

liu553824989 发表于 2016-10-21 20:06
我觉得是没清中断引起的,请看清楚UART的寄存器,打印出来看看把

确实是没清中断引起的。程序刚开始被误操作打开了帧错误中断使能,后来没有清除,就报出帧错误了。

anywill 发表于 2016-10-17 09:03:43

这是常事。


通信参数是否设置正确;
通信线路是否可靠;是否有干扰;
通信速率是否设置过高;
软件内部是否有Bug;
等等。
另外所用测试串口软件是否可靠,可以备用几个测试,流行的如格西烽火、串口调试助手等都不错。

重新传送,即可

zero99 发表于 2016-10-13 16:01:53

发错分类了,楼主下次麻烦按【求助】发

zengyi703-16313 发表于 2016-10-17 08:51:55

是不是和自动波特率检测方面的设置有关系

z258121131 发表于 2016-10-17 08:56:10

可以调试查看寄存器值确定一下到底什么问题啊

zhoupxa 发表于 2016-10-17 09:09:38

帧错误是串行帧位序列不符合接收设置要求,比如9600,8,n,1,接收到确是9600,8,e,1,多了一位偶校验位就会造成接收端帧错误。原因可能是收发端帧格式设置不一致,或者波特率不一致,强干扰也可能造成这种这种情况。

lulugl 发表于 2016-10-17 09:14:18

也就来看看

Xinfeng 发表于 2016-10-17 09:21:55

应该检查一下设置,两端设置是否一致

aabird 发表于 2016-10-17 09:26:45

奇偶检验位的原因吧,这个帧错误还真是没听说过,我再看看手册

benlarden 发表于 2016-10-17 09:38:26

帮顶起来!~~~
页: [1] 2
查看完整版本: STM32L432,UART帧错误是什么错误