stm32f103rtc实时时钟代码
时间: 2024-09-27 13:01:39 浏览: 47
STM32F103C8T6自动RTC时钟,基于stm32的rtc实时时钟,C,C++
5星 · 资源好评率100%
STM32F103系列微控制器的RTC(Real-Time Clock)是一个独立于系统时钟工作的低功耗模块,用于提供日期、时间和闹钟功能。以下是使用STM32Cube库编写基本的RTC时钟设置和读取示例代码:
```c
#include "stm32f1xx_hal.h"
#include "stm32f1xx_rtc.h"
// RTC_HandleTypeDef实例
RTC_HandleTypeDef hrtc;
void SystemClock_Config(void) {
// 其他系统时钟配置...
__HAL_RCC_RTC_ENABLE(); // 启动RTC时钟
}
void setupRtc(void) {
// 初始化RTC结构体
hrtc.Instance = RTC;
hrtc.Init.HourFormat = RTC_HOURFORMAT_24; // 24小时制
hrtc.Init.AsynchPrediv = RTC_AsynchPrediv_DIV8; // 预分频器默认值
hrtc.Init.SynchPrediv = 0x0; // 同步预分频器为0(无)
hrtc.Init.OutPut = RTC_OUTPUT_DISABLE; // 输出信号禁止
if (HAL_RTC_Init(&hrtc) != HAL_OK) {
while(1); // 程序错误处理
}
HAL_RTC_SetTime(&hrtc, &rtc_datetime, RTC_FORMAT_BCD); // 设置当前时间
}
RTC_TimeTypeDef rtc_time = {0, 0}; // 定义时间结构
RTC_DateTypeDef rtc_date = {0, 0, 0}; // 定义日期结构
void readRtc(void) {
HAL_RTC_GetTime(&hrtc, &rtc_time, RTC_FORMAT_BCD); // 获取当前时间
HAL_RTC_GetDate(&hrtc, &rtc_date, RTC_FORMAT_BCD); // 获取当前日期
// 根据需要打印或存储这些值
}
阅读全文