中断是指在cpu在执行程序的过程中,由于某些内部或者外部的事件的发生,cpu停下正在执行的进程,转向去为这些事件服务,并且在服务完成后回到被打断的地方继续执行的机制。
嵌套向量控制器(NVIC)和外部中断/事件控制器(EXTI)
中断的类型可以分为内部中断和外部中断,内部中断只要和cpu运行时产生的一些错误和异常有关,我们一般进行配置的是外部中断。STM32对中断的管理是通过NVIC和EXTI两个外设来进行的。
NVIC
NVIC居于M4的内核之中,主要是对中断优先级和中断嵌套进行管理。
中断优先级
在STM32F4中,中断优先级由中断优先级寄存器(IPR)的高四位来控制。并且通过优先级分组将这四位又分为抢占优先级和子优先级,以便管理STM32中的大量中断。简单来说,优先级分组就是来规定IPR高四位的分配情况(如优先级分组为1,则表示抢占优先级占一位,子优先级占三位)。
在进行中断优先级的比较时,首先比较抢占优先级,当抢占优先级相同时比较子优先级。STM32里都是规定优先级的数值越小,对应中断的优先级越高。