1.中断介绍
主要用到ISER 中断使能寄存器 ICER中断清除寄存器 IP 中断优先级
2.中断优先级
Cortex-M3允许具有较少中断源时使用较少的寄存器位指定中断源的优先级,因此STM32把指定中断优先级的寄存器位减少到4位,这4个寄存器位的分组方式如下:
第0组:所有4位用于指定响应优先级
第1组:最高1位用于指定抢占式优先级,最低3位用于指定响应优先级
第2组:最高2位用于指定抢占式优先级,最低2位用于指定响应优先级
第3组:最高3位用于指定抢占式优先级,最低1位用于指定响应优先级
第4组:所有4位用于指定抢占式优先级
抢占式优先级相同时(越小优先级越高),看响应优先级(也叫付优先级、亚优先级)
如果这两个优先级都一样,就看排序位置,在参考手册中,优先级都相同的花,默认执行位置靠前的。
例子:如果程序A抢占式优先级为 1,响应优先级为2,这时程序B抢占式优先级为1 响应优先级为1,这时程序B也不会打断程序A,因为他们抢占式优先级一样,哪怕程序B响应优先级比A高也不会打断A,如果来了程序C 抢占式优先级为0 响应优先级为2,这是就会打断程序A,而自己先执行。
3.中断配置
上图中 NVRQChannel 代表中断源、中断通道
NVIC_IRQChannelPreemptionPriority 抢占式优先级
NVIC_IRQChannelSubPriority 响应优先级
NVIC_IRQChannelCmd 中断使能