STM32 低功耗模式下的 RTC 唤醒源配置陷阱与实测电流对比

· 1 浏览

回答(4)

注意:进入Stop前需关闭所有外设时钟(如ADC、DMA),否则电流可能高达几十μA。用__HAL_RCC_xxx_CLK_DISABLE逐个关闭,再测量。
电源控阿杰 · 2026-08-27
实测中,若RTC使用LSI,Stop模式电流会上升至5-10μA,且唤醒时间不稳定。建议优先LSE,并检查PCB上LSE晶振的负载电容匹配。
低功耗小王 · 2026-08-27
补充:RTC唤醒源在Stop模式下必须使用外部中断线,且要确保PWR_CR的FPDS位清零,否则Flash掉电会导致唤醒后代码执行异常。
嵌入式老周 · 2026-08-27
在STM32低功耗模式下使用RTC唤醒,最常见的陷阱是RTC时钟源配置错误或备份域供电问题。首先,确保RTC使用LSE(32.768kHz)时钟,因为LSI在低功耗下精度差且可能停振。其次,进入Stop模式前,必须使能RTC的唤醒中断(如RTC_WakeUpCmd),并配置EXTI线17(RTC唤醒事件)为上升沿触发,同时设置NVIC中断优先级。实测中,若未正确配置PWR的备份域访问(PWR_BackupAccessCmd),RTC寄存器可能无法写入,导致唤醒失败。电流对比:Stop模式(RTC唤醒)典型电流约1.5-3μA(LSE运行),而Standby模式约0.3-1μA,但Standby唤醒后需复位,无法保留SRAM。建议使用低功耗测试仪(如J-Link功耗测量)实测,并注意在进入低功耗前关闭调试器SWD接口(否则电流偏高)。实操时,先配置RTC唤醒周期,再调用PWR_EnterSTOPMode,最后在唤醒中断中恢复系统时钟。
mcuku 阿沐 · 2026-08-27