修改了stm32f1xx_hal_rtc.c文件中的两个函数,将年月日信息保存到RTC备份区中。
RTC_DateUpdate( );
HAL_RTC_GetDate( );
具体代码如下:
static void RTC_DateUpdate(RTC_HandleTypeDef* hrtc, uint32_t DayElapsed)
{
uint32_t year = 0, month = 0, day = 0;
uint32_t loop = 0;
/* Get the current year*/
//year = hrtc->DateToUpdate.Year;
/* Get the current month and day */
//month = hrtc->DateToUpdate.Month;
//day = hrtc->DateToUpdate.Date;
/************************** *************************************/
//从备份寄存器读年月日!!!
year= HAL_RTCEx_BKUPRead(hrtc, RTC_BKP_DR2);//cg
month= HAL_RTCEx_BKUPRead(hrtc, RTC_BKP_DR3);//cg
day= HAL_RTCEx_BKUPRead(hrtc, RTC_BKP_DR4);//cg
/************************** *************************************/
for (loop = 0; loop < DayElapsed; loop++)
{
if((month == 1) || (month ==

针对Linux开发板断电后RTC日期归零的问题,本文介绍了通过对STM32F1xx HAL RTC库进行修改,将年月日信息存储到RTC备份寄存器中,以实现断电后日期的持久保存。主要涉及RTC_DateUpdate()和HAL_RTC_GetDate()函数的调整,使用HAL_RTCEx_BKUPRead()和HAL_RTCEx_BKUPWrite()读写备份寄存器。
最低0.47元/天 解锁文章
2341

被折叠的 条评论
为什么被折叠?



