这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » Let'sdo2025年第2期—智能手环DIY的RTC显示

共1条 1/1 1 跳转至

Let'sdo2025年第2期—智能手环DIY的RTC显示

助工
2025-10-09 10:49:50     打赏

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屏幕上时间的显示

展示效果如下

工程代码如下

sensor_rtc.zip




关键词: RTC     脉搏     血氧     MAX30102    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]