基于stm32f103mini开发板进行RTC实时时钟学习

RTC 时钟简介

STM32F103 的实时时钟(RTC)是一个独立的定时器。STM32 的 RTC 模块拥有一组连续
计数的计数器,在相对应的软件配置下,可提供时钟日历的功能。修改计数器的值可以重新设
置系统的当前时间和日期。
RTC 模块和时钟配置系统(RCC_BDCR 寄存器)是在后备区域,即在系统复位或从待机
模式唤醒后 RTC 的设置和时间维持不变,只要后备区域供电正常(比如有一片纽扣电池供电),那么 RTC 将可以一直运行。
但是在系统复位后,会自动禁止访问后备寄存器和 RTC,以防止对后备区域(BKP)的意外
写操作。所以在要设置时间之前,先要取消备份区域(BKP)写保护。

RTC框图

在这里插入图片描述
在这里插入图片描述
RTC框图

对框图的讲解

框图中浅灰色的部分,他们是属于备份域的,在VDD 掉电时可在 VBAT 的驱动下继续工作(就好比我们日常用的电子钟,我们关闭之后在打开还是准确的时间,除非你把电池扣了再装上,此时再打开才会发现时钟复位了,又要你去手动调到北京时间)
首先看RTC预分频器模块,其中包含有 可编程产生 1 秒 的RTC 时间基准TR_CLK。如果在 **RTC_CR **寄存器中设置相对应的允许位,则在每个TR_CLK 周期中 RTC 产生一个中断(秒中断)。第二个模块是一个 32 位的可编程计数器RTC_CNT,可被初始化为当前的系统时间,一个 32 位的时钟计数器,按秒钟计算,可以记录 4294967296 秒,约合 136 年左右。闹钟寄存器 RTC_ALR,用于产生闹钟。系统时间按 TR_CLK 周期累加并与存储在 RTC_ALR 寄存器中的可编程时间相比较,如果 RTC_CR 控制寄存器中设置了相应允许位,比较匹配时将产生一个闹钟中断。

电源系统框图

在这里插入图片描述
主要看③部分:电池备份区域(后备供电区域)
电池备份区域也就是后备供电区域,使用电池或者其他电源连接到 VBAT 脚上,当 VDD
电时,可以保存备份寄存器的内容和维持 RTC 的功能。同时 VBAT 引脚也为 RTC 和 LSE 振荡
器供电,这保证了当主要电源被切断时,RTC 能够继续工作。切换到 VBAT 供电由复位模块中
的掉电复位功能控制。

例程功能

本实验通过 LCD 显示 RTC 时间,并观察上下电或者复位之后时钟是否在继续运转

硬件资源

1)LED 灯
LED0 – PA8
LED1 – PD2
2)串口 1(PA9/PA10 连接在板载 USB 转串口芯片 CH340 上面)
3)RTC(实时时钟)
4)正点原子 2.8/3.5/4.3/7/10 寸 TFTLCD 模块(仅限 MCU 屏,16 位 8080 并口驱动)

rtc.c文件下的代码:

uint16_t  MyRTC_Time[] = {
   2024, 1, 1, 23, 59, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值