EXTI的基本结构:
由上图可得,首先,选用GPIOx,GPIO_Init(GPIOx, &GPIO_InitStructure)
(GPIO_InitTypeDef GPIO_InitStructure;配置自己选)
接着,打开AFIO时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
然后,EXTI_Init(&EXTI_InitStructure); (EXTI_InitTypeDef EXTI_InitStructure;配置自己选)
接着,GPIO_EXTILineConfig(GPIO_PortSourceGPIOx,GPIO_PinSourcex);//选择中断线
然后,NVIC_Init(&NVIC_InitStructure); (NVIC_InitTypeDef NVIC_InitStructure;配置自己选)
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//中断分组
最后,中断服务处理函数:
void EXTIx_IRQHandler()
{
if(EXTI_GetITStatus(EXTI_Linex)==SET)
{
if(GPIO_ReadInputDataBit(GPIOx,GPIO_Pin_x)==0)
{
************
}
EXTI_ClearITPendingBit(EXTI_Linex);
}
}
完结!