登录/注册

stm32f103 rtc

更多

STM32F103 的 RTC(实时时钟)模块是一个独立于主系统的低功耗计时器,可在主电源关闭时通过备用电池(VBAT)维持运行,用于记录时间、日期或触发定时事件。以下是关于 STM32F103 RTC 的关键点和使用说明:


主要特性

  1. 独立供电:通过 VBAT 引脚连接备用电池(如纽扣电池),主电源关闭时仍可运行。
  2. 32 位计数器:以秒为单位递增,可记录约 136 年的时间。
  3. 闹钟功能:可配置中断触发特定时间事件。
  4. 日历功能:需软件实现日期计算(芯片无硬件日历)。
  5. 低功耗:在待机模式下仍可运行。

RTC 时钟源选择

RTC 的时钟源需通过 RCC 配置,可选:


配置步骤(以 HAL 库为例)

  1. 使能时钟和备份域访问

    __HAL_RCC_PWR_CLK_ENABLE();        // 使能 PWR 时钟
    HAL_PWR_EnableBkUpAccess();       // 允许访问备份域
    __HAL_RCC_BKP_CLK_ENABLE();       // 使能 BKP 时钟
  2. 初始化 RTC 时钟源

    RCC_OscInitTypeDef RCC_OscInit = {0};
    RCC_OscInit.OscillatorType = RCC_OSCILLATORTYPE_LSE;
    RCC_OscInit.LSEState = RCC_LSE_ON;         // 启用 LSE
    HAL_RCC_OscConfig(&RCC_OscInit);
    
    RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
    PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_RTC;
    PeriphClkInit.RTCClockSelection = RCC_RTCCLKSOURCE_LSE; // 选择 LSE 作为 RTC 时钟源
    HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit);
  3. 配置 RTC 预分频器和初始化

    RTC_HandleTypeDef hrtc;
    hrtc.Instance = RTC;
    hrtc.Init.AsynchPrediv = 0x7F;     // 异步预分频器(适用于 32.768kHz 时钟:32768/(0x7F+1)=256 Hz)
    hrtc.Init.SynchPrediv = 0xFF;      // 同步预分频器(256/(0xFF+1)=1 Hz,即每秒递增)
    HAL_RTC_Init(&hrtc);
  4. 设置时间和日期

    RTC_TimeTypeDef sTime = {0};
    sTime.Hours = 12;
    sTime.Minutes = 30;
    sTime.Seconds = 0;
    HAL_RTC_SetTime(&hrtc, &sTime, RTC_FORMAT_BIN);
    
    RTC_DateTypeDef sDate = {0};
    sDate.Date = 15;
    sDate.Month = 8;
    sDate.Year = 23;                  // 年份偏移(如 0=2000, 23=2023)
    HAL_RTC_SetDate(&hrtc, &sDate, RTC_FORMAT_BIN);
  5. 读取时间和日期

    RTC_TimeTypeDef currentTime;
    RTC_DateTypeDef currentDate;
    HAL_RTC_GetTime(&hrtc, &currentTime, RTC_FORMAT_BIN);
    HAL_RTC_GetDate(&hrtc, &currentDate, RTC_FORMAT_BIN);

常见问题

  1. RTC 不运行

    • 检查 VBAT 是否连接备用电池。
    • 确认 LSE 已正确启用(部分型号需配置 RCC_BDCR 寄存器)。
    • 确保 __HAL_RCC_BKP_CLK_ENABLE() 被调用。
  2. 时间误差大

    • LSE 晶振需匹配负载电容(通常 6-12 pF)。
    • 避免 PCB 布局干扰晶振(远离高频信号)。
  3. 复位后时间丢失

    • 确保备用电池正常供电。
    • 首次初始化后,通过备份寄存器(如 BKP_DR1)标记已初始化,避免重复配置。

注意事项

通过合理配置,STM32F103 的 RTC 可提供可靠的时间记录功能。如需更详细的代码示例或特定问题解答,请进一步说明需求!

STM32F103VET6

1970-01-01 08:00:00 至 1970-01-01 08:00:00

STM32F103 RTC日期读取不对怎么解决?

STM32F103 RTC日期读取不对问题,有没有什么办法解决?这个问题究竟是STM32的库本身有问题还是其他什么原因呢?如果是库的问题,难道S

2024-04-16 07:08:40

STM32F103正点RTC RTC_Alarm_Set不能作用是为什么?

STM32F103正点RTC RTC_Alarm_Set根本不能作用

2024-04-08 07:28:36

基于STM32F103的SVPWM算法实现

基于STM32F103的SVPWM算法实现

资料下载 jinyi7016 2022-03-22 12:12:17

STM32F103用户使用手册

STM32F103用户使用手册

资料下载 倚東聽海 2021-12-06 09:47:21

基于STM32f103的输入捕获测频率和占空比

基于STM32f103的输入捕获测频率和占空比

资料下载 shyshyshy 2021-08-02 10:10:24

基于STM32f103的FFT频率测试程序下载

基于STM32f103的FFT频率测试程序下载

资料下载 shyshyshy 2021-08-02 10:07:20

基于STM32f103使用的DAC正弦波

基于STM32f103使用的DAC正弦波

资料下载 shyshyshy 2021-08-02 10:05:00

ARM系列STM32F103芯片的解密方法

本文介绍ARM系列STM32F103芯片的解密方法,其内核是Cortex-M3,内存从16K-512K都有。

2024-02-28 11:20:34

stm32f103 flash模拟eeprom

STM32F103是意法半导体(STMicroelectronics)推出的一款32位单片机系列,该系列芯片具有高性能和丰富的外设接口,广泛应用于工业控制、消费电子、汽车电子等领域。其中

2024-01-09 11:21:36

ARM系列STM32F103芯片的解密方法

破解STM32F103芯片的方法

2023-09-19 09:03:40

ch32v103stm32f103的区别

ch32v103与stm32f103的区别  Ch32v103与STM32f103

2023-08-22 15:49:00

STM32F103 GPIO内部电路图讲解

STM32F103 GPIO内部电路图讲解

2023-02-01 16:32:14

基于STM32F103单片机的矩阵按键设计

本实验使用STM32F103单片机,主题代码通用的。

2022-12-09 17:18:46

stm32f030和stm32f103功能差异

stm32f030和stm32f103功能差异主要表现在哪?

2021-07-22 09:35:47

7天热门专题 换一换
相关标签