蓝桥杯嵌入式(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,设置起始年月

相关推荐
ahccqw3 小时前
CAN总线通信入门及实例代码(stm32f4系列)
stm32·单片机·嵌入式硬件
Freak嵌入式4 小时前
MicroPython对接大模型:uopenai + 火山方舟实现文字聊天和图片理解
ide·驱动开发·ai·llm·嵌入式·micropython·upypi
charlie1145141915 小时前
嵌入式现代C++工程实践——第14篇:第二次重构 —— 模板登场,编译时绑定端口和引脚
开发语言·c++·stm32·安全·重构
想放学的刺客8 小时前
单片机嵌入式试题(第34期)嵌入式开发的利器:逻辑分析仪与示波器深度解析
arm开发·stm32·单片机·嵌入式硬件·物联网
三品吉他手会点灯9 小时前
STM32 DAP 烧录报错-DAP下载器的原理
stm32·单片机·嵌入式硬件
凉、介9 小时前
从设备树到驱动源码:揭秘嵌入式 Linux 中 MMC 子系统的统一与差异
linux·驱动开发·笔记·学习·嵌入式·sd·emmc
feifeigo1239 小时前
基于STM32 Nucleo-L476RG的智能灯设计(纯CubeMX开发)
stm32·单片机·嵌入式硬件
CinzWS21 小时前
A53电源管理(下):DVFS与热管理的硬件实现——ARM芯片的“冷静艺术“
arm开发·嵌入式·芯片验证·原型验证·a53
【ql君】qlexcel1 天前
Visual Studio Code开发STM32设置头文件宏定义uint32_t报错
vscode·stm32·vs code·头文件宏定义·uint32_t报错·uint8_t报错·uint16_t报错
CoderYanger1 天前
14届蓝桥杯省赛Java A 组Q1~Q3
java·开发语言·线性代数·算法·职场和发展·蓝桥杯