meijing · 2022年04月16日

【GD32F310开发板试用】外部中断测试

通过例程来测试下开发板的外部中断。设置为上升沿触发,LED指示灯,中断一次,状态反转一次。

有关外部中断的电路图
 title=

程序
主程序

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

运行
 title=

推荐阅读
关注数
10708
内容数
187
中国高性能通用微控制器领域的领跑者兆易创新GD系列芯片技术专栏。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息