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

相关推荐
小龙报29 分钟前
【51单片机】51 单片机 IIC 协议深度解析:时序实现 + GXHT3L 连续转换模式 + 数据解析
c语言·数据结构·stm32·单片机·嵌入式硬件·物联网·51单片机
阿i索33 分钟前
【蓝桥杯备赛Day1】——语法基础+string基础操作
蓝桥杯·打卡
Epiphany.55637 分钟前
蓝桥杯2024年第十五届决赛真题-套手镯
c++·算法·蓝桥杯
不做无法实现的梦~11 小时前
ros2实现路径规划---nav2部分
linux·stm32·嵌入式硬件·机器人·自动驾驶
whik119419 小时前
ESP32-C3-DevKitM-1开发板深度上手评测
wifi·嵌入式·esp32·arduino·蓝牙·开发板·乐鑫
LeoZY_1 天前
CH347/339W开源项目:集SPI、I2C、JTAG、SWD、UART、GPIO多功能为一体(3)
stm32·单片机·嵌入式硬件·mcu·开源
Hello_Embed1 天前
libmodbus STM32 板载串口实验(双串口主从通信)
笔记·stm32·单片机·学习·modbus
良许Linux1 天前
嵌入式处理器架构
stm32·单片机·程序员·嵌入式·编程
wotaifuzao1 天前
为什么 if/else 是嵌入式系统的慢性毒药?
stm32·重构·freertos·状态机·架构设计·事件驱动·表驱动
k↑1 天前
嵌入式之Ubuntu22.04构建XMOS
嵌入式