在嵌入式开发中,STM32F1的NVIC(嵌套向量中断控制器)是实现精准中断响应的关键模块。本文直击NVIC配置核心,提炼九大可操作性技巧,拒绝空泛概念,聚焦实战配置。

1、优先级分组配置
通过SCB->AIRCR寄存器设置4位优先级分组,支持抢占优先级与子优先级独立分配(如2位抢占+2位子优先级)。
2、中断线使能控制
使用NVIC_EnableIRQ()函数启用特定中断线(如EXTI0_IRQn),禁用时调用NVIC_DisableIRQ()避免误触发。
3、中断向量表重定位
在启动文件startup_stm32f10x.s中调整中断向量表基地址,确保中断服务函数(ISR)正确映射。
4、抢占优先级设置
通过NVIC_SetPriority()为每个中断分配抢占优先级,高优先级中断可打断低优先级中断执行。
5、子优先级细化控制
同一抢占优先级下,子优先级决定中断执行顺序,避免同级中断随机响应问题。
6、中断服务函数编写规范
ISR必须使用__irq前缀(或标准语法),保持短小高效,避免在ISR内执行复杂运算或阻塞操作。
7、中断嵌套与屏蔽管理
通过__disable_irq()和__enable_irq()全局控制中断开关,配合PRIMASK寄存器实现临界区保护。
8、中断状态查询
使用NVIC_GetPendingIRQ()检查中断挂起状态,结合NVIC_ClearPendingIRQ()清除挂起标志。
9、低功耗模式中断唤醒
在睡眠、停机等低功耗模式下,配置指定中断为唤醒源,确保系统快速响应外部事件。
本文凡亿教育原创文章,转载请注明来源!

扫码关注









































