单片机/MCU论坛
直播中

张明

7年用户 1018经验值
私信 关注
[问答]

aducm360进入低功耗无法唤醒是什么原因导致的?如何解决?


如图,cpu进入低功耗后,想用串口或外部中断唤醒CPU,那么将35和39引脚分别配置外外部中断2和外部中断4,
   EiCfg(EXtiNT4,INT_EN,INT_FALL);//外部中断4,      NVIC_EnableIRQ(EINT4_IRQn);    EiCfg(EXTINT2,INT_EN,INT_RISE);//外部中断2,  NVIC_EnableIRQ(EINT2_IRQn);  
可是实际工作时,串口可以唤醒CPU,返回相应指令,
但外部中断4  ,却无法唤醒CPU。
不知道问题出在哪里呢?

                                                                                                                        

回帖(1)

周必镜

2024-1-12 10:58:12
有以下几个可能的原因导致aducm360进入低功耗无法被外部中断唤醒:

1. 中断优先级设置问题:首先要确保外部中断的中断优先级比串口中断的优先级高。可以通过NVIC_SetPriority()函数来设置中断优先级。

2. 外部中断配置问题:检查引脚配置是否正确,并确认中断触发条件设置正确。

3. 电源管理单元配置问题:检查芯片的电源管理单元配置是否正确。进入低功耗模式时,可能需要在电源管理单元中配置唤醒源。

4. 电源供电问题:如果外部中断引脚或外部中断事件需要外部供电的话,需检查外部供电是否正常。

5. 软件问题:检查中断处理函数是否正确实现,以及是否在中断处理函数中正确清除中断标志位。

综上所述,解决该问题的步骤如下:

1. 检查中断优先级设置是否正确。
2. 确保外部中断的引脚配置和触发条件设置正确。
3. 检查芯片的电源管理单元配置是否正确,确保唤醒源被配置。
4. 检查外部中断引脚是否有外部供电,并确保供电正常。
5. 检查中断处理函数是否正确实现,并在其中正确清除中断标志位。

如果问题仍然存在,可以尝试使用示波器等工具来查看中断触发时的信号情况,以进一步调试问题。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分