宣城网站优化,视频网站如何做推广,洛可可设计公司待遇,邢台营销型网站建设一、RTC是什么#xff0c;有什么用#xff1f; 在 STM32 中#xff0c;RTC#xff08;Real-Time Clock#xff0c;实时时钟#xff09;主要有以下作用#xff1a; 时间保持#xff1a;即使在系统断电情况下#xff0c;也能持续记录时间。#xff08;需要纽扣电池供电…一、RTC是什么有什么用 在 STM32 中RTCReal-Time Clock实时时钟主要有以下作用 时间保持即使在系统断电情况下也能持续记录时间。需要纽扣电池供电提供时间基准为系统提供准确的时间信息便于各种时间相关的操作和任务。事件记录可用于记录特定事件发生的时间。 主要包含日历、闹钟和自动唤醒这三部分的功能其中的日历功能我们使用的最多。日历包含两个32bit的时间寄存器可直接输出时分秒星期、月、日、年。其中使用最多的是LSELSE由一个外部的32.768KHZ6PF负载的晶振提供精度高稳定RTC首选。LSI是芯片内部的30KHZ晶体精度较低会有温漂一般不建议使用。HSE_RTC由HSE分频得到最高是750khz使用的也较少。因为我们的竞赛板子上只有HSE和LSI并未连接LSE,因此我们使用HSE_RTC 在 RTC实时时钟中 同步分频是指分频操作与时钟信号同步进行。也就是说分频器的工作节奏与时钟信号的节奏一致数据的传输和处理在时钟的控制下进行这种方式可以确保分频结果的准确性和稳定性。 异步分频则是指分频操作与时钟信号不同步。可能会存在一些相位偏差或不确定性在某些情况下可能会对系统的性能或时间精度产生一定影响。 同步分频和异步分频主要有以下区别 时钟关系同步分频的输出时钟与输入时钟同步而异步分频的输出时钟与输入时钟不同步。相位关系同步分频的输出相位与输入相位直接相关而异步分频的输出相位可能存在不确定性。精度一般情况下同步分频的精度更高因为它受到输入时钟的直接控制异步分频的精度可能会受到一些因素的影响。稳定性同步分频相对更稳定而异步分频在某些情况下可能会出现抖动或不稳定的情况。 选择同步分频或异步分频通常需要考虑以下因素 系统要求如果对时间精度和稳定性有较高要求通常会优先选择同步分频。电路复杂性异步分频可能相对简单但同步分频可能需要更复杂的电路设计。应用场景根据具体的应用环境和需求来决定比如一些对相位关系要求不严格的场景可能更适合异步分频。 二、使用步骤 三、代码
定义结构体日期和时间
RTC_DateTypeDef rtc_date;
RTC_TimeTypeDef rtc_time;
在LCD函数中获取值
注意两个都要获取一下不然容易出毛病 HAL_RTC_GetDate(hrtc, rtc_date, RTC_FORMAT_BIN);通过调用HAL_RTC_GetDate函数从指定的hrtc实时时钟获取日期信息并将其存储到rtc_date结构体中。RTC_FORMAT_BIN表示以二进制格式获取日期。HAL_RTC_GetTime(hrtc, rtc_time, RTC_FORMAT_BIN);同样地通过调用HAL_RTC_GetTime函数从指定的hrtc实时时钟获取时间信息并将其存储到rtc_time结构体中。RTC_FORMAT_BIN表示以二进制格式获取时间。 HAL_RTC_GetDate(hrtc,rtc_date,RTC_FORMAT_BIN);HAL_RTC_GetTime(hrtc,rtc_time,RTC_FORMAT_BIN);
在LCD中显示 sprintf(buf, Date:%02d-%02d-%02d, rtc_date.Year, rtc_date.Month, rtc_date.Date);使用sprintf函数将日期信息按照指定的格式年、月、日均为两位数字写入buf字符串中。LCD_DisplayStringLine(Line3, (uint8_t*)buf);将包含日期信息的字符串显示在液晶屏的第 3 行。sprintf(buf, Time:%02d-%02d-%02d, rtc_time.Hours, rtc_time.Minutes, rtc_time.Seconds);类似地使用sprintf函数将时间信息按照指定的格式时、分、秒均为两位数字写入buf字符串中。LCD_DisplayStringLine(Line4, (uint8_t*)buf);将包含时间信息的字符串显示在液晶屏的第 4 行。 sprintf(buf, Date:%02d-%02d-%02d,rtc_date.Year,rtc_date.Month,rtc_date.Date);//RTC时钟LCD_DisplayStringLine(Line3,(uint8_t*)buf);sprintf(buf, Time:%02d-%02d-%02d,rtc_time.Hours,rtc_time.Minutes,rtc_time.Seconds);LCD_DisplayStringLine(Line4,(uint8_t*)buf);
四、开源代码
通过网盘分享的文件19-TEST9-RTC实时时钟.zip 链接: https://pan.baidu.com/s/150G8rln1ZEBG1QCZBqrMAQ?pwd0820 提取码: 0820