你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32L432,UART帧错误是什么错误

[复制链接]
江飞雪 提问时间:2016-10-12 17:35 /
一个奇怪的问题,使用STM32L432的UART通信,如果使能了uart的错误中断,代码如下:/* Enable the UART Error Interrupt: (Frame error, noise error, overrun error) */        SET_BIT(UartHandle.Instance->CR3, USART_CR3_EIE);
则程序会一直在串口中断中出不来,程序就跑步起来了。
在中断中如果清除了帧错误(Frame error)中断标志位,则程序可正常运行了。
由此说明了,是帧错误导致的,
问题是,什么是帧错误,是软件错误还是硬件错误呢?


收藏 1 评论15 发布时间:2016-10-12 17:35

举报

15个回答
江飞雪 回答时间:2016-11-28 11:10:33
liu553824989 发表于 2016-10-21 20:06
我觉得是没清中断引起的,请看清楚UART的寄存器,打印出来看看把

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

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2 结贴奖励

查看全部评分

anywill 回答时间:2016-10-17 09:03:43
这是常事。


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

重新传送,即可

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

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,多了一位偶校验位就会造成接收端帧错误。原因可能是收发端帧格式设置不一致,或者波特率不一致,强干扰也可能造成这种这种情况。

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

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
帮顶起来!~~~
无薪税绵 回答时间:2016-10-17 11:58:24
没有用过STM32L432,只能帮加人气了。
Stm32McuLover 回答时间:2016-10-17 12:07:05
zbber 回答时间:2016-10-17 13:54:10
也就来看看
lilingzhi1987 回答时间:2016-10-19 15:12:06
顶一下。。。。。。。。。。。。。。
仙景 回答时间:2016-10-21 20:06:38
我觉得是没清中断引起的,请看清楚UART的寄存器,打印出来看看把

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

12下一页
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版