蓝桥杯嵌入式(G431)备赛笔记——RTC

cpp 复制代码
// RTC time

// 声明一个变量 rtc_tick 用于记录上次 RTC 处理的时间
u32 rtc_tick = 0;

// 声明结构体变量 D 用于存储 RTC 的日期信息
RTC_DateTypeDef D;

// 声明结构体变量 T 用于存储 RTC 的时间信息
RTC_TimeTypeDef T;

// RTC_proc 函数,用于处理 RTC 时间
void RTC_proc()
{
    // 如果当前时间与上次 RTC 处理时间的时间差小于100ms,则退出函数,等待下一次执行
    if (uwTick - rtc_tick < 100)
        return;

    // 更新 rtc_tick 为当前时间
    rtc_tick = uwTick;

    // 注意这里需要同时获取时间和日期信息,不能只获取时间或日期
    HAL_RTC_GetTime(&hrtc, &T, RTC_FORMAT_BIN); // 获取 RTC 时间
    HAL_RTC_GetDate(&hrtc, &D, RTC_FORMAT_BIN); // 获取 RTC 日期
}

// 将获取到的 RTC 时间和日期信息显示在 LCD 上
sprintf((char *)lcd_buff, "      %02d-%02d-%02d     ", T.Hours, T.Minutes, T.Seconds); // 格式化时间信息
LCD_DisplayStringLine(Line8, lcd_buff); // 在 LCD 的第8行显示时间信息

sprintf((char *)lcd_buff, "      %02d-%02d-%02d-%d     ", 2000 + D.Year, D.Month, D.Date, D.WeekDay); // 格式化日期信息
LCD_DisplayStringLine(Line9, lcd_buff); // 在 LCD 的第9行显示日期信息

配置rtc,启用时钟源(内部的32mhz),配置预分频和分频数,配置起始时间23:59:55,设置起始年月

相关推荐
潘潘的嵌入式日记1 天前
改完Keil工程文件被缓存覆盖?——uvprojx编辑的进阶四坑
xml·嵌入式·keil·调试·mdk·工程文件
ICECREAM1 天前
嵌入式 —— 串口与 UART 深入详解 —— i.MX6ULL 实战
嵌入式
浅止菌1 天前
嵌入式Linux内存优化:从OOM到稳定运行的6个实战技巧
嵌入式
大辉狼_音频架构1 天前
Vol.05 VendorHAL-NXP
嵌入式·音视频开发
声讯电子2 天前
AU-60 VS A-59F 语音模组完整对比(研发选型专用)
嵌入式·ai降噪·回声消除·语音模组
Highcharts2 天前
用 Highcharts 构建交互式 ICU 实时生命体征监护仪表盘
嵌入式·数据可视化
zlinear数据采集卡2 天前
从万用表的6步调零到硅片级微秒自校准:硬核拆解LHAMP188的宽压轨到轨与零漂移实战
arm开发·stm32·单片机·嵌入式硬件·fpga开发
2401_854151552 天前
嵌入式 Bootloader 与 OTA 固件升级深度解析——从 Flash 分区到安全回滚
开发语言·stm32·单片机·嵌入式硬件·安全·php
吠品3 天前
多语言支持,从后台到前端我都趟过哪些坑
stm32·单片机·嵌入式硬件
2401_888859713 天前
STM32H7外部flash(W25Q128)+SPI+DMA读写
stm32·单片机·嵌入式硬件