1.这里 使用PB1 为例, 若其他GD-MCU 无此端口,替换即可。
2. 首先 看下,配置GPIO的 简单示例:
void GPIO_Config(void)
{
rcu_periph_clock_enable(RCU_GPIOB);
gpio_mode_set(GPIOB, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP, GPIO_PIN_1);
gpio_output_options_set(GPIOB, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_1);
//按键外部中断...
rcu_periph_clock_enable(RCU_CFGCMP);
/* enable and set key EXTI interrupt to the specified priority */
nvic_irq_enable(EXTI0_1_IRQn, 0U);
/* connect key EXTI line to key GPIO pin */
syscfg_exti_line_config(EXTI_SOURCE_GPIOB, EXTI_SOURCE_PIN1);
/* configure key EXTI line */
exti_init(EXTI_1, EXTI_INTERRUPT, EXTI_TRIG_FALLING);
exti_interrupt_flag_clear(EXTI_1);
}
3. 然后 实现 外部中断 相应函数:
void EXTI0_1_IRQHandler(void)
{
if(RESET != exti_interrupt_flag_get(EXTI_1)) {
//正此添加按键响应,不建议添加耗时过长 动作
exti_interrupt_flag_clear(EXTI_1);
}
}