请问HC32L136无法进入 外部中断 的问题
本帖最后由 jiangjiayu 于 2020-12-9 18:50 编辑///< PortX中断服务函数
void PortD_IRQHandler(void)
{
if( M0P_GPIO->PD_STAT_f.PD04 == 1)
{
M0P_GPIO->PDOUT_f.PD05 = ~M0P_GPIO->PDOUT_f.PD05;//< LED 取反
M0P_GPIO->PD_ICLR_f.PD04 = 0;
}
}
void App_UserKeyInit(void) //配置 PD4 下降沿中断
{
///< 打开GPIO外设时钟门控
Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio, TRUE);
// M0P_GPIO->PD04_SEL = 0;
// M0P_GPIO->PDADS_f.PD04 = 0;
// M0P_GPIO->PD04_SEL = 0;
M0P_GPIO->PDDIR_f.PD04 = 1; //输入
M0P_GPIO->PDPU_f.PD04 = 1; //上拉
M0P_GPIO->PDFIE_f.PD04 = 1; //下降沿中断
// M0P_GPIO->CTRL2_f.AHB_SEL = GpioAHB;
EnableNvic(PORTD_IRQn, IrqLevel2, TRUE);
}
代码如上所示
PD5为LED正常输出,且能控制LED的亮灭
PD4为外部按键中断,下降沿触发,死活进不了中断。。。。MCU无睡眠,用的是\HC32L13x_SDK\hc32l13x_ddl_Rev1.9.2 Lite\example\gpio\gpio_interrupt例程修改
把外部中断改为PA4就可以进入
请教下代码有不对的地方吗?
硬件确认没问题,开发板为 : HC32LF136x3x-STK-V2.0
下面为main函数
int32_t main(void)
{
App_UserKeyInit();
App_LedInit();
while(1)
{
;
}
}
问题已解决: 上面的外部中断初始化代码没问题,LED灯的控制脚初始化有问题
有提问,有结果回馈,非常赞 经验不错。
有提问,有结果回馈,非常赞 问题解决的不错 这是坐项目呢,还是学习呢 这种经验真的不错,感谢分享。 哈哈 是的io口的初始化也非常重要 整个工程还有别的功能吗 paotangsan 发表于 2021-1-12 15:09
整个工程还有别的功能吗
没有了,就1和IO口外部中断
初始化LED灯时,把外部中断的IO口也初始化为输出了 jiangjiayu 发表于 2021-1-12 19:08
没有了,就1和IO口外部中断
初始化LED灯时,把外部中断的IO口也初始化为输出了 ...
应该是用到什么,就初始化那个啊,怎么能够全部初始化了呢,外部中断应该配置为输入的吧
页:
[1]