STM32引脚VBAT和RTC的关系

 一、RTC简介
1、RTC (Real Time Clock):实时时钟。RTC是个独立的定时器。RTC模块拥有一个连续计数的计数器,在相应的软件配置下,可以提供时钟日历的功能。修改计数器的值可以重新设置当前时间和日期。RTC还包含用于管理低功耗模式的自动唤醒单元。

在断电情况下 RTC仍可以独立运行,只要芯片的备用电源一直供电,RTC上的时间会一直走。RTC实物图如下。

2、 RTC 模块和时钟配置是在后备区域,即在系统复位或从待机模式唤醒后,RTC 的设置和时间维持不变,只要后备区域供电正常,那么 RTC 将可以一直运行。但是在系统复位后,会自动禁止访问后备寄存器和 RTC,以防止对后备区域(BKP)的意外写操作。所以在要设置时间之前,先要取消备份区域(BKP)写保护。

3、 无论器件状态如何(运行模式、低功耗模式或处于复位状态),只要电源电压保持在工作范围内,RTC使不会停止工作。

二、如何电路中没有接电池了?

下面是STM32F103VET6的引脚图:

其中电

### STM32 RTCVBAT引脚关系 STM32 实时时钟 (RTC) 功能依赖于外部电源供电来保持时间计数的连续性。通常情况下,当主电源断电时,备用电池(通过 VBAT 引脚连接)会继续为 RTC 提供电力支持[^1]。 #### VBAT引脚的作用 VBAT 引脚专门设计用来接收低功耗模式下的辅助电压输入。该引脚允许用户接入一颗纽扣电池或其他类型的低压直流源,在系统正常工作期间也可以向此引脚施加一定的电压作为备份电源。这样即使主VDD掉电的情况下,也能确保RTC模块持续运行而不丢失数据或重置计数值。 #### 配置VBAT以支持RTC功能 为了使能并正确配置RTC使用VBAT供电: - **启用BKP域访问权限**:需要解锁BKPSRAM区域以便修改其中的内容; - **初始化RTC驱动程序**:调用相应的API函数完成RTC实例化以及参数设定; - **选择合适的时钟源**:可以选择LSI、LSE 或 HSE/PLL分频后的信号作为RTC的工作频率基准; - **激活VBAT接口电路**:确保PC13引脚(默认映射到SWDIO调试线路上)未被占用,并且PWR控制寄存器中的相应位已设置好开启VBAT路径开关; - **编写必要的中断服务例程(ISRs)** :如果启用了报警等功能,则需定义ISR处理这些事件的发生。 ```c // 解锁 BKPSRAM 访问保护机制 HAL_PWR_EnableBkUpAccess(); // 初始化 LSE 作为 RTC 的时基 __HAL_RCC_LSE_CONFIG(RCC_BDCR_LSE_ON); while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET); // 启动 RTC 并指定时钟源来自 LSE s_RTC_InitTypeDef.Instance = RTC; s_RTC_InitTypeDef.HourFormat = RTC_HOURFORMAT_24; s_RTC_InitTypeDef.AsynchPrediv = 0x7F; // Asynchronous prescaler value s_RTC_InitTypeDef.SynchPrediv = 0xFF; // Synchronous prescaler value if(HAL_RTC_Init(&hrtc, &s_RTC_InitTypeDef, RCC_RTCCLKSOURCE_LSE)!= HAL_OK){ Error_Handler(); } // 开启 VBAT 接口 SET_BIT(PWR->CR, PWR_CR_DBP); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值