良许Linux教程网 干货合集 不建议用STM32F1的RTC实现日历功能

不建议用STM32F1的RTC实现日历功能

某位读者提出了这样一个问题:在STM32F1系列中如何实现日程管理功能?

一、深入浅出RTC

RTC:即Real Time Clock,它是一种用于跟踪当前时间的专用计算机时钟。

不限于个人电脑或服务器,在各类嵌入式系统中,实时时钟(RTC)的应用也是非常广泛的,尤其在那些需要精确时间跟踪的电子产品中。

配备了RTC功能的微型控制器,可以在许多场合发挥作用,例如用作高精度定时器、生活用闹钟、手持式电子表或是电子记事本等多种电子设备中。

在具体的应用项目中,用到实时时间戳的例子不胜枚举,例如:数据记录、日志跟踪、系统故障诊断等等。

二、STM32的RTC

在所有STM32处理器中,都集成了一个RTC模块, 是一个独立的 BCD 定时器 / 计数器

但是,在STM32F1系列中,RTC模块的功能相对比较简单(也许是最前推出的原因)。其中,一个重要的功能,日历功能在F1系列中是不具备的

image-20231226203357287
image-20231226203357287

F1的RTC可以实现1秒累计计数,很早之前,我自己通过软件实现日历功能,其中包含闰年、月份28、29天的处理。我之前进行过多次验证,但也不敢保证完全没问题。

RTC功能概述:

处理STM32F1,其它系列的RTC基本具有很多高级功能,比如:日历、闹钟、定时唤醒单元、数字校准、同步、时间戳和高级入侵检测等。

三、日历功能

RTC最重要,最常用的功能就是日历功能,但F1系列中的RTC模块不具备

打开F1手册,你在RTC框图,你会发现没有日历(Calendar)相关的寄存器。而且其他系列就有:

image-20231226203401371
image-20231226203401371

除F1系列,可轻松配置和显示下列日历数据字段:

·含有下列字段的日历:

– 亚秒 (不可编程)

– 秒

– 分

– 时 ( 12 小时或 24 小时格式)

– 星期

– 日

– 月

– 年

·二进码十进数 ( BCD)格式的日历

·自动管理天数为 28、 29 (闰年)、 30 和 31 的月份

·夏令时调整可用软件编程

image-20231226203405271
image-20231226203405271

四、闹钟功能

相对F1系列,其他系列的闹钟功能自然也更高级了。STM32闹钟基于日历基础之上,只需简单简单编程即可实现闹钟功能。

闹钟单元均具有以下功能:

·支持对闹钟自由编程:亚秒 (稍后讨论)、秒、分钟、小时和日期字段可以单独选择或屏蔽,以实现多种闹钟组合。

·能够在发生闹钟事件时使器件退出低功耗模式。

·可将闹钟事件发送到极性可配置的特定输出引脚。

·具有专用的闹钟标志和中断。

image-20231226203409215
image-20231226203409215

五、其他

RTC功能还有很多重要功能,这里只简单说了常用、重要的日历和闹钟。更多RTC知识可参看MCU对应的参考手册。

最后,标题中“不建议用STM32F1的RTC实现日历功能”,就是因为F1不具备RTC功能,软件实现复杂,同时也不具备一些高级功能

额外:RTC属于一个计时器,也可实现定时器的一些基本功能

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部