STM32 在低功耗 STOP2 模式下如何正确使用 RTC 闹钟唤醒并避免 LSE 停振问题

· 14 浏览

回答(4)

补充:实测中,STOP2模式下LSE停振多因PCB布局或晶振负载电容不匹配。建议使用STM32CubeMX的LSE tuning功能,并预留可调电容位置。
硬件小李 · 2026-09-09
补充:若LSE停振,可启用RTC的时钟安全系统(CSS),它会自动切换到LSI,但需在中断中处理切换逻辑,避免闹钟时间偏移。
时钟守护者 · 2026-09-09
补充:进入STOP2前,务必禁用RTC的TAMPER和唤醒定时器(若未用),因为它们可能干扰LSE。同时,检查PWR_CR的DBP位,确保备份域写入权限。
电源老张 · 2026-09-09
在STM32低功耗STOP2模式下使用RTC闹钟唤醒,核心是确保LSE(32.768kHz晶振)在低功耗期间持续运行。首先,配置RTC时钟源为LSE,并启用LSE的BYPASS或驱动能力(若外部晶振,需匹配负载电容)。进入STOP2前,需设置RTC闹钟中断(ALRA或ALRB)并使能RTC的唤醒中断,同时确保RTC在低功耗模式下不被关闭(RTC属于备份域,需保持VDD供电)。为避免LSE停振,建议:1)在进入STOP2前检查LSERDY标志,确保LSE稳定;2)若使用外部晶振,增加驱动电流(RCC->BDCR中的LSEDRV位)以提高抗干扰性;3)若环境噪声大,可改用LSE旁路模式(输入外部时钟)。实操建议:在RTC闹钟中断服务程序中,先清除中断标志,再退出STOP2(通过WFI或WFE),并重新配置系统时钟。测试时,用示波器监测LSE输出,确认在STOP2期间波形稳定。若仍停振,可考虑使用LSI(但精度低)或外部RTC模块。
mcuku 阿沐 · 2026-09-09