蓝桥杯——STM32 RTC时钟配置与代码

本文讲述了如何在不具备电池供电的RTC模块中使用LSE时钟,解决与LCD引脚冲突的问题,并介绍了在Cubemx中配置RTC以实现1Hz计时的方法,以及读取时间和日期的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 RTC实时时钟是掉电后可继续计时的时钟,前提是有电池供电,这板子没有,所以直接是做不到真正的RTC的,其实可以将掉电之前的数据写入内存,下次开机直接读取。一般选用LSE时钟,但是这个LSE会占用PC引脚,与LCD冲突,所以干脆直接用HSE吧,反正板子要接电。

1.Cubemx配置

 125和6000是为了分频,下图RTC时钟输入频率为750K,而我们要分为1HZ的时钟频率才能完成计时单位一秒的计时。

2.代码

先读时间再读日期 

RTC_TimeTypeDef H_M_S_Time;
RTC_DateTypeDef Y_M_D_Date;
uint8_t Second;
HAL_RTC_GetTime(&hrtc, &H_M_S_Time, RTC_FORMAT_BIN);//读取日期和时间必须同时使用
	HAL_RTC_GetDate(&hrtc, &Y_M_D_Date, RTC_FORMAT_BIN);
	sprintf((char *)Lcd_Disp_String, "Time:%02d-%02d-%02d",(unsigned int)H_M_S_Time.Hours,(unsigned int)H_M_S_Time.Minutes,(unsigned int)H_M_S_Time.Seconds);
	LCD_DisplayStringLine(Line4, Lcd_Disp_String);
	sprintf((char *)Lcd_Disp_String, "Date:%02d-%02d-%02d-%02d",(unsigned int)Y_M_D_Date.Year,(unsigned int)Y_M_D_Date.Month,(unsigned int)Y_M_D_Date.Date,(unsigned int)Y_M_D_Date.WeekDay);
	LCD_DisplayStringLine(Line5, Lcd_Disp_String);
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

满城烟雨DLRY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值