了解了这些之后,如果熟悉STM32设计流程的话,那么就知道顺序是:
1.外部中断管脚GPIO初始化,代码如下:
/****************************************************************
* function : EXTI_GPIO_Config
* Description : 外部中断触发对应GPIO口配置
KEY1 PC4 外部中断4
KEY2 PB10 外部中断10
KEY3 PC13 外部中断13
KEY4 PA0 WAKEUP唤醒事件
* input : 无
* output : 无
*****************************************************************/
void EXTI_GPIO_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB
| RCC_APB2Periph_GPIOC | RCC_APB2Periph_AFIO, ENABLE);
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Pin = EXTI_KEY1_Pin;
GPIO_Init(EXTI_KEY1_Port, &GPIO_InitStructure);
GPIO_EXTILineConfig(EXTI_KEY1_PortSource, EXTI_KEY1_PinSource); //将GPIO复用为外部中断触发端口
GPIO_InitStructure.GPIO_Pin = EXTI_KEY1_Pin;
GPIO_Init(EXTI_KEY2_Port, &GPIO_InitStructure);
GPIO_EXTILineConfig(EXTI_KEY2_PortSource, EXTI_KEY2_PinSource);
GPIO_InitStructure.GPIO_Pin = EXTI_KEY3_Pin;
GPIO_Init(EXTI_KEY3_Port, &GPIO_InitStructure);
GPIO_EXTILineConfig(EXTI_KEY3_PortSource, EXTI_KEY3_PinSource);
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;
GPIO_InitStructure.GPIO_Pin = EXTI_KEY4_Pin;
GPIO_Init(EXTI_KEY4_Port, &GPIO_InitStructure);
GPIO_EXTILineConfig(EXTI_KEY4_PortSource, EXTI_KEY4_PinSource);
}
|