1、中断号定义
在stm32f10x.h中定义枚举类型 IRQn中,定义了各个中断的中断号。
2、中断向量表
嵌套向量中断控制器(Nested Vectored Interrupt Controller)。CM3的中有一个强大而方便的NVIC,它是属于Cortex内核的器件,中断向量表中60个中断都由它来处理。NVIC是Cortex-M3核心的一部分,关于它的资料不在《STM32的技术参考手册》中,应查阅ARM公司的《Cortex-M3技术参考手册》。Cortex-M3的向量中断统一由NVIC管理。
NVIC的核心功能是中断优先级分组、中断优先级的配置、读中断请求标志、清除中断请求标志、使能中断、清除中断等,它控制着STM32中断向量表中中断号为0-59的60个中断!!外部中断信号从核外发出,信号最终要传递到NVIC(嵌套向量中断控制器)。NVIC跟内核紧密耦合,它控制着整个芯片中断的相关功能。
3、中断处理函数
/**
* Function Name : TIM2_IRQHandler
* Description : This function handles TIM2 interrupt request.
* Input : None
* Output : None
* Return : None
*/
void TIM2_IRQHandler(void)
{
if (TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET)
{
g_BspInterruptCnt.time_2_Cnt++;
TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
BSP_TIM2_IRQHandle();
}
}
4、中断号和中断处理函数关系
ST公司在提供的启动文件startup_stm32fXXX.s中都对相应的中断号对应的中断处理函数的入口都已经规定好了,即必须按照他提供的启动文件的名字来在相关文件(可以不是stm32fxxx_it.c中写驱动)写中断函数,但可以通过宏定义的方式来实现按照自己定义的方式来写中断函数。
主要中断发生时候就会触发相应的中断处理函数。