关于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
先看看是不是中断入口函数名字不一样,
然后看看配置里面是不是少一个这个。
...
是少了这串字符 谢谢谢 ! 楼上的很细心,一般人很少会注意这里的。这里是什么意思呢? 那个没加的东西,像是个微库的关键字定义什么的东西,只有定义才能使用吗? zhamatu 发表于 2020-3-26 23:11
那个没加的东西,像是个微库的关键字定义什么的东西,只有定义才能使用吗? ...
感觉像是一个类似#define这样全局宏定义的东西。 martinhu 发表于 2020-3-23 13:22
先看看是不是中断入口函数名字不一样,
然后看看配置里面是不是少一个这个。
...
请问在IAR中遇到同样问题,怎么解决?死活进不了中断函数 zhufy 发表于 2020-6-15 15:55
请问在IAR中遇到同样问题,怎么解决?死活进不了中断函数
1.先看看启动文件的中断入口,和interrupt是不是一样的,
2.老的例程,启动文件的中断入口名字和interrupt.c的名字不一样,然后ddl.c或者dd.h用宏定义了函数名
3,如果你的工程,启动文件和interrupt.c的名字已经一样了,然后再ddl里面又用宏定义名,反而导致中断进不去。
页:
[1]