WilliamChok 发表于 2020-8-5 11:13

HC32L136K8TA的RTC周期中断为什么唤醒不了深度睡眠模式呢

本帖最后由 WilliamChok 于 2020-8-5 11:31 编辑

设想是系统无操作15s就进入深度休眠模式,RTC每一分钟唤醒休眠模式,然后进入周期中断串口发送一组数据。
没有进入休眠模式的时候,能正常进入周期中断,串口能发送数据,进入休眠后RTC无法唤醒休眠。
是我RTC配置问题还是,有人帮忙看看吗?

martinhu 发表于 2020-8-5 13:55

WDT使用了吗?如果使用了,时间是多少?

WilliamChok 发表于 2020-8-5 14:21

martinhu 发表于 2020-8-5 13:55
WDT使用了吗?如果使用了,时间是多少?

没有使用WDT,就是设置了外部中断和RTC唤醒,外部中断可以唤醒,就是RTC周期中断唤醒不了

WilliamChok 发表于 2020-8-6 14:18

早上试了一下WDT唤醒,定时52.4s能正常唤醒,只是把RTC周期中断换成WDT溢出中断,WDT可以RTC却不行。
然后我就发现WDT是用的专用的10K片内振荡器提供时钟的,我就感觉是进入休眠模式的时候RTC低速时钟被关闭了,然后尝试在进入休眠模式前加一句“Sysctrl_ClkSourceEnable(SysctrlClkXTL,TRUE);”RTC周期中断就能正常唤醒休眠了。
但是手册上是说进入休眠模式时低速时钟是不会主动关闭的,都是保持原来的运行状态,

所以一开始也是没注意这个问题,也许是我进入休眠模式的代码有问题吧,再好好查查。
问题算是解决了,在这里给大家分享一下

martinhu 发表于 2020-8-6 19:49

WilliamChok 发表于 2020-8-6 14:18
早上试了一下WDT唤醒,定时52.4s能正常唤醒,只是把RTC周期中断换成WDT溢出中断,WDT可以RTC却不行。
然后 ...

RCL或XTL不会因为进Deep sleep而关闭

WilliamChok 发表于 2020-8-7 09:27

问题找到了,是因为我在进休眠模式的时候把外部晶振的IO设置成输出了

qiyajiang30 发表于 2022-3-31 10:17

本帖最后由 qiyajiang30 于 2022-3-31 10:26 编辑

WilliamChok 发表于 2020-8-7 09:27
问题找到了,是因为我在进休眠模式的时候把外部晶振的IO设置成输出了 ...
我想请问下,rtc中断在初始化以后一定会不经过定时来一次么??比如我设置成RtcInitStruct.rtcPrdsel.rtcPrds = Rtc1H,然后刚过初始化不久rtc中断就来了,后面就是正常时间定时来中断了
页: [1]
查看完整版本: HC32L136K8TA的RTC周期中断为什么唤醒不了深度睡眠模式呢