“ 本篇文章介绍STM32实时时钟(RTC)的使用方法。”
前期准备
STM32硬件电路板及仿真器(以STM32F407ZGT6单片机为例)
Keil v5以上版本(MDK-ARM)
串口助手
实时时钟 (RTC) 是STM32单片机的标配,每个系列的都有,只是早期的F1系列只是一个比较简单的定时器,后面的F0、F4等系列都 集成了日历时钟的功 能,使用 起来更方便。
两个 32 位寄存器包含二进码十进数格式 (BCD) 的秒、分钟、小时( 12 或 24 小时制)、星期几、日期、月份和年份。此外,还可提供二进制格式的亚秒值。系统可以自动将月份的天数补偿为 28、29(闰年)、30 和 31 天。
01
—
STM32CubeMX配置
首先打开外部低速时钟LSE
使能RTC功能和日历时钟功能,其它功能默认即可。
RTC时钟选择为LSE,32.768kHz
设置完成后点击生成代码。
02
—
代码编写
RTC初始化函数已经自动生成:MX_RTC_Init()。内部包含了时钟和日历的初始设置,可以屏蔽掉。
设置和获取时间或日期时,直接调用相关函数即可:
HAL_StatusTypeDef HAL_RTC_SetTime(RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTime, uint32_t Format);
时间和日期的格式一般用BCD格式较多,如sTime.Hours = 0x12;表示设置小时为12时,而不是十进制的18时。
欢迎关注公众号"嵌入式技术开发",大家可以后台给我留言沟通交流。如果觉得该公众号对你有所帮助,也欢迎推荐分享给其他人。
本文分享自微信公众号 - 嵌入式技术开发(Mr_Zhang_Cug)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。