szxm 发表于 2025-7-16 20:25

求助,HC32L021如何从休眠唤醒休眠修改为唤醒不休眠

请教一下大佬们,HC32L021如何从LPM_GotoSleep(TRUE)休眠唤醒休眠修改为唤醒不休眠,我在中断里面执行LPM_GotoSleep(FALSE);中断退出后就卡住了,请问在中断里如何配置退出后不再进入休眠。

wubangmi 发表于 2025-7-17 13:58

你应该对着手册再仔细研究下,并不是说LPM_GotoSleep(TRUE)这个函数里的形参TRUE就是休眠唤醒,把形参改成FALSE,就是休眠不唤醒。他们都是休眠唤醒,只是唤醒后对代码的执行会不一样。

dffzh 发表于 2025-7-17 14:52

本帖最后由 dffzh 于 2025-7-17 15:16 编辑

没用过这个MCU,但是我找资料并简单看了一下LPM_GotoSleep函数,里面其实主要就是配置SCB系统控制块的SCR系统控制寄存器:

SCR寄存器的SLEEPDEEP和SLEEPONEXIT两个bit位的解释如下:

然后可以仿真看下,出中断程序卡死在什么地方;这个LPM_GotoSleep函数不在中断里执行,换到main里通过加标志位执行来试试;
以上的内容希望可以帮助到你。
如果还没搞定,可以回复我,帮你再看下。

恋爱只谈章若楠 发表于 2025-7-17 17:21

我们是小华FAE,有问题联系我17327196220

szxm 发表于 2025-7-18 18:15

dffzh 发表于 2025-7-17 14:52
没用过这个MCU,但是我找资料并简单看了一下LPM_GotoSleep函数,里面其实主要就是配置SCB系统控制块的SCR系 ...

谢谢大佬,已经搞定了,原来是在仿真状态进不了低功耗

szxm 发表于 2025-7-18 18:21

wubangmi 发表于 2025-7-17 13:58
你应该对着手册再仔细研究下,并不是说LPM_GotoSleep(TRUE)这个函数里的形参TRUE就是休眠唤醒,把形参改成FAL ...

换芯有点仓促,手册就简单的看了一下,解决了,是对片子不太了解

szxm 发表于 2025-7-18 18:22

恋爱只谈章若楠 发表于 2025-7-17 17:21
我们是小华FAE,有问题联系我17327196220

好的,后续有不了解的再请教你,才接触你们家芯片

t60yz 发表于 2025-7-24 01:32

在中断中用LPM_GotoSleep(FALSE)清除休眠标志;

t60yz 发表于 2025-7-24 01:32

主循环中通过标志位控制,不再主动调用LPM_GotoSleep(TRUE);

t60yz 发表于 2025-7-24 01:33

必要时恢复系统时钟,确保唤醒后外设正常工作。

t60yz 发表于 2025-7-24 01:54

确保唤醒中断的优先级高于其他非紧急中断,且标志位操作无需临界段保护

狗啃模拟 发表于 2025-8-31 23:57

休眠模式的配置需要在中断退出前生效
页: [1]
查看完整版本: 求助,HC32L021如何从休眠唤醒休眠修改为唤醒不休眠