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

STM32G070RET6,中断优先级配置没有效果

[复制链接]
doufulao 提问时间:2025-3-12 16:40 / 未解决

配置如下图,串口1优先级最高,但是还是被串口3给打断,如果串口3频繁有数据的话。在该优先级配置下,只将串口1的波特率从115200修改为9600,串口1数据可以完整接收,说明了高速率模式下,优先级并没有起效。image.png

image.png
收藏 评论6 发布时间:2025-3-12 16:40

举报

6个回答
doufulao 回答时间:前天 16:41

请各位老师指点一下

butterflyspring 回答时间:前天 17:04
建议使用 DMA 模式呀,很多小伙伴们都这样用。


而只要是中断模式,都会有执行时间的。

一般应用中都还会有很多其他中断的,用DMA模式就可以很好解决这类问题。
xmshao 回答时间:前天 17:40
对于G0系列的中断优先级只有抢占优先级,在库函数里的那个设置子优先级的地方无视即可。


可以肯定,低优先级的中断没法抢占高优先级的,注意配置时,优先级越高数字越小。


你如果使用CubeMx配置的话,在NVIC那里就可以看到各个中断优先级 的配置。


当然,在调试环境里也可以查看各中断的优先级。
doufulao 回答时间:昨天 14:01

xmshao 发表于 2025-3-12 17:40
对于G0系列的中断优先级只有抢占优先级,在库函数里的那个设置子优先级的地方无视即可。</p>
<p>

感谢您的评论,库函数确实是只有抢占的,所以我也只配置了抢占,串口1优先级直接给了0,其他的都非0了。不过还是这个现象

xmshao 回答时间:昨天 14:37
不必客气。


尽管你目前有这个现象,但这个现象并不能说明高优先级中断 能 被低优先级的抢占。


见不到你的具体代码,还是给些建议与你:


一、确认下优先级的配置;


二、确认下在高波特率前提下,UART1的接收是否总是可靠;


三、UART1接收处理代码有无跟其他关联的地方,容易导致处理速度变慢的情形;


四、UART3收发处理代码里有无临时关闭中断的操作;
doufulao 回答时间:昨天 15:15

xmshao 发表于 2025-3-13 14:37
不必客气。</p>
<p>

之前用的G070芯片,串口1和3配置的相同抢占等级而且还不是最高的优先级,没有出现这种现象,现在移植到G0B1上出现了。我拿CUBEMX生成的NVIC部分,也就这两条库函数语句

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版