蓝桥杯嵌入式学习日记(八)——RTC实时时钟【STM32】【HAL库】

RTC

关于RTC的详细资料在参考手册中有,如果有需要可以自行阅读,这里只简单介绍。

  STM32 的 RTC 外设(Real Time Clock),可以掉电运行(比赛板子没有提供电池所以不能掉电运行),是一个独立的 BCD 定时器/计数器。,可以提供时间,日期,年等信息,自带低功耗管理模式,可以提供一个自动唤醒服务,让单片机从低功耗模式恢复到正常工作模式。可以选择时钟外部或内部时钟源。

一、工程创建

在这里插入图片描述
将两个都勾选上即可。

在这里插入图片描述

在这里插入图片描述

参数配置

  参数配置这里,我选择的是内部低速时钟源,当然根据手册还可以选择外部的高速时钟,看个人需求决定。
  我选择24小时制,这个看要求了。确认分频和预分频的值,使得RTC的频率1HZ,也就是一秒一次,这里由于选择的是内部的低速时钟,也就是说晶振频率是32768HZ,所以我选择32*1000,可以自由设置。
  另外选择的是BIN码也就是直接二进制存储,这里看个人了,在程序中也可以设置,这里也可以不管。年月日和时分秒不再解释。

二、程序设计

  
在这里插入图片描述

在这里插入图片描述
分别使用到的两个函数。根据函数内容我们先定义两个结构体。

RTC_TimeTypeDef rtc_time ;
RTC_DateTypeDef rtc_date ;

顾名思义就是对应时间和日期。接下来将参数填入即可。

  HAL_RTC_GetTime (&hrtc ,&rtc_time,RTC_FORMAT_BIN) ;
  HAL_RTC_GetDate (&hrtc ,&rtc_date,RTC_FORMAT_BIN) ;

这里要注意的一点是,要先获取时间再获取日期,顺序不能颠倒。
如果需要BCD码存储,按照函数定义更改即可,将最后面的RTC_FORMAT_BIN改为RTC_FORMAT_BCD。
在这里插入图片描述
函数内部有对应的编码转换。
在这里插入图片描述
这里只显示时间。
文中所用的工程我会贴在下面,如有需要可自行下载,如果有疑问或者有什么错误之处还望留言指正。

链接:https://pan.baidu.com/s/14-FBmWPuBdXPR5S3H9UUtQ?pwd=1111
提取码:1111

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lumine.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值