1、在用户手册查找外部中断触发源,表格同时包含与中断触发源对应的中断线编号
在以上选择PA3引脚作为触发源
在gd32f4xx.h找到关于IRQn的枚举类型
中断IRQn标志在初始化需要用到
中断线编号,这里注意的是可能存在有多个中断使用同一中断线编号的情况
在gd32启动文件找到中断回调函数名称,系统对每个中断都弱定义了相应的中断回调名称,我们在gd32启动文件可以找到
2、触发方式选择
选外部中断触发方式为下降沿中断
中断初始化函数
void GPIO_EXIT_Init(){ rcu_periph_clock_enable(RCU_GPIOA); gpio_mode_set(GPIOA, GPIO_MODE_INPUT, GPIO_PUPD_NONE, GPIO_PIN_3); exti_init(EXTI_3, EXTI_INTERRUPT, EXTI_TRIG_RISING); nvic_irq_enable(EXTI3_IRQn,1,2); exti_interrupt_enable(EXTI_3); }
中断回调函数编写
void EXTI3_IRQHandler(void){ if (exti_interrupt_flag_get(EXTI_3) == SET) { exti_interrupt_flag_clear(EXTI_3); printf("exti 3.\n"); } }
完整代码
四、实验结果
将PA3引脚间歇接入GND,成功触发外部下降沿中断