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

利用中断的方式接收串口数据会发生溢出错误的问题

[复制链接]
Jeasonnnn 提问时间:2018-5-25 11:13 /
由于手上项目用的STM32L072的芯片,所有只能使用Cube库来写代码,利用软件配置好串口的各项参数后,使用串口中断的方式收发数据,发数据是正常的,但是在接收数据的时候总是会出现溢出错误,找遍了网上的解决办法也没找到问题,希望大神指导一下。

我在main一开始就只配置了时钟和串口,然后HAL_UART_Receive_IT(&huart1,uart1_rx_buf,1)。在回调函数中也同样开启一个字节的接收中断,而每次只能收到一次中断,由于ORE错误,所有进不去回调函数,因此收不到数据,不知道什么原因引起的,还请论坛里的大神指导一番。

下面贴出代码

main

main

push使用的是串口1,发送数据没有问题

串口配置.png
这是我出口的初始化函数

中断入口.png
中断入口,每次从这里跳进去的时候,串口的RXNE标志就被清了

溢出错误.png
这是进不去回调的溢出错误




收藏 评论11 发布时间:2018-5-25 11:13

举报

11个回答
wujique 回答时间:2018-5-25 14:11:44
1 中断程序(不仅仅是串口)要响应所有中断。不要只响应接收中断,其他错误中断也要处理,否则会频繁进入中断造成假死。
2 STM32串口只有一个硬件BUF,个人认为是硬伤。115200波特率的情况下,大家算下一个字节是多少us?
只要串口中断被卡主住这么长时间不处理,就造成溢出。
3 把中断优先级提高、用DMA、人工优化。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

xiajintaord 回答时间:2018-5-25 11:52:05
按你的说法 “中断入口,每次从这里跳进去的时候,串口的RXNE标志就被清了”
应该是下图中第二种情况了 RXNE = 0
ORE.png

评分

参与人数 1蝴蝶豆 +4 收起 理由
zero99 + 4

查看全部评分

andey 回答时间:2018-5-25 12:56:53
提示: 作者被禁止或删除 内容自动屏蔽
andey 回答时间:2018-5-25 13:13:41
提示: 作者被禁止或删除 内容自动屏蔽
Jeasonnnn 回答时间:2018-5-25 15:47:26
andeyqi 发表于 2018-5-25 12:56
可以参照上面分方式清除ORE标志,读取一次串口的DR寄存器,ORE flag就会被清除。
...

但是在USART1_IRQHandler中调用串口HAL_UART_IRQHandler的时候RXNE会自动被清除,也会造成进不去回调。       我发现在USART1_IRQHandler中不管执行什么操作RXNE都会被自动清除,都还没有去读RDR的内容它就自己清零了,到底是为什么呢
Jeasonnnn 回答时间:2018-5-25 16:17:08
xiajintaord 发表于 2018-5-25 11:52
按你的说法 “中断入口,每次从这里跳进去的时候,串口的RXNE标志就被清了”
应该是下图中第二种情况了 RX ...

但是都还没去读RDR寄存器它就自动被清了,导致我后面接收不了数据
xiajintaord 回答时间:2018-5-25 16:55:48
Jeasonnnn 发表于 2018-5-25 16:17
但是都还没去读RDR寄存器它就自动被清了,导致我后面接收不了数据

两种方法:
1、把中断优先级提高;
2、用 DMA(推荐)
andey 回答时间:2018-5-25 17:17:22
提示: 作者被禁止或删除 内容自动屏蔽
feixiang20 回答时间:2018-5-26 00:36:09
提高中断级后看看数组是不是溢出,看看中断代码有没有问题

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

废鱼 回答时间:2018-5-26 10:21:09
HAL库发生这个问题以后,需要重新初始化串口,这个问题基本发生在加断点以后。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

lcykk00 回答时间:2020-10-27 10:18:57
同样遇到了,接收溢出超载,数据量大的时候,必须得处理啊

所属标签

相似问题

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