STM32面试:抢占优先级和子优先级有什么区别?中断为什么会嵌套?

浏览量:2
时间: 2026-11-15 22:33:10

FY EDU / INTERVIEW SERIES / STM32 / NVIC

STM32面试:抢占优先级和子优先级有什么区别?中断为什么会嵌套?

面试官问NVIC,往往不是想听你背寄存器名称,而是想确认你能否解释:为什么某个中断能打断另一个中断,另一个却只能排队。

面试官提问    

STM32中断优先级数字越大越高吗?抢占优先级和子优先级分别控制什么?

ST TouchGFX STM32CubeMX NVIC中断优先级配置界面截图  

参考回答

对Cortex-M常见的NVIC优先级编码来说,数值越小,逻辑优先级越高。抢占优先级决定一个中断能否打断当前正在执行的较低抢占优先级中断;子优先级用于在抢占优先级相同、多个中断同时待处理时决定先响应谁,本身不产生抢占。实际可配置位数和分组方式取决于MCU型号与内核实现,不能把某个系列的优先级位数套用到全部STM32。

01用一个现场例子说明

  • 假设串口中断抢占优先级为2,定时器中断为1,那么定时器中断可以抢占正在运行的串口中断。

  • 如果两个中断抢占优先级相同,即使子优先级不同,也不能相互抢占;当它们都处于待处理状态时,子优先级才参与排序。

  • 在很多STM32系列中,优先级寄存器只实现了高位的若干位;分组决定这些有效位如何分配给抢占优先级和子优先级。

02配置与调试顺序

  • 先查参考手册和CMSIS头文件确认可实现的优先级位数,再在CubeMX或代码中统一设置优先级分组。

  • 通过HAL_NVIC_SetPriority和HAL_NVIC_EnableIRQ等接口配置后,确认外设自身的中断使能位也已打开。

  • 如果使用FreeRTOS,调用可在ISR中使用的RTOS API时,还要遵守configMAX_SYSCALL_INTERRUPT_PRIORITY等限制。

03为什么中断会出现延迟

  • 中断可能被全局屏蔽、被更高优先级中断占用,或者处理函数本身执行过长。

  • 调试时可在中断入口和出口翻转GPIO,用逻辑分析仪测量延迟和执行时间,结合NVIC Pending/Active状态排查。

容易失分的回答

说“优先级数字越大越高”,或者认为子优先级更高的中断可以直接打断同抢占优先级的中断。

面试官可能继续追问

串口接收偶尔丢字节,是否应该把串口中断一律设为最高优先级?为什么?

常见追问 FAQ

两个中断抢占优先级一样会嵌套吗?

不会因为子优先级不同而发生抢占;先后处理顺序由待处理状态、子优先级和异常编号等规则共同决定。

相关业务入口

电子设计岗位学习与实战课程


声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。仅供学习交流使用,不构成商业目的。版权归原作者所有,如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时删除。侵权投诉
相关推荐HOT
运放电路PCB布局怎么减少噪声耦合?电子工程师面试按这个顺序回答

分类:电子工程师面试题经验级别:中级难度:中级题型:模拟电路/布局📖 本文概述运放电路的噪声性能不仅取决于芯片本身,PCB布局的影响同样关键。本文按照从输入回... 详情>>

2026-08-06 17:03:22
Linux内核调试手段怎么选?printk、ftrace与kgdb怎么用?嵌入式Linux面试

嵌入式Linux中高级场景/项目追问题本文概述内核调试是嵌入式Linux工程师的核心技能,也是面试的加分点。面试官想听的不是“printk打点”,而是你懂不懂不... 详情>>

2026-09-05 09:51:58
硬件工程师面试:5V与3.3V怎么做电平转换?BSS138适合哪些信号?

INTERVIEW PLAYBOOK / 02 · 硬件设计“3.3V单片机接一个5V传感器,只串电阻就够了吗?”这是硬件岗位非常常见的接口设计问题。正确答... 详情>>

2026-11-03 14:08:49
射频PCB中微带线和带状线有什么区别?射频工程师面试详解

分类:射频电路经验级别:1-3年难度:中级题型:原理对比+选型应用本文概述:微带线和带状线是射频PCB设计中最常用的两种传输线结构。微带线在表层,只有一面有参考... 详情>>

2026-08-17 11:10:29
高速串行链路的均衡技术怎么理解?CTLE与DFE在仿真中怎么评估?PCB仿真面试

PCB仿真中高级技术基础题本文概述均衡(Equalization)是高速串行链路(PCIe、USB3、SerDes)克服通道损耗的核心技术,也是PCB仿真面试的... 详情>>

2026-09-09 13:32:29
开班信息