打印
[STM32F3]

NVIC中断优先级设了也没用,是不是还有别的限制?

[复制链接]
409|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
万图|  楼主 | 2025-5-7 07:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想让USART中断抢占ADC,设了优先级却没反应,是预设组有问题吗?

使用特权

评论回复
沙发
Clyde011| | 2025-5-7 07:33 | 只看该作者
你设的是抢占优先级还是响应优先级?

使用特权

评论回复
板凳
公羊子丹| | 2025-5-7 07:34 | 只看该作者
是不是NVIC_GROUP设错了?

使用特权

评论回复
地板
周半梅| | 2025-5-7 07:35 | 只看该作者
你看下文档,那几个组挺容易混的。

使用特权

评论回复
5
帛灿灿| | 2025-5-7 07:36 | 只看该作者
有些中断默认优先级会比你设的还高。

使用特权

评论回复
6
童雨竹| | 2025-5-7 07:37 | 只看该作者
HAL库设中断优先级时得注意函数调用顺序。

使用特权

评论回复
7
万图|  楼主 | 2025-5-7 07:37 | 只看该作者
是不是用的是相同通道?

使用特权

评论回复
8
Wordsworth| | 2025-5-7 07:38 | 只看该作者
我把一个设成0另一个设1才抢占成功。

使用特权

评论回复
9
Bblythe| | 2025-5-7 07:39 | 只看该作者
是不是你没启用中断使能?

使用特权

评论回复
10
Pulitzer| | 2025-5-7 07:40 | 只看该作者
打断点确认哪个先触发的。

使用特权

评论回复
11
Uriah| | 2025-5-7 07:41 | 只看该作者
Cortex-M的抢占机制挺坑的,要看清文档。

使用特权

评论回复
12
夜阑风雨| | 2025-5-12 14:56 | 只看该作者
若USART中断的抢占优先级未设置为比ADC中断更高,就无法打断ADC中断。

使用特权

评论回复
13
一秒落纱| | 2025-5-12 15:00 | 只看该作者
        在STM32F3中设置NVIC中断优先级却未生效,导致USART中断无法抢占ADC中断,可能是由中断优先级分组配置错误、抢占/响应优先级设置不当、中断使能未开启、中断服务函数实现问题或硬件相关配置错误等原因造成的

使用特权

评论回复
14
江河千里| | 2025-5-12 15:45 | 只看该作者
       如果未显式调用函数设置分组,或设置的优先级分组不合理,就可能导致优先级行为完全失效。

使用特权

评论回复
15
暖了夏天蓝了海| | 2025-5-12 17:03 | 只看该作者
  抢占优先级决定中断是否可以打断其他正在执行的中断,响应优先级则在具有相同抢占优先级的中断之间确定执行顺序。

使用特权

评论回复
16
三生万物| | 2025-5-12 18:21 | 只看该作者
   中断服务函数本身实现不当,如未正确清除中断标志位,可能导致中断重复触发或无法正常响应新事件;在中断服务函数内使用阻塞性的延时,或修改全局变量时没有加锁,也会引起意想不到的错误,如中断服务函数执**死或无法正常返回、全局变量的访问被中断打断导致数据错误等。

使用特权

评论回复
17
淡漠安然| | 2025-5-12 18:53 | 只看该作者
   使用NVIC_PriorityGroupConfig()函数来设置优先级分组,,该函数实质是配置SCB->AIRCR寄存器。

使用特权

评论回复
18
远山寻你| | 2025-5-12 19:30 | 只看该作者
     如,USART和ADC的外设时钟未开启,或相关的GPIO引脚和中断线未正确配置,也可能导致中断无法正常响应。

使用特权

评论回复
19
光辉梦境| | 2025-5-12 21:00 | 只看该作者
  即使配置了中断优先级,若未在NVIC中使能USART中断,中断服务函数也不会被触发,从而无法实现抢占。

使用特权

评论回复
20
别乱了阵脚| | 2025-5-12 22:00 | 只看该作者
    确定优先级分组后,再为USART中断和ADC中断分别设置合适的抢占优先级和响应优先级。例如,设置USART中断的抢占优先级低于ADC中断(数值更小),响应优先级可根据实际情况调整。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

108

主题

5144

帖子

1

粉丝