STM32CubeMX:RTC(万年历方式)

来源:互联网 发布:网络教学app有哪些 编辑:程序博客网 时间:2024/05/21 06:14

之前RTC存在不更新日期的问题,后续采用修改更新日期函数,并存储日期,但是并无卵用。后面采用万年历的方式。采用万年历方式首先获取TimeCounter,通过万年历函数计算出日期,TimeCounter是uint32_t类型,可130年内不溢出绰绰有余。

1.修改stm32f1xx_hal_rtc.c文件,增加两个函数

HAL_StatusTypeDef HAL_RTC_SetTimeCounter(RTC_HandleTypeDef *hrtc,uint32_t TimeCounter){return RTC_WriteTimeCounter(hrtc, TimeCounter);}uint32_t HAL_RTC_GetTimeCounter(RTC_HandleTypeDef* hrtc){return RTC_ReadTimeCounter(hrtc);}

2.修改stm32f1xx_hal_rtc.h文件,增加函数名

HAL_StatusTypeDef HAL_RTC_SetTimeCounter(RTC_HandleTypeDef *hrtc,uint32_t TimeCounter);uint32_t HAL_RTC_GetTimeCounter(RTC_HandleTypeDef* hrtc);

3.应用函数

htimedate.Year=17;htimedate.Month=1;htimedate.Date=9;htimedate.Hours=10;htimedate.Minutes=56;htimedate.Seconds=0;TimeDate_SetTime(&hrtc,&htimedate);

TimeDate_CountTime(&hrtc,&htimedate);printf("%d/%d/%d %d:%d:%d\r\n",htimedate.Year,htimedate.Month,htimedate.Date,htimedate.Hours,htimedate.Minutes,htimedate.Seconds);

源文件点击打开链接

0 0
原创粉丝点击