问答

汇集网友智慧,解决技术难题

21ic问答首页 - at32f421f8p7 外部中断 没有响应

gp IO ni pi 外部中断 AT32F421

at32f421f8p7 外部中断 没有响应

ykedu2023-04-25
void port_in_init(void)
{
        //引脚初始化
        gpio_init_type gpio_init_struct;
        //使能 PB1 TIM3_CH4  对应的时钟
                crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);        //开启gpioB时钟
        //设置为默认值
                gpio_default_para_init(&gpio_init_struct);
        //设置为输入模式
        gpio_init_struct.gpio_mode=GPIO_MODE_INPUT;
        gpio_init_struct.gpio_pins=GPIO_PINS_1;
        //设置为下拉
        gpio_init_struct.gpio_pull=GPIO_PULL_DOWN;
        gpio_init(GPIOB,&gpio_init_struct);
}
void at32_exint_init(void)
{
   //外部中断结构初始化
        exint_init_type exint_init_struct;
        //使能对应的时钟
        crm_periph_clock_enable(CRM_SCFG_PERIPH_CLOCK, TRUE);               
  scfg_exint_line_config(SCFG_PORT_SOURCE_GPIOB, SCFG_PINS_SOURCE1);
  exint_default_para_init(&exint_init_struct);
  exint_init_struct.line_enable = TRUE;
  exint_init_struct.line_mode = EXINT_LINE_INTERRUPUT;
  exint_init_struct.line_select = EXINT_LINE_0 ;//EXINT_LINE_USRKEY_PIN  EXINT_LINE_0
  exint_init_struct.line_polarity = EXINT_TRIGGER_RISING_EDGE;//上升沿中断
  exint_init(&exint_init_struct);

  nvic_priority_group_config(NVIC_PRIORITY_GROUP_4);
  nvic_irq_enable(EXINT1_0_IRQn, 1, 0);
}



/**
  * @brief  exint0 interrupt handler
  * @param  none
  * @retval none
  */
void EXINT1_0_IRQHandler(void)
{
  if(exint_flag_get(EXINT_LINE_0) != RESET)
  {
            USART2->dt=0x01;
                send(0x01);
    exint_flag_clear(EXINT_LINE_0);
  }
}
       
回答 +关注 15
1103人浏览 1人回答问题 分享 举报
1 个回答

您需要登录后才可以回复 登录 | 注册