Tanglin7630424 发表于 2020-3-22 23:29

关于HC32L136J8TA不能进入中断服务函数问题

使用HC32L136J8TA用GPIOPC13设置下降沿中断, 设置代码如下:
void MenuKeyPortInit(void)
{
        stc_gpio_config_t pstcSpiGpioCfg;
       
        pstcSpiGpioCfg.enCtrlMode=GpioAHB;                        //AHB×ÜÏßÇý¶¯Ä£Ê½
       
        pstcSpiGpioCfg.enDir=GpioDirIn;                //ÊäÈëģʽ
       
        pstcSpiGpioCfg.enPuPd=GpioPu;                                //ÉÏÀ­ÊäÈë
       
        Gpio_Init(MenuKeyPort,MenuKeyPin,&pstcSpiGpioCfg);//PC13
       
        Gpio_ClearIrq(MenuKeyPort, MenuKeyPin);
       
        Gpio_EnableIrq(MenuKeyPort, MenuKeyPin, GpioIrqFalling);//ϽµÑØ´¥·¢ÊäÈëÖжÏ
       
        EnableNvic(PORTC_IRQn,IrqLevel3,TRUE);//¿ªÆôPC NVICÖжÏ
}
仿真下可以看到NVIC有打开PC端口中断,优先级有设置最高,全速运行发生中断后就是不能进入中断服务函数,停在了下图位置;
void PORTC_IRQHandler(void)
{
    Gpio_IRQHandler(2);
}

启动文件是使用MDK下安装的, 同样的代码复制在华大驱动样例里面是可以正常进入中断,样例的启动文件复制过来也不能进入中断,在自己建的工程就不能,找了好久没有找到原因;

martinhu 发表于 2020-3-23 13:22

先看看是不是中断入口函数名字不一样,
然后看看配置里面是不是少一个这个。

Tanglin7630424 发表于 2020-3-23 21:59

martinhu 发表于 2020-3-23 13:22
先看看是不是中断入口函数名字不一样,
然后看看配置里面是不是少一个这个。
...

是少了这串字符   谢谢谢 !

杨寅辉 发表于 2020-3-25 19:10

楼上的很细心,一般人很少会注意这里的。这里是什么意思呢?

zhamatu 发表于 2020-3-26 23:11

那个没加的东西,像是个微库的关键字定义什么的东西,只有定义才能使用吗?

jerow 发表于 2020-3-27 20:07

zhamatu 发表于 2020-3-26 23:11
那个没加的东西,像是个微库的关键字定义什么的东西,只有定义才能使用吗? ...

感觉像是一个类似#define这样全局宏定义的东西。

zhufy 发表于 2020-6-15 15:55

martinhu 发表于 2020-3-23 13:22
先看看是不是中断入口函数名字不一样,
然后看看配置里面是不是少一个这个。
...
请问在IAR中遇到同样问题,怎么解决?死活进不了中断函数

martinhu 发表于 2020-6-19 10:36

zhufy 发表于 2020-6-15 15:55
请问在IAR中遇到同样问题,怎么解决?死活进不了中断函数

1.先看看启动文件的中断入口,和interrupt是不是一样的,
2.老的例程,启动文件的中断入口名字和interrupt.c的名字不一样,然后ddl.c或者dd.h用宏定义了函数名
3,如果你的工程,启动文件和interrupt.c的名字已经一样了,然后再ddl里面又用宏定义名,反而导致中断进不去。
页: [1]
查看完整版本: 关于HC32L136J8TA不能进入中断服务函数问题