STM32---RTC(Real Time Clock)


前言

STM32—RTC(Real Time Clock)

提示:以下是本篇文章正文内容,下面案例可供参考

一、RTC概述

RTC就是实时时钟,详细英文(Real Time Clock)。
实时时钟(RTC)是一个独立的BCD定时器/计数器。RTC提供一个日历时钟、两个可编程闹钟中断,以及一个具有中断功能的周期性可编程唤醒标志。RTC还包含用于管理低功耗模式的自动唤醒单元。
两个32位寄存器包含二进码十进数格式(BCD)的秒、分钟、小时(12或24小时制)、星期几、日期、月份和年份。此外,还可提供二进制格式的亚秒值。
系统可以自动将月份的天数补偿为28、29(闰年)、30和31天。并且还可以进行夏令时补偿。
其他32位寄存器还包含可编程的闹钟亚秒、秒、分钟、小时、星期几和日期。
此外,还可以使用数字校准功能对晶振精度的偏差进行补偿。
上电复位后,所有RTC寄存器都会受到保护,以防止可能的非正常写访问。无论器件状态如何(运行模式、低功耗模式或处于复位状态),只要电源电压保持在工作范围内,RTC便不会停止工作。

二、详细描述

在这里插入图片描述


三、中断配置注意事项

1、所有RTC中断均与EXTI控制器相连

2、要使能RTC闹钟中断,需按照以下顺序操作:

1.将EXTI线17配置为中断模式并将其使能,然后选择上升沿有效。
2.配置NVIC中的RTC_Alarm IRQ通道并将其使能。
3.配置RTC以生成RTC闹钟(闹钟A或闹钟B)。

3、要使能RTC唤醒中断,需按照以下顺序操作:

1.将 EXTI 线 22 配置为中断模式并将其使能,然后选择上升沿有效。
2.配置 NVIC 中的 RTC_WKUP IRQ 通道并将其使能。
3.配置 RTC 以生成 RTC 唤醒定时器事件。

四、BCD码

二进制编码的十进制数,简称BCD码(Binary Coded Decimal)。这种方法是用4位二进制码的组合代表十进制数的0,1,2,3,4,5,6 ,7,8,9 十个数符。4位二进制数码有16种组合,原则上可任选其中的10种作为代码,分别代表十进制中的0,1,2,3,4,5,6,7,8,9 这十个数符。最常用的BCD码称为8421BCD码,8.4.2.1 分别是4位二进数的位取值。 下图为十进制数和8421BCD编码的对应关系表:
在这里插入图片描述

五、RTC备份寄存器

1、概述

备份寄存器 (RTC_BKPxR) 包括20 个 32 位寄存器,用于存储 80 字节的用户应用数据。这些寄存器在备份域中实现,可在 VDD 电源关闭时通过 VBAT 保持上电状态。备份寄存器不会
在系统复位或电源复位时复位,也不会在器件从待机模式唤醒时复位。
为了防止每次复位重置RTC时间,可以利用RTC自带的备份寄存器来实现。步骤如下:
1.初始化RTC时间的时候,接着去设置RTC备份寄存器的值。
2.复位的时候,去读取RTC备份寄存器的值,判断是否跟之前的值是否一致,若一致,则执行普通的时钟、电源、中断初始化。

六、源码地址

RTC案例

总结

以上就是今天要讲的内容,本文仅仅简单介绍了RTC的使用,而STM32的其他一些使用模块,请各位大神移步本博主其他文章或是关注博主等待后续发布。

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值