使用HC32L136J8TA 用GPIO PC13设置下降沿中断, 设置代码如下:
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下安装的, 同样的代码复制在华大驱动样例里面是可以正常进入中断,样例的启动文件复制过来也不能进入中断,在自己建的工程就不能,找了好久没有找到原因;
|