打印
[STM32C0]

NVIC优先级设对了中断为什么还是串着进?

[复制链接]
322|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Bblythe|  楼主 | 2025-5-4 07:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
两个外设优先级不一样,但触发后像是排队处理的,这是正常的吗?

使用特权

评论回复
沙发
Clyde011| | 2025-5-4 07:20 | 只看该作者
有些芯片支持优先级位数比较少,要注意。

使用特权

评论回复
板凳
公羊子丹| | 2025-5-4 07:20 | 只看该作者
可能设置的是响应优先级不是抢占。

使用特权

评论回复
地板
周半梅| | 2025-5-4 07:21 | 只看该作者
你是不是没使能中断嵌套?

使用特权

评论回复
5
帛灿灿| | 2025-5-4 07:22 | 只看该作者
优先级位数配置错了我也碰过。

使用特权

评论回复
6
童雨竹| | 2025-5-4 07:23 | 只看该作者
看下__NVIC_SetPriority那段有没有被覆盖。

使用特权

评论回复
7
万图| | 2025-5-4 07:24 | 只看该作者
有用FreeRTOS吗?RTOS会改优先级规则。

使用特权

评论回复
8
Wordsworth| | 2025-5-4 07:25 | 只看该作者
不同中断源共用IRQ也会串。

使用特权

评论回复
9
Bblythe|  楼主 | 2025-5-4 07:26 | 只看该作者
HAL库可能默认值改了中断响应。

使用特权

评论回复
10
Pulitzer| | 2025-5-4 07:26 | 只看该作者
抢占优先级设0也不一定先响应。

使用特权

评论回复
11
Uriah| | 2025-5-4 07:27 | 只看该作者
要不要发下你NVIC相关的代码?

使用特权

评论回复
12
夜阑风雨| | 2025-5-14 14:29 | 只看该作者
STM32C0NVIC支持抢占优先级和子优先级,但若未正确配置优先级分组,抢占优先级可能无法发挥作用。例如,若将优先级分组设置为“所有4位用于子优先级”,则中断无法嵌套,只能按顺序执行

使用特权

评论回复
13
暖了夏天蓝了海| | 2025-5-14 14:29 | 只看该作者
即使配置了优先级,若未通过NVIC_EnableIRQ()使能中断,或未清除中断挂起标志(如通过NVIC_ClearPendingIRQ()),可能导致中断无法及时响应

使用特权

评论回复
14
三生万物| | 2025-5-14 14:35 | 只看该作者
验证中断使能与标志清除,确保中断已通过NVIC_EnableIRQ()使能,并在ISR中清除中断标志。

使用特权

评论回复
15
光辉梦境| | 2025-5-14 16:00 | 只看该作者
若中断服务函数(ISR)未及时清除中断标志(如未清除USARTRXNE标志或EXTIPR标志),可能导致中断反复触发或无法退出,影响其他中断的响应。

使用特权

评论回复
16
淡漠安然| | 2025-5-14 16:30 | 只看该作者
系统时钟或总线阻塞,若系统时钟配置不当(如主频过低)或总线被高优先级外设阻塞(如DMA传输占用总线),可能导致低优先级中断被延迟处理,表现为“排队”现象。

使用特权

评论回复
17
一秒落纱| | 2025-5-14 17:00 | 只看该作者
硬件资源冲突,若两个中断共享同一硬件资源(如同一GPIO引脚被多个外设复用),可能导致中断触发条件冲突,影响中断响应顺序。

使用特权

评论回复
18
远山寻你| | 2025-5-14 17:40 | 只看该作者
确保通过NVIC_SetPriorityGrouping()正确配置优先级分组。

使用特权

评论回复
19
江河千里| | 2025-5-14 22:02 | 只看该作者
确保ISR执行时间尽可能短,避免长时间占用CPU。复杂逻辑可交由主循环或任务调度器处理。

使用特权

评论回复
20
别乱了阵脚| | 2025-5-14 22:40 | 只看该作者
检查系统时钟与总线配置,确认系统时钟(HCLKPCLK)配置正确,且总线未被高优先级外设阻塞。可通过调试工具(如逻辑分析仪)监控中断触发与响应时间

使用特权

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

本版积分规则

79

主题

4781

帖子

0

粉丝