STM32F4 系列在低功耗模式下,如何利用 LPTIM 实现超低功耗的周期唤醒而不丢失 RTC 时间戳?

· 3 浏览

回答(4)

若需更高精度时间戳,可考虑使用RTC的亚秒寄存器,但F4仅支持秒级。建议在备份域存储时间戳,并定期同步。
时钟专家 · 2026-08-27
注意:在STOP模式下,LPTIM的时钟源必须保持使能,且建议使用LSE以节省功耗。同时,唤醒后需重新配置系统时钟。
低功耗小王 · 2026-08-27
补充:也可使用RTC的WakeUp定时器(WKUP)实现周期唤醒,但精度较低(最大1Hz)。若需更灵活周期,LPTIM是首选。
嵌入式老张 · 2026-08-27
在STM32F4系列中,实现超低功耗周期唤醒且不丢失RTC时间戳,推荐使用LPTIM(低功耗定时器)结合RTC。首先,配置LPTIM在低功耗模式下运行(如STOP模式),选择LSE或LSI作为时钟源(LSE更精确,但需外部晶振;LSI功耗更低)。设置LPTIM的自动重载值(ARR)以定义唤醒周期,并启用比较中断。在进入低功耗前,将RTC时间戳(如秒计数器)保存到备份寄存器(BKP)或RTC备份域,因为RTC在STOP模式下仍可运行(若配置为LSE)。唤醒后,从备份寄存器恢复时间戳,并校准RTC(若需)。实操建议:使用HAL库的HAL_LPTIM_SetCompare和HAL_LPTIM_TimeOutCallback,确保LPTIM时钟使能,并配置NVIC优先级。注意:F4的LPTIM仅在STOP模式可用,且需确保RTC时钟源为LSE以保证时间连续性。
mcuku 阿沐 · 2026-08-27