NVIC(嵌套中断向量控制器)
- 中断协作模型
- NVIC编程接口
- NVIC使用案例(EXTI9_5)
int main(void){
//
......
//
//------------配置NVIC-------------------------
//EXTI9_5_IRQn
//1、设置中断优先级分组
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
//2、开启中断源
//3、配置NVIC的EXIT中断
NVIC_InitTypeDef NVICInitStruct;
NVICInitStruct.NVIC_IRQChannel = EXTI9_5_IRQn;//关键点:中断源的设置
NVICInitStruct.NVIC_IRQChannelPreemptionPriority = 0;
NVICInitStruct.NVIC_IRQChannelSubPriority = 0;
NVICInitStruct.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVICInitStruct);
}
void EXTI9_5_IRQHandler(void){//关键点:中断响应函数的设置
//判断中断源
if( EXTI_GetFlagStatus(EXTI_Line5) == SET){
EXTI_ClearITPendingBit(EXTI_Line5);//关键点:清除中断源
GPIO_WriteBit(GPIOC, GPIO_Pin_13, Bit_RESET);//0
}
if( EXTI_GetFlagStatus(EXTI_Line6) == SET){
EXTI_ClearITPendingBit(EXTI_Line6);
GPIO_WriteBit(GPIOC, GPIO_Pin_13, Bit_SET);//1
}
}
EXTI
-
EXTI的配置图
-
EXTI编程接口