1、NIVC

  • ARM Cortex-M3 内核搭载了一个强大而方便的中断系统,称之为 NVIC(嵌套向量中断控制器)。

  • Cortex-M3 支持 256 个“中断通道”(16 个异常+240 个中断)以及对应的可编程 256 级中断优先级设置。

  • STM32 虽然采用 Cortex-M3 内核,但是只使用了其中的 84 个“中断通道”(16 个异常+68 个中断)以及 16 级中断优先级设置。

同时也记录下自己当时的一个插曲。

KST-STM32学习之中断优先级与中断嵌套

这个TIM6_IRQn《STM32固件库手册》中查NVIC_IRQChannel的取值是没有的,然后咨询下老师,如下回复
KST-STM32学习之中断优先级与中断嵌套

再拐回头看下教程,着实一不一样

KST-STM32学习之中断优先级与中断嵌套

看来要不看最新的手册,要不就是直接参考头文件才行!

2、优先级及中断嵌套

  • 优先级分为抢占优先级响应优先级

  • 51所设置的优先级均属于抢占优先级,默认的便是响应优先级!

  • 高抢占优先级可以嵌套低抢占优先级的中断。

  • 两者抢占优先级相同,那么无论响应优先级是什么关系,这两者都没有嵌套关系。

假如两者同时发生,且抢占优先级相同,则根据响应优先级顺序执行;加入此时他们的相应优先级也相同,则根据中断清单表排位顺序执行,序号越小,对应优先级越高!

编程时需要注意:
首先要预先对程序的各个功能模块进行计算论证,开机初始化时一次性设置好优先级分组,以后就再也不动他了,避免同一个程序中使用多个优先级分组。

相关文章: