stm32f103 rtc
更多
STM32F103 的 RTC(实时时钟)模块是一个独立于主系统的低功耗计时器,可在主电源关闭时通过备用电池(VBAT)维持运行,用于记录时间、日期或触发定时事件。以下是关于 STM32F103 RTC 的关键点和使用说明:
主要特性
- 独立供电:通过 VBAT 引脚连接备用电池(如纽扣电池),主电源关闭时仍可运行。
- 32 位计数器:以秒为单位递增,可记录约 136 年的时间。
- 闹钟功能:可配置中断触发特定时间事件。
- 日历功能:需软件实现日期计算(芯片无硬件日历)。
- 低功耗:在待机模式下仍可运行。
RTC 时钟源选择
RTC 的时钟源需通过 RCC 配置,可选:
- LSE(低速外部晶振):32.768 kHz(典型选择,精度高,需外接晶振)。
- LSI(低速内部 RC 振荡器):约 40 kHz(精度较低,无需外部元件)。
- HSE 分频:高速外部时钟分频后提供(较少用)。
配置步骤(以 HAL 库为例)
-
使能时钟和备份域访问
__HAL_RCC_PWR_CLK_ENABLE(); // 使能 PWR 时钟 HAL_PWR_EnableBkUpAccess(); // 允许访问备份域 __HAL_RCC_BKP_CLK_ENABLE(); // 使能 BKP 时钟 -
初始化 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); -
配置 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); -
设置时间和日期
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); -
读取时间和日期
RTC_TimeTypeDef currentTime; RTC_DateTypeDef currentDate; HAL_RTC_GetTime(&hrtc, ¤tTime, RTC_FORMAT_BIN); HAL_RTC_GetDate(&hrtc, ¤tDate, RTC_FORMAT_BIN);
常见问题
-
RTC 不运行
- 检查 VBAT 是否连接备用电池。
- 确认 LSE 已正确启用(部分型号需配置
RCC_BDCR寄存器)。 - 确保
__HAL_RCC_BKP_CLK_ENABLE()被调用。
-
时间误差大
- LSE 晶振需匹配负载电容(通常 6-12 pF)。
- 避免 PCB 布局干扰晶振(远离高频信号)。
-
复位后时间丢失
- 确保备用电池正常供电。
- 首次初始化后,通过备份寄存器(如
BKP_DR1)标记已初始化,避免重复配置。
注意事项
- 备份域复位:修改 RTC 配置前需复位备份域(谨慎操作,会导致时间重置)。
- 中断配置:若使用闹钟中断,需配置 NVIC 并实现中断服务函数。
- 低功耗模式:在待机模式下,RTC 可唤醒系统(通过
HAL_PWR_EnterSTANDBYMode())。
通过合理配置,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 flash模拟eeprom
STM32F103是意法半导体(STMicroelectronics)推出的一款32位单片机系列,该系列芯片具有高性能和丰富的外设接口,广泛应用于工业控制、消费电子、汽车电子等领域。其中
2024-01-09 11:21:36
7天热门专题
换一换
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 芯片的工作原理是什么?
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 什么是蓝牙?它的主要作用是什么?
- ssd是什么意思
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- EDA是什么?有什么作用?
- dtmb信号覆盖城市查询
- 苹果手机哪几个支持无线充电的?
- type-c四根线接法图解
- 华为芯片为什么受制于美国?
- 怎样挑选路由器?
- 元宇宙概念股龙头一览
- 锂电池和铅酸电池哪个好?
- 什么是场效应管?它的作用是什么?
- 如何进行编码器的正确接线?接线方法介绍
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- 苹果nfc功能怎么复制门禁卡
- 单片机和嵌入式的区别是什么
- amoled屏幕和oled区别
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 传感器常见类型有哪些?
- 自举电路图
- 通讯隔离作用
- 苹果笔记本macbookpro18款与19款区别
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机
- 元宇宙概念龙头股一览