346|3

6039

帖子

4

TA的资源

版主

【NUCLEO H533RE】之六 串口overrun错误问题解决 [复制链接]

本帖最后由 damiaa 于 2024-8-8 17:15 编辑

                                            【NUCLEO H533RE】之六 串口overrun错误问题解决

 

偶然之中发现一个stm32的通用问题,就是串口接收错误死机(其实不是死机,是串口不能工作了)。

后来用其他stm32单片机,如stm32f系列也是有这个问题,特别是电路搭建的比较乱,波特率比较高就容易出现。
 
H533RE的nucleo板是很不容易发现的。
 
手上有个搭建的stm32f051板子就这样:
工作在9600 19200 38400 57600都没问题,工作在115200就有问题。
 
下图是出错的数据,接收到数据会点亮或者熄灭led。
145203njgoyfgv5ainnffp.png
 
因为搭建的电路干扰大,加上使用的内置时钟
 
但无论什么问题。串口不能死机。
对stm32作一番分析后,发现stm32cubied产生的代码默认的错误溢出是允许中断,而且错误中断需要用户自己写回调函数解决
145203x2g2gqxq2ajr1ixk.png
图片.png  
这样解决方案采取如下:
1,不用的DMA接收错误是必须关闭。
2,使用的Overrun要么关闭,要么采用函数处理。
图片.png  
使用的处理函数放在main.c中处理回调函数的地方:
145203igw77767qagxhww7.png
3,尽量把电路搞规整点,适当条件下时候外部晶体。
4,不是要求高的时候莫把波特率调得老高。
 
实验补充:
后来用stm32cubeide生成的stm32f030程序在stm32f0308-disco开发板跑。竟然只能跑38400少量数据不出错,多了还出错。
也不知道是我的连接线有问题还是什么情况。这个开发板没焊接外部晶振。
看来低端的stm32f系列芯片程序还是用标准库 LL库好,用HAL库肯定不是最佳选择。毕竟代码绕来绕去用去时间。效率自然地下。搞得收串口数据都忙不过来了。
 
当然H533RE是要用HAL库的,不然浪费了。
此帖出自stm32/stm8论坛

最新回复

嗯嗯,也算是积累经验,遇到串口问题也容易定位   详情 回复 发表于 2024-8-9 09:30

回复
举报

6401

帖子

2

TA的资源

版主

产生了错误中断,如果把错误中断标志位清除了,串口应该就能正常工作了吧?

还是很少遇到串口错误。

此帖出自stm32/stm8论坛

点评

应该也是可以,方法应该很多。我这里是找了一两种解决的方法。   毕竟还是要避免错误中断产生的条件。但产生了还是要能工作。    详情 回复 发表于 2024-8-8 15:20

回复

6039

帖子

4

TA的资源

版主

本帖最后由 damiaa 于 2024-8-8 15:29 编辑
wangerxian 发表于 2024-8-8 15:11 产生了错误中断,如果把错误中断标志位清除了,串口应该就能正常工作了吧? 还是很少遇到串口错误。

应该也是可以,方法应该很多。我这里是找了一两种解决的方法。

新的stm32cube产生的 HAL的库才有这方面的问题。

老的标准库是没有这个问题的,据说是老的标准库统一处理了这个中断

图片.png  

 

毕竟还是要避免错误中断产生的条件。但产生了还是要能工作。

 

也希望有这方面经验的能多多指点。

 

此帖出自stm32/stm8论坛

点评

嗯嗯,也算是积累经验,遇到串口问题也容易定位  详情 回复 发表于 2024-8-9 09:30

回复

6401

帖子

2

TA的资源

版主

damiaa 发表于 2024-8-8 15:20 应该也是可以,方法应该很多。我这里是找了一两种解决的方法。 新的stm32cube产生的 HAL的库才有这 ...

嗯嗯,也算是积累经验,遇到串口问题也容易定位

此帖出自stm32/stm8论坛

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表