STM32 RTC实验

RTC时钟简介

STM32F103的实时时钟(RTC)是一个独立的定时器。

STM32的RTC模块拥有一组连续计数的计数器 ,在相对应的软件配置下,可提供时钟日历 的功能。

修改计数器的值可以重新设置系统的当前时间和日期。

RTC模块和时钟配置系统(RCC_BDCR寄存器)是在后备区域,即在系统复位或从待机模式唤醒后RTC的设置和时间维持不变,只要后备区域供电正常,那么RTC将可以一直运行。

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

实时时钟(Real Time Clock,RTC),本质是一个计数器,计数频率常为秒专门用来记录时间。

普通定时器不能拿来作时钟,因为普通定时器无法掉电运行。

RTC特性

  1. 能提供时间(秒钟数)
  2. 能在MCU掉电后运行
  3. 低功耗

常见的RTC方案

芯片上自带有RTC

对比

  1. 一般都需要设计RTC外围电路。
  2. 一般都可以给RTC设置独立的电源。
  3. 多数RTC的寄存器采用BCD码存储时间信息。(F1使用16进制)
  1. RTC预分频器

    RTC_PRL预分频值=32767,也就是32768分频,得到频率1Hz。
  2. 32位可编程计数器
  3. 待机唤醒
  4. RTC控制寄存器与APB1接口

RTC工作在后备区域,VDD掉电仍正常。

后备寄存器和RTC寄存器特性

  1. 部分寄存器写保护:RTC_PRL、RTC_ALR、RTC_CNT和RTC_DIV寄存器不会被系统复位。
  2. 数据存储功能:RTC和后备寄存器不会被系统或电源复位源复位;当从待机模式唤醒时,也不会被复位。后备寄存器可用于保存掉电时的数据。
  3. RTC和后备寄存器通过一个开关供电,在VDD有效时该开关选择VDD供电,否则由VBAT引脚供电。在VBAT供电时仍可继续工作。
  4. 2个独立复位:APB1接口由系统复位;RTC核心只能由后备域复位。


RTC基本驱动步骤(F1)

  1. 使能电源时钟并使能后备域访问:__HAL_RCC_PWR_CLK_ENABLE 使能电源时钟
    __HAL_RCC_BKP_CLK_ENABLE 使能电源时钟
    HAL_PWR_EnbaleBkUpAccess 使能备份访问
  2. 开启LSE/选择RTC时钟源/使能RTC时钟
  3. 初始化RTC,设置分频值以及工作参数。
  4. 设置RTC的日期和时间:操作寄存器方式实现rtc_set_time
  5. 获取RTC当前日期和时间:rtc_get_time

F1的RTC没有日历寄存器,使用时只存储总秒数,不利于直接设置和显示,所以还需要编写函数把时间变成我们日常的日历时间。


编程实战

驱动RTC,使用串口打印当前时间。

相关推荐
快乐的划水a20 小时前
windows用户态到内核态
stm32·单片机·嵌入式硬件
硬汉嵌入式20 小时前
将STM32H7的SPI MISO和MOSI短接回环测试配置问题也是非常方便的
stm32·miso·h7-tool·spi回环·mosi
Hy行者勇哥21 小时前
从零搭建小智 AI 音箱 MCP 开发环境:自定义智能家居控制技能实战指南
人工智能·嵌入式硬件·硬件工程·智能家居
richxu202510011 天前
嵌入式学习之路>单片机核心原理篇>(11) 存储器(Flash & SRam)
单片机·嵌入式硬件·学习
@good_good_study1 天前
STM32 TIM编码器模式配置函数及实验
stm32·单片机
云山工作室1 天前
基于单片机的客车载客状况自动检测系统设计(论文+源码)
stm32·单片机·嵌入式硬件·毕业设计
Rorsion1 天前
第二章(2.5):微控制器8051的硬件结构---时钟、复位和MCU工作方式
单片机·嵌入式硬件·备考ing
Qingniu011 天前
SP40P65NJ:一款高性能40V P沟道MOSFET深度解析
单片机·嵌入式硬件·电机驱动·dc-dc降压/升压转换器·电源管理模块
brave and determined1 天前
传感器学习(day10):MEMS传感器:揭秘智能时代的核心技术
嵌入式硬件·汽车电子·传感器·mems·消费电子·嵌入式设计·传感器应用
信奥洪老师1 天前
2025年12 电子学会 机器人三级等级考试真题
单片机·嵌入式硬件·机器人