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,使用串口打印当前时间。

相关推荐
Tronlong创龙5 小时前
SBC‑TLT153 嵌入式 Linux 应用开发,交叉编译与 GDB 调试实践(上)
嵌入式硬件·嵌入式开发·硬件开发·工业控制·工业开发板
巴渝小禹6 小时前
单片机死循环delay_us()计算方法
单片机·嵌入式硬件
Yiran_G6 小时前
LoRa串口模组和SoC模组怎么选?从MCU架构看无线通信方案设计
嵌入式硬件·物联网
HQB20267 小时前
CN6150|简芯维尔 6V/500mA 高速低噪声 CMOS‑LDO 线性稳压器
嵌入式硬件·硬件工程
科芯创展8 小时前
XZ3445 高集成升压/升降压DC-DC电源芯片技术解析
单片机·嵌入式硬件
艾芯微科技8 小时前
高充放电流锂电充放 SoC:ETA9885E10,便携储能、小移动电源 BOM 选型笔记
网络·单片机·嵌入式硬件·集成测试·51单片机
艾芯微科技8 小时前
钰泰 ETA6973PQ3Y|QFN3×3 2A 同步降压 Buck,I2C 可配置多档输出,动态调压 PMIC
网络·单片机·嵌入式硬件·fpga开发·集成测试·51单片机
Brilliantwxx9 小时前
【STM32】 通用定时器:输入捕获与输出比较详解 测脉宽、测频率
stm32·单片机·嵌入式硬件·mcu
意法半导体STM3210 小时前
【官方原创】LAT1703 STM32C5 LL Cordic例程
stm32·单片机·嵌入式硬件·stm32c5·ll cordic