我们的STM32中断支持嵌套中断,比如正在执行优先级为2的中断的中断服务程序,然后现在来了一个优先级为1的中断,那么会跳到优先级为1的中断的中断服务程序中去执行,执行完再返回优先级为2的中断的中断服务程序,根据中断类型可以分为系统异常(比如SysTick)和外部中断,见下图,灰色部分为系统异常,白色部分为外部中断,数字越低优先级越高
看到上面这么多复杂的中断,总得有一个控制器来管理它们,这个控制器就叫做NVIC,NVIC全名叫嵌套向量中断控制器,属于内核外设,管理着包括内核和片上所有外设的中断相关的功能,涉及的两个文件有core_cm3.h和misc.h
在core_cm3.h对NVIC_Type的定义
typedef struct
{
__IO uint32_t ISER[