CM3内核支持256个中断,其中包含了16个内核中断和240个外部中断,并且具有256级的可编程中断设置。但STM32并没有使用CM3内核的全部东西,而是只用了它的一部分。STM32有84个中断,包括16个内核中断和68个可屏蔽中断,具有16级可编程的中断优先级。而我们常用的就是这68个可屏蔽中断,但是STM32的68个可屏蔽中断,在STM32F103系列上面,又只有60个(在107系列才有68个)。因为我们开发板选择的芯片是STM32F103系列的所以我们就只针对STM32F103系列这60个可屏蔽中断进行介绍。
在MDK内,与NVIC相关的寄存器,MDK为其定义了如下的结构体:
typedef struct
{
__IO uint32_tISER[8];
__IO uint32_tICER[8];
__IO uint32_tISPR[8];
__IO uint32_tICPR[8];
__IO uint32_tIABR[8];
__IO uint8_t IP[240];
__O uint32_t STIR;
} NVIC_Type;
ISER[8]:ISER全称是:Interrupt Set-EnableRegisters,这