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

相关推荐
Tlog嵌入式1 小时前
[项目]基于FreeRTOS的STM32四轴飞行器: 二.项目搭建及移植FreeRTOS
stm32·单片机·嵌入式硬件·mcu
L73S372 小时前
C/C++输入输出(1)
c++·笔记·学习·考研·蓝桥杯
【 STM32开发 】4 小时前
STM32 -- 仿真器 ST-Link、J-Link 的连接、参数设置
stm32·物联网·jlink·stlink·仿真器·烧录器
xtone.9 小时前
蓝桥杯真题
蓝桥杯
骑驴看星星a10 小时前
P10904 [蓝桥杯 2024 省 C] 挖矿
c语言·算法·蓝桥杯
花落已飘11 小时前
STM32Cubemx配置E22-xxxT22D lora模块实现定点传输
stm32·单片机·嵌入式硬件
_GR11 小时前
2017年蓝桥杯第八届C&C++大学B组真题及代码
c++·职场和发展·蓝桥杯
一只码代码的章鱼11 小时前
蓝桥杯刷题(Cows in a Skyscraper G,炮兵阵营)
蓝桥杯
WenGyyyL12 小时前
蓝桥杯真题——近似gcd(很离谱!!!)
算法·leetcode·蓝桥杯·滑动窗口
滨HI018 小时前
P8692 [蓝桥杯 2019 国 C] 数正方形--输出取模余数
c语言·c++·算法·职场和发展·蓝桥杯