stm32内部低速rtc_基于STM32内部RTC的时钟程序

博客介绍了如何优化STM32内部RTC的时钟程序,通过按闰年周期进行除法运算,提高计算效率。程序支持从2001年1月1日至3200年2月28日的日期转换,虽然硬件限制到2137年,但已经足够一般应用。提供了包括闰年计算、星期计算在内的函数代码示例。
摘要由CSDN通过智能技术生成

在网站上找了一些软件时钟程序,在秒时与日历转换时,大多是逐年计算,计算周期会随着年份增加,而增多。于是自己写了一个简化的秒时与日历转换程序,按闰年周期进行除法运算,计算周期固定,不随秒时与基础年时间差增长而增长,效率明显提高。

程序带有闰年计算与星期计算,基础年为2001年1月1日0时0分0秒,算法可支持到3200年2月28日23时59分59秒。但由于RTC计数器是32位,所以硬件只能支持到2137年2月7日6时28分15秒,也足够使用了。

以下为程序代码:

/****************************************************************************

* 函数名: GetRTCWeek

* 功  能: 计算Week

* 输  入: 秒时

* 输  出: 无.

* 返  回: 星期

*/

//u8 GetRTCWeek(RTC_T *_tRtc)

u8 GetRTCWeek(u32 lDay)

{

//u32 lDay;

//lDay = GetSecondFromDateTime(_tRtc)/SECOND_OF_DAY;

lDay /= SECOND_OF_DAY;

lDay += RTC_BASE_WEEK;

lDay %= 7;

return (u8)lDay;

}

/****************************************************************************

* 函

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值