了解了这些之后,如果熟悉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);
- }
|