野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8898|回复: 0

GD32F30X设置NVIC10_15IQRn,中断不能产生?

[复制链接]
发表于 2021-12-10 17:38:27 | 显示全部楼层 |阅读模式
出现的问题:GD32F30x中断问题:进行初始化NVIV中断控制器时。固件库函数NVIC_irq_enable()输入的第一参数即中断源:EXTI10_15_IRQn问题。设置后不能进行中断。

背景:使用KEY2按键PC13按下中断,使得LED灯1打开。
KEY2初始化函数:
KEY1初始化函数:
void key_goio_configer()
{
         rcu_periph_clock_enable(RCU_GPIOC);/*使能外设时钟*/
         gpio_init(GPIOC,GPIO_MODE_IN_FLOATING,GPIO_OSPEED_50MHZ,GPIO_PIN_13);//GPIO_A_0初始化,且设置为浮空输入
}
LED1初始化函数:
void led_goio_configer()
{
         rcu_periph_clock_enable(RCU_GPIOC);/*使能外设时钟*/
         gpio_init(GPIOC,GPIO_MODE_OUT_PP,GPIO_OSPEED_50MHZ,GPIO_PIN_2);//GPIO_C_0初始化,且设置为推挽输出
}
NVIC设置函数
static void NVIC_Configer(void)  ////配置中断优先级NVIC嵌入式矢量型中断控制寄存器-进行中断的优先级设置
{
         nvic_priority_group_set(NVIC_PRIGROUP_PRE1_SUB3);//设置优先级组
         nvic_irq_enable(EXTI10_15_IRQn,0,0);     //进行NVIC中断控制器使能
}
按键KEY1中断函数
void key_led_configer(void)   //配置按键KEY_1(PA0)为中断
{
                   key_goio_configer();//初始化KEY1PA0
                   rcu_periph_clock_enable(RCU_AF);                           //使能AF复用功能外设时钟
           NVIC_Configer();                                                                           //配置中断优先级NVIC嵌入式矢量型中断控制寄存器-进行中断的优先级设置
                   gpio_exti_source_select(GPIO_PORT_SOURCE_GPIOC,GPIO_PIN_SOURCE_13);                  //选择GPIO-A的源头作为中断源
          exti_init(EXTI_13,EXTI_INTERRUPT,EXTI_TRIG_FALLING);                                                                             //初始化中断函数,配置EXTI线为0(与设置中断的优先级位置对应),设置为下降沿触发中断
                    exti_event_enable(EXTI_13);                                                                                                                                                                                                                                                                                                                   //使能中段
}
中断服务函数
void EXTI0_IRQHandler(void)
{
         if(exti_flag_get(EXTI_13)!=RESET)
         {
                            led_goio_configer();
                            gpio_bit_set(GPIOC,GPIO_PIN_2);
                           
         }
                   exti_interrupt_flag_clear(EXTI_13);
}

回复

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-24 06:21 , Processed in 0.046637 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表