先简单讲个例子:
void NVIC_Configuration(void) //中断管理初始化
{
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //首先要中断分组。 设置NVIC中断分组2, 2位抢占优先级,2位响应优先级
//分完组之后,具体对需要的中断进行设置优先级(抢占式优先级和响应式优先级都要设置)
//这里设置TIM3中断的优先级别
NVIC_InitStructure.NVIC_IRQChannel= TIM3_IRQn; // 选择定时器3全局中断。 旧版本为TIM3_IRQChannel 。下面几行程序分别对TIM3中断级别的设置
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority= 0; //抢占式优先级0级
NVIC_InitStructure.NVIC_IRQChannelSubPriority= 3; //响应式优先级3级
NVIC_InitStructure.NVIC_IRQChannelCmd= ENABLE; //TIM3通道使能(该句程序可以在写在定时器初始化中)
NVIC_Init(&NVIC_InitStructure); //根据NVIC_InitStruct中指定的参数初始化外设NVIC寄存器,有了这句,上面的设置才有效。
}
总结1:对于中断管理就6句程序便可:先定义个结构体-----然后设置分组------选定中断通道-------设置具体要设置摸个中断的抢占式优先级和响应式优先级----参数化有效。
一:综述
STM3