使用GD32E230需要使用PA1,PB1触发中断,但是这个简单的需求调了3天没调出来。void System_init1(void){
rcu_periph_clock_enable(RCU_GPIOA);
rcu_periph_clock_enable(RCU_GPIOB);
gpio_mode_set(GPIOA,GPIO_MODE_INPUT, GPIO_PUPD_PULLUP, GPIO_PIN_1);
gpio_mode_set(GPIOB,GPIO_MODE_INPUT, GPIO_PUPD_PULLUP,GPIO_PIN_1);
nvic_irq_enable(EXTI0_1_IRQn,1U);
//syscfg_exti_line_config(EXTI_SOURCE_GPIOA,EXTI_SOURCE_PIN1);
syscfg_exti_line_config(EXTI_SOURCE_GPIOB,EXTI_SOURCE_PIN1);
exti_init(EXTI_1, EXTI_INTERRUPT, EXTI_TRIG_FALLING);
exti_interrupt_flag_clear(EXTI_1);
}
int main(void){
systick_config();
System_init1();
while(1){
delay_1ms(10);
}
}
void EXTI0_1_IRQHandler(void)
{
exti_interrupt_flag_clear(EXTI_0|EXTI_1);
}
就上面这么简单的配置,不能触发PB1中断,但却能触发PA1中断,然而PA1中断配置已经被屏蔽。百思不得其解,查看keil的SYSCFG_EXTISS没有数据刷新。看syscfg_exti_line_config源码也没发现什么毛病
谁能解答一下呢。
|