STM32G474RE单片机有没有RTC时钟?
时间: 2025-06-12 20:48:04 浏览: 20
### STM32G474RE 单片机 RTC 时钟功能硬件支持
STM32G474RE 单片机内置了RTC(实时时钟)模块,该模块允许开发者实现时间跟踪和日历功能。以下详细说明其硬件支持情况:
#### 内置RTC模块特性
- STM32G474RE 的 RTC 模块是一个独立的低功耗计数器,可以在主系统时钟关闭的情况下继续运行[^1]。
- RTC 模块可以由 LSE(外部低速晶振)、LSI(内部低速 RC 振荡器)或 HSE(外部高速晶振)分频后驱动[^1]。
- RTC 提供秒计数器以及可编程预分频器,支持生成周期性中断和唤醒事件[^1]。
#### 日历功能
- RTC 模块支持二进制或 BCD(二进制编码十进制)格式的时间和日期管理[^1]。
- 它能够处理年、月、日、星期、时、分、秒,并自动调整月末天数和闰年。
- 用户可以通过配置寄存器来初始化时间和日期,并通过读取这些寄存器获取当前的时间和日期信息[^1]。
#### 硬件支持与电源管理
- RTC 模块可以通过 VBAT(备用电源引脚)供电,在主电源断开时仍能保持运行。
- 这种设计确保即使系统断电,RTC 也能继续计时,从而为长时间运行的应用提供可靠的时间基准。
#### 配置与初始化
- 使用 STM32CubeMX 工具可以轻松配置 RTC 模块,包括选择时钟源、设置初始时间和日期等参数。
- 初始化代码可以通过 HAL 库或 LL 库生成,便于开发者快速集成到项目中。
#### 示例代码
以下是一个简单的 RTC 初始化和读取时间的代码示例:
```c
#include "stm32g4xx_hal.h"
void RTC_Init(void) {
RTC_HandleTypeDef hrtc;
hrtc.Instance = RTC;
hrtc.Init.AsynchPrediv = 0x7F; // 异步预分频值
hrtc.Init.SynchPrediv = 0xFF; // 同步预分频值
hrtc.Init.HourFormat = RTC_HOURFORMAT_24;
if (HAL_RTC_Init(&hrtc) != HAL_OK) {
// 初始化错误处理
}
}
void GetTime(RTC_TimeTypeDef *time, RTC_DateTypeDef *date) {
HAL_RTC_GetTime(&hrtc, time, RTC_FORMAT_BIN);
HAL_RTC_GetDate(&hrtc, date, RTC_FORMAT_BIN);
}
```
阅读全文
相关推荐

















