| 
 
| 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);
 }
 }
 
 
 | 
 |