打印
[STM32G0]

休眠后无法唤醒的问题

[复制链接]
449|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
aton1986|  楼主 | 2025-2-28 10:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
RT, RTC, tc, ck, bi, TI
设置唤醒的代码如下:
HAL_RTCEx_DeactivateWakeUpTimer(&hrtc);
HAL_Delay(1);
//设置唤醒时间计数器
if(HAL_RTCEx_SetWakeUpTimer_IT(&hrtc, sleep_time-1, RTC_WAKEUPCLOCK_CK_SPRE_16BITS)!= HAL_OK){
       printf("设置新休眠时间失败\r\n");
  }

当使用RTC_WAKEUPCLOCK_CK_SPRE_16BITS时,单片机休眠后可以在指定的时间内唤醒,但如果改成RTC_WAKEUPCLOCK_CK_SPRE_17BITS其他参数都不变的情况下,单片机无法在指定时间唤醒,这种情况是怎么回事,有人晓得不,因为需要休眠时间超过18小时,16bit位不够,所以需要改成17bit

使用特权

评论回复
沙发
淡漠安然| | 2025-3-13 01:03 | 只看该作者
你遇到的问题与RTC唤醒定时器的配置和时钟源选择有关

使用特权

评论回复
板凳
一秒落纱| | 2025-3-13 02:32 | 只看该作者
RTC唤醒定时器的时钟源可以通过 RTC_WAKEUPCLOCK_xxx 参数来配置

使用特权

评论回复
地板
冰春彩落下| | 2025-3-13 03:29 | 只看该作者
16位:最大计数值为 2^16 - 1 = 65535,最大唤醒时间为 65535秒(约18.2小时)。17位:最大计数值为 2^17 - 1 = 131071,最大唤醒时间为 131071秒(约36.4小时)。

使用特权

评论回复
5
三生万物| | 2025-3-13 04:21 | 只看该作者
当使用 RTC_WAKEUPCLOCK_CK_SPRE_17BITS 时,单片机无法在指定时间唤醒,可能是某些单片机的RTC模块可能不支持17位或18位的唤醒定时器。请查阅你的单片机数据手册,确认RTC模块是否支持17位配置。

使用特权

评论回复
6
江河千里| | 2025-3-13 05:04 | 只看该作者
17位和18位的配置可能需要额外的寄存器设置。例如,某些单片机需要配置 RTC_CR 寄存器中的 WUCKSEL 位。

使用特权

评论回复
7
夜阑风雨| | 2025-3-13 06:44 | 只看该作者
如果RTC的慢速时钟(1 Hz)不稳定或未正确配置,可能导致唤醒定时器无法正常工作。

使用特权

评论回复
8
远山寻你| | 2025-3-13 07:13 | 只看该作者
确保RTC唤醒中断已正确启用,并且中断服务程序(ISR)已实现。

使用特权

评论回复
9
光辉梦境| | 2025-3-13 08:32 | 只看该作者
查阅单片机数据手册,确认RTC模块是否支持17位或18位的唤醒定时器。

使用特权

评论回复
10
暖了夏天蓝了海| | 2025-3-13 09:22 | 只看该作者
检查时钟源,确保RTC的慢速时钟(1 Hz)已正确配置并稳定运行。

使用特权

评论回复
11
别乱了阵脚| | 2025-3-13 10:11 | 只看该作者
如果你将时钟源从 RTC_WAKEUPCLOCK_CK_SPRE_16BITS 改为 RTC_WAKEUPCLOCK_CK_SPRE_17BITS,但 sleep_time 的值没有相应调整,可能会导致唤醒时间超出预期。确保 sleep_time 的值在17位计数器的范围内(0131071

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

4

帖子

0

粉丝