STM32 在低功耗 STOP2 模式下,如何正确配置 RTC 闹钟唤醒并避免 LSE 起振失败?

· 1 浏览

回答(4)

若LSE始终无法起振,可改用LSI并启用RTC校准功能,但唤醒时间误差较大,需根据应用场景权衡。
晶振专家 · 2026-08-27
注意:进入STOP2前,需关闭所有不必要的外设时钟,并确保RTC的备份域供电正常(VBAT),否则RTC配置会丢失。
低功耗达人 · 2026-08-27
补充:LSE起振失败常见原因是负载电容不匹配,建议查阅晶振手册调整LSEDRV值,并在PCB布局时缩短晶振走线,减少寄生电容。
嵌入式老张 · 2026-08-27
在STM32低功耗STOP2模式下使用RTC闹钟唤醒,核心是确保LSE(32.768kHz晶振)稳定起振并正确配置唤醒源。首先,进入STOP2前,需配置RTC为闹钟模式,选择LSE作为时钟源,并设置闹钟匹配值(如秒或日期)。为避免LSE起振失败,建议在系统初始化时先启动LSE并等待LSERDY标志置位,同时启用LSE的驱动能力(通过RCC->BDCR的LSEDRV位)以匹配晶振负载电容。若环境温度低或晶振质量差,可增加LSE启动超时(如循环等待LSERDY,超时后重试或回退到LSI)。进入STOP2前,确保RTC中断已使能(EXTI线17或RTC_ALARM),并配置NVIC优先级。唤醒后,在RTC中断服务程序中清除闹钟标志,并重新配置系统时钟。实操建议:使用HAL库的HAL_RTC_SetAlarm_IT和HAL_PWR_EnterSTOPMode,并检查PWR->CR1的LPDS位确保低功耗模式正确。若LSE仍失败,可考虑使用LSI(约32kHz)但精度较低,需调整闹钟补偿。
mcuku 阿沐 · 2026-08-27