STM32CubeMX:RTC(万年历方式)

之前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);

源文件 点击打开链接

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值