文档介绍:STM32F4 开发指南(库函数版)
ALIENTEK 探索者 STM32F407 开发板教程
第二十章 RTC 实时时钟实验
前面我们介绍了两款液晶模块,这一章我们将介绍 STM32F4 的内部实时时钟(RTC)。 在
本章中,我们将使用 TFTLCD 模块来显示日期和时间,实现一个简单的实时时钟,并可以设置
闹铃。另外,本章将顺带向大家介绍 BKP 的使用。本章分为如下几个部分:
STM32F4 RTC 时钟简介
硬件设计
软件设计
下载验证
STM32F4 RTC 时钟简介
STM32F4 的实时时钟(RTC)相对于 STM32F1 来说,改进了不少,带了日历功能了,
STM32F4 的 RTC,是一个独立的 BCD 定时器/计数器。RTC 提供一个日历时钟(包含年月日
时分秒信息)、两个可编程闹钟(ALARM A 和 ALARM B)中断,以及一个具有中断功能的周
期性可编程唤醒标志。RTC 还包含用于管理低功耗模 式的自动唤醒单元。
两个 32 位寄存器(TR 和 DR)包含二进码十进数格式 (BCD) 的秒、分钟、小时(12 或
24 小时制)、星期、日期、月份和年份。此外,还可提供二进制格式的亚秒值。
STM32F4 的 RTC 可以自动将月份的天数补偿为 28、29(闰年)、30 和 31 天。并且还可
以进行夏令时 补偿。
RTC 模块和时钟配置是在后备区域,即在系统复位或从待机模式唤醒后 RTC 的设置和时
间维持不变,只要后备区域供电正常,那么 RTC 将可以一直运行。但是在系统复位后,会自动
禁止访问后备寄存器和 RTC,以防止对后备区域(BKP)的意外写操作。所以在要设置时间之前,
先要取消备份区域(BKP)写保护。
RTC 的简化框图,如图 所示:
图 RTC 框图
此图可以从 STM32F4 中文参考手册 RTC 章节中找到(图 222:RTC 框图)。本章我们用到
289
STM32F4 开发指南(库函数版)
ALIENTEK 探索者 STM32F407 开发板教程
RTC 时钟和日历,并且用到闹钟功能。接下来简单介绍下 STM32F4 RTC 时钟的使用。
1,时钟和分频
首先,我们看 STM32F4 的 RTC 时钟分频。STM32F4 的 RTC 时钟源(RTCCLK)通过时
钟控制器,可以从 LSE 时钟、LSI 时钟以及 HSE 时钟三者中选择(通过 RCC_BDCR 寄存器选
择)。一般我们选择 LSE,即外部 晶振作为时钟源(RTCCLK),而 RTC 时钟核心,要
求提供 1Hz 的时钟,所以,我们要设置 RTC 的可编程预分配器。STM32F4 的可编程预分配器
(RTC_PRER)分为 2 个部分: