电子说
通过例程来测试下开发板的外部中断。设置为上升沿触发,LED指示灯,中断一次,状态反转一次。
有关外部中断的电路图
程序
主程序
int main(void) { systick_config(); rcu_periph_clock_enable(RCU_GPIOA); //初始化LED gpio_mode_set(GPIOA, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_1); gpio_output_options_set(GPIOA, GPIO_OTYPE_PP, GPIO_OSPEED_MAX, GPIO_PIN_1); gpio_bit_reset(GPIOA, GPIO_PIN_1); //初始化外部中断 gpio_mode_set(GPIOA, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP, GPIO_PIN_0); rcu_periph_clock_enable(RCU_CFGCMP); nvic_irq_enable(EXTI0_1_IRQn, 2U, 0U); syscfg_exti_line_config(EXTI_SOURCE_GPIOA, EXTI_SOURCE_PIN0); exti_init(EXTI_0, EXTI_INTERRUPT, EXTI_TRIG_RISING); exti_interrupt_flag_clear(EXTI_0); while(1) { } }
外部中断处理
void EXTI0_1_IRQHandler(void) { if(RESET != exti_interrupt_flag_get(EXTI_0)) { gpio_bit_toggle(GPIOA, GPIO_PIN_1); } exti_interrupt_flag_clear(EXTI_0); } 审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !