由于我只用到时间,没有用到日期。 所以只调用了 HAL_RTC_GetTime, 发现时间一直不变。
经查,需要调用 HAL_RTC_GetDate() 解锁一下。 修改后,时间正常运转。
@note You must call HAL_RTC_GetDate() after HAL_RTC_GetTime() to unlock the values
RTC_DateTypeDef sdatestructureget;
RTC_TimeTypeDef stimestructureget;
/* Get the RTC current Time */
HAL_RTC_GetTime(&hrtc, &stimestructureget, RTC_FORMAT_BCD);
/* Get the RTC current Date */
HAL_RTC_GetDate(&hrtc, &sdatestructureget, RTC_FORMAT_BCD);
总结,不管有没有用到 Date 都要读一下, 否则时间不走。