配置示例
以下是配置 STM32 RTC 的基本步骤,以确保在休眠模式下保持计时:
c#include "stm32f4xx_hal.h"
RTC_HandleTypeDef hrtc;
void RTC_Config(void) {
// RTC 初始化结构体
hrtc.Instance = RTC;
hrtc.Init.HourFormat = RTC_HOURFORMAT_24;
hrtc.Init.AsynchPrediv = 127; // 设置异步预分频器
hrtc.Init.SynchPrediv = 255; // 设置同步预分频器
hrtc.Init.OutPut = RTC_OUTPUT_DISABLE; // 关闭 RTC 输出
if (HAL_RTC_Init(&hrtc) != HAL_OK) {
// 初始化失败处理
}
}
void Enter_Sleep_Mode(void) {
// 进入休眠模式前,确保配置了 RTC
HAL_PWR_EnterSLEEPMode(PWR_MAINREGULATOR_ON, PWR_SLEEPENTRY_WFI);
}
int main(void) {
HAL_Init(); // 初始化 HAL 库
RTC_Config(); // 配置 RTC
// 主循环
while (1) {
// 一些处理代码
// 进入低功耗模式
Enter_Sleep_Mode();
}
}
|