GD32低功耗:深度睡眠唤醒系统时钟变慢问题

[复制链接]
5114|55
 楼主| 一点点0321 发表于 2023-10-29 01:08 | 显示全部楼层 |阅读模式
问题

1、进入深度睡眠后,通过外部中断唤醒,发现系统时钟变慢。
2、进入休眠模式,通过任何中断唤醒,系统时钟正常。


 楼主| 一点点0321 发表于 2023-10-29 01:08 | 显示全部楼层
 楼主| 一点点0321 发表于 2023-10-29 01:08 | 显示全部楼层
从电源管理章节可知,睡眠模式下使用没有什么需要需要注意的,在使能PMU时钟前提下调用函数pmu_to_sleepmode即可,任何中断均可唤醒,唤醒后即可正常运行使用。
 楼主| 一点点0321 发表于 2023-10-29 01:09 | 显示全部楼层
深度睡眠需要注意的是在使能PMU时钟前提下调用pmu_to_deepsleepmode深度睡眠,使用任何EXTI中断或事件唤醒后,他的当前系统运行时钟是内部的8M时钟,所以就出现唤醒后系统时钟变慢的情况。
 楼主| 一点点0321 发表于 2023-10-29 01:09 | 显示全部楼层
 楼主| 一点点0321 发表于 2023-10-29 01:09 | 显示全部楼层
 楼主| 一点点0321 发表于 2023-10-29 01:09 | 显示全部楼层
解决
1、深度睡眠唤醒后需要对系统时钟重新配置,调用SystemInit、SystemCoreClockUpdate函数即可,该函数在system_gd32f10x.c中定义。
 楼主| 一点点0321 发表于 2023-10-29 01:09 | 显示全部楼层
AloneKaven 发表于 2023-10-31 22:54 | 显示全部楼层
为什么要重新初始化系统函数
hudi008 发表于 2023-11-5 14:57 | 显示全部楼层
在深度睡眠模式下,系统的运行时钟会被降低到内部的8Mhz时钟,而当外部中断或事件唤醒系统时,系统的当前运行时钟仍然是内部的8Mhz时钟,因此会导致系统时钟变慢。
xiaoyaodz 发表于 2023-11-5 15:14 | 显示全部楼层
调用一些系统函数,如SystemInit和SystemCoreClockUpdate,这些函数可以在system_gd32f10x.c文件中找到并使用。
modesty3jonah 发表于 2023-11-5 15:48 | 显示全部楼层
当系统处于深度睡眠模式时,如果时钟源选择的是内部低速时钟,那么在通过外部中断唤醒后,可能会发现系统时钟变慢。
ingramward 发表于 2023-11-5 16:22 | 显示全部楼层
在深度睡眠模式下,需要使能PMU时钟才能正常运行
saservice 发表于 2023-11-5 17:02 | 显示全部楼层
根据实际应用需求,调整系统时钟的分频和倍频。
kkzz 发表于 2023-11-5 17:33 | 显示全部楼层
在GD32低功耗的深度睡眠唤醒后,系统时钟变慢的问题可能是由于深度睡眠状态下系统的时钟配置与唤醒后的时钟配置不一致所导致的。
backlugin 发表于 2023-11-5 18:11 | 显示全部楼层
系统时钟源设置正确,并且时钟源稳定可靠
macpherson 发表于 2023-11-5 19:55 | 显示全部楼层
需要在唤醒后重新配置系统时钟,以确保它与外部时钟信号同步。
belindagraham 发表于 2023-11-5 20:06 | 显示全部楼层
在进入深度睡眠之前,可以尽量减少电流消耗
mnynt121 发表于 2023-11-5 20:27 | 显示全部楼层
这个问题可能与电源管理和时钟管理有关,需要仔细检查和配置相关设置。
burgessmaggie 发表于 2023-11-5 20:54 | 显示全部楼层
在唤醒过程中,需要正确设置相关寄存器
您需要登录后才可以回帖 登录 | 注册

本版积分规则

68

主题

481

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部