STM32 中断优先级相关概念与使用笔记 上海 华东师范大学 通信工程系 ma-chao 一、基本概念 1.ARM cortex_m3 内核支持256 个中断(16 个内核+240 外部)和可编程256 级中断优先级的设置,与其相关的中断控制和中断优先级控制寄存器(NVIC、SYSTICK 等)也都属于cortex_m3内核的部分
STM32 采用了cortex_m3 内核,所以这部分仍旧保留使用,但STM32并没有使用cortex_m3 内核全部的东西(如内存保护单元MPU 等),因此它的NVIC 是cortex_m3 内核的NVIC 的子集
2.STM32 目前支持的中断共为84 个(16 个内核+68 个外部),和16 级可编程中断优先级的设置(仅使用中断优先级设置8bit 中的高4 位,见后面解释)
《参考最新101x x -107x x STM32 Reference manu al, RM0008》
3 .以下主要对“外部中断通道”进行说明
对于cortex_m3 内核所支持的240 个外部中断,我在这里使用了“中断通道”这个概念,因为尽管每个中断对应一个外围设备,但该外围设备通常具备若干个可以引起中断的中断源或中断事件
而该设备的所有的中断都只能通过该指定的“中断通道”向内核申请中断
因此,下面关于中断优先级的概念都是针对“中断通道”的
当该中断通道的优先级确定后,也就确定了该外围设备的中断优先级,并且该设备所能产生的所有类型的中断,都享有相同的通道中断优先级
至于该设备本身产生的多个中断的执行顺序 ,则 取 决 于用户 的中断服 务 程序
4. STM32 可以支持的68 个外部中断通道,已 经 固 定的分配 给 相应的外部设备
每个中断通道都具备自 己 的中断优先级控制字 节 PRI_n(8 位,但在 STM32 中只使用4 位,高4 位有效 )