一、NVIC中断系统
Cortex-M4集成了嵌套式矢量型中断控制器(Nested Vectored Interrupt Controller,NVIC)来实现高效的异常和中断处理。
中断系统包含外部中断、定时器中断、DMA中断和串口中断等。
二、EXTI外部中断
EXTI(中断/事件控制器)包括23个相互独立的边沿检测电路并且能够向处理器内核产生中断请求或唤醒事件。
EXTI有三种触发类型:上升沿触发、下降沿触发和任意沿触发。
三、中断触发源
EXTI触发源包括来自I/O管脚的16根线以及来自内部模块的7根线,包括LVD、RTC闹钟、USB唤醒、以太网唤醒、RTC侵入和时间戳、RTC唤醒。
通过配置SYSCFG_EXTISSx寄存器,所有的GPIO管脚都可以被选作EXTI的触发源。
同一个EXTI线下的GPIO管脚不能同时触发,只能选择一个GPIO管脚作为该EXTI线的触发源。
四、中断优先级
EXTI的每一个边沿检测电路都可以独立配置和屏蔽,每一个中断都有4位中断优先级配置位,可提供16个中断优先等级。
所有可编程的中断都需要指定抢占优先级和响应优先级,抢占优先级决定是否可以产生中断嵌套,响应优先级决定中断响应程序。若两种优先级一样则看中断在中断向量表中的位置,位置越靠前越优先响应。
可以通过分组设置抢占优先级和响应优先级的位数,中断优先级分组只设置一次,针对的是系统中所有的中断。