小日历实验目的Android,【连载】【星光闪电STM32F407开发板】第十二章 RTC实验

本文介绍STM32F407的RTC实时时钟实验,涵盖RTC特性、电路及软件设计等内容。STM32F407的RTC支持日期时间测量、闹钟中断等功能,并能在主电源断电时由备用电池供电继续运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【连载】【星光闪电STM32F407开发板】第十二章 RTC实验

[复制链接]

第十二章RTC实验

12.1 实验目的

本实验旨在掌握STM32的实时时钟RTC的使用,利用其测量日期时间,数据手册请参看第16章。

12.2 实验简介

STM32 的实时时钟(RTC)是一个独立的定时器。 STM32的RTC模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能。修改计数器的值可以重新设置系统当前的时间和日期。

RTC 模块和时钟配置系统(RCC_BDCR 寄存器)是在后备区域,即在系统复位或从待机模式唤醒后 RTC 的设置和时间维持不变。

系统复位后,会自动禁止访问后备寄存器和RTC,以防止对后备区域(BKP)的意外写操作。所以在要设置时间之前,先要取消备份区域(BKP)写保护。

STM32的RTC具有掉电继续运行的特性,在主电源VDD 断开时,为了 RTC 外设掉电继续运行,必须给STM32芯片通过VBAT引脚接上锂电池。当主电源 VDD 有效时,由VDD给RTC外设供电。当VDD掉电后,由VBAT给RTC外设供电。但无论由什么电源供电,RTC中的数据都保存在属于RTC的备份域中,若主电源 VDD和 VBAT都掉电,那么备份域中保存的所有数据将丢失。 备份域除了RTC模块的寄存器,还有42个16位的寄存器可以在VDD掉电的情况下保存用户程序的数据,系统复位或电源复位时,这些数据也不会被复位。

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的定时器特性来说,它是一个32位的计数器,只能向上计数。它使用的时钟源有三种,分别为高速外部时钟的128分频: HSE/128;低速内部时钟LSI;使HSE分频时钟或LSI的话,在主电源 VDD 掉电的情况下,这两个时钟来源都会受到影响,因此没法保证RTC正常工作。因此RTC一般使用低速外部时钟LSE,频率为实时时钟模块中常用的32.768KHz,这是因为32768 = 215,分频容易实现,所以它被广泛应用到RTC模块。在主电源 VDD有效的情况下(待机), RTC还可以配置闹钟事件使STM32退出待机模式。

RTC的框图如下图所示:

a26d678767e8b431ecd7a25f1936bdc5.gif

图片8.png (66.46 KB, 下载次数: 0)

2018-11-17 10:52 上传

图12.2.1 RTC功能框图12.3电路设计

本实验用到的硬件资源有TFT、串口和RTC,RTC为片上资源,其相关的外围电路就是32.768KHz晶振电路和电池电路,其它资源电路,前面已经介绍过,这里略过。12.4软件设计

打开光盘目录下的3、程序源码->1、基础实验->下的实验9 RTC实验工程,打开左侧目录树BSP下的rtc.c文件,此为RTC实时时钟的驱动程序文件,工程目录如下图所示:

a26d678767e8b431ecd7a25f1936bdc5.gif

图片9.png (13.22 KB, 下载次数: 0)

2018-11-17 10:52 上传

图12.4.1

打开rtc.c文件,代码如下:

a26d678767e8b431ecd7a25f1936bdc5.gif

图片10.png (16.17 KB, 下载次数: 0)

2018-11-17 10:52 上传

a26d678767e8b431ecd7a25f1936bdc5.gif

图片11.png (33.67 KB, 下载次数: 0)

2018-11-17 10:52 上传

a26d678767e8b431ecd7a25f1936bdc5.gif

图片12.png (37.76 KB, 下载次数: 0)

2018-11-17 10:52 上传

a26d678767e8b431ecd7a25f1936bdc5.gif

图片13.png (38.07 KB, 下载次数: 0)

2018-11-17 10:52 上传

a26d678767e8b431ecd7a25f1936bdc5.gif

图片21.png (4.83 KB, 下载次数: 0)

2018-11-17 10:52 上传

a26d678767e8b431ecd7a25f1936bdc5.gif

图片14.png (35.75 KB, 下载次数: 0)

2018-11-17 10:52 上传

a26d678767e8b431ecd7a25f1936bdc5.gif

图片15.png (59.84 KB, 下载次数: 0)

2018-11-17 10:52 上传

a26d678767e8b431ecd7a25f1936bdc5.gif

图片16.png (36.99 KB, 下载次数: 0)

2018-11-17 10:52 上传

a26d678767e8b431ecd7a25f1936bdc5.gif

图片17.png (22.28 KB, 下载次数: 0)

2018-11-17 10:52 上传

打开main.c文件,代码如下:

a26d678767e8b431ecd7a25f1936bdc5.gif

图片18.png (20.93 KB, 下载次数: 0)

2018-11-17 10:52 上传

a26d678767e8b431ecd7a25f1936bdc5.gif

图片19.png (29.42 KB, 下载次数: 0)

2018-11-17 10:52 上传

a26d678767e8b431ecd7a25f1936bdc5.gif

图片20.png (24.21 KB, 下载次数: 0)

2018-11-17 10:52 上传12.5下载验证

用MINI USB线通过CN3的USB口连接电脑和开发板,拨动电源开关给开发板上电,D3电源指示灯点亮,连接好JLINK/ST-LINK下载调试器,打开“实验9 RTC实验”工程代码,编译下载,打开串口调试助手,串口波特率115200,每隔1S打印一次当前日期时间信息。

此内容由EEWORLD论坛网友hejecu原创,如需转载或用于商业用途需征得作者同意并注明出处

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值