stm32中RTC问题

需要注意两点:

  1. HAL_RTC_GetTime函数和HAL_RTC_GetDate函数似乎有着某种bug,调用前者之后必须调用后者才能继续走时。如果仅调用前者,或者先调用了后者再调用前者,在本次MCU上电运行生命周期中,RTC都不会继续走时,直到调用了HAL_RTC_GetDate函数。但是RTC计数器还是保持计数的,仅仅是无法读取有效值而已,下次上电后,还能访问到新的有效值。

  2. STM32的后备电池只给LSE供电,不给LSI供电。所以一般用到RTC时,后备电池和32.768KHz的外部晶振都是少不了的。另外,LSI精度也确实比较低,标准频率是32KHz。两种频率的分频系数:32000/125/256 = 1Hz; 32768/128/256 = 1Hz。