RTC的实现依赖于头文件rtc.h中的相关函数
时分秒的显示可以通过对秒数的叠加计算得到,为了便于展示,这里定义初始时间为00:00:00,使用函数MXC_RTC_GetSeconds可以读取到当前的秒数,实现代码如下
static void draw_time_hhmmss(void)
{
    static uint32_t last_sec = 0xFFFFFFFF; // 避免重复重绘
    uint32_t sec = 0;
    if (MXC_RTC_GetSeconds(&sec) != E_NO_ERROR) return;   // 读取整秒计数
    if (sec == last_sec) return;
    last_sec = sec;
    // 只取一天内的时分秒(不显示日期)
    uint32_t t = sec % 86400U;          // 24*3600
    uint32_t hh =  t / 3600U;           t %= 3600U;
    uint32_t mm =  t / 60U;
    uint32_t ss =  t % 60U;
    char buf[16];
    // 固定 8 个字符:"HH:MM:SS"
    sprintf(buf, "%02lu:%02lu:%02lu", (unsigned long)hh, (unsigned long)mm, (unsigned long)ss);
    // 16点阵字库
    const uint16_t font_h = 16;
    uint16_t x = 80;
    uint16_t y = 100;
    // 非叠加模式 + 黑色背景,确保每秒更新不留残影
    LCD_ShowString(x, y, (uint8_t*)buf, WHITE, BLACK, font_h, 0);
}将draw_time_hhmmss()直接在主循环中调用,可以实现LCD屏幕上时间的显示
展示效果如下
工程代码如下
最终所有内容的汇总视频成果如下
						
			
			
			
						
			
 我要赚赏金
