江访 ed5f7a08c0 add:新增Air780EPM ht1621 段码液晶屏demo há 1 mês atrás
..
ht1621_drv.lua ed5f7a08c0 add:新增Air780EPM ht1621 段码液晶屏demo há 1 mês atrás
key_drv.lua ed5f7a08c0 add:新增Air780EPM ht1621 段码液晶屏demo há 1 mês atrás
main.lua ed5f7a08c0 add:新增Air780EPM ht1621 段码液晶屏demo há 1 mês atrás
readme.md ed5f7a08c0 add:新增Air780EPM ht1621 段码液晶屏demo há 1 mês atrás
ui_main.lua ed5f7a08c0 add:新增Air780EPM ht1621 段码液晶屏demo há 1 mês atrás

readme.md

HT1621 段码屏显示时钟

一、功能模块介绍

1.1 核心主程序模块

  1. main.lua - 主程序入口,负责系统初始化和任务调度
  2. ui_main.lua - 用户界面主控模块,管理时间显示、页面切换和事件处理

1.2 驱动模块

  1. ht1621_drv.lua - HT1621 段码屏驱动模块,负责液晶屏硬件初始化
  2. key_drv.lua - 按键驱动模块,管理 BOOT 键和 PWR 键的 GPIO 中断和防抖处理

二、按键消息介绍

2.1 按键事件消息

  1. "KEY_EVENT" - 按键事件消息,包含按键类型和状态
    • boot 键事件:boot_down(按下)、boot_up(释放)
    • pwr 键事件:pwr_down(按下)、pwr_up(释放)

2.2 按键功能定义

  • 主页(时间显示):boot 键(按下)切换显示页面(时间 ↔ 日期)
  • 日期页面:boot 键(按下)切换回时间页面
  • PWR 键在本演示中未定义特殊功能,仅作为按键状态示例

三、显示效果

时间-星期
年月日


4.1 时间显示功能

  1. 开机画面 - 显示1秒所有段码,以帮助理解每个段码的显示逻辑,更方便应用到其他场景以及与演示demo不同品牌的ht1621上

4.2 时间显示功能

  1. 自动时间同步 - 从系统时间获取实时时间
  2. 冒号闪烁 - 每秒钟冒号状态切换,增强时间显示效果
  3. 星期显示 - 显示星期数字(1-7 对应星期一至星期日)
  4. 30 秒自动更新 - 每隔 30 秒自动刷新显示内容

4.3日期显示功能

  1. 完整日期显示 - 显示年、月、日信息
  2. 格式化显示 - 统一为两位数字格式(如 01、12 等)

4.4 页面切换功能

  1. 一键切换 - 按 BOOT 键在时间和日期页面间切换
  2. 状态记忆 - 保持当前显示页面状态

4.5 系统管理功能

  1. 看门狗保护 - 防止程序死循环,自动重启

五、演示硬件环境

5.1 硬件清单

  • Air780EPM 核心板 × 1
  • ht1621 液晶屏 × 1:demo所使用的型号购链接
  • 母对母杜邦线 × 6,杜邦线太长的话,会出现 spi 通信不稳定的现象;
  • TYPE-C 数据线 × 1
  • Air780EPM 核心板和 ht1621 液晶屏的硬件接线方式为

    • Air780EPM 核心板通过 TYPE-C USB 口供电(核心板正面开关拨到 ON 一端),此种供电方式下,VDD_EXT 引脚为 3.3V,可以直接给 ht1621 液晶屏供电;
    • 为了演示方便,所以 Air780EPM 核心板上电后直接通过 VDD_EXT 引脚给 ht1621 液晶屏供电;
    • 客户在设计实际项目时,一般来说,需要通过一个 GPIO 来控制 LDO 给配件板供电,这样可以灵活地控制配件板的供电,可以使项目的整体功耗降到最低;

5.2 接线配置

5.2.1 显示屏接线

Air780EPM 核心板
ht1621 液晶屏
22/GPIO1
WR
102/GPIO20
CS
20/GPIO24
DATA
VDD_EXT
VCC
GND
GND

5.2.3 接线图

六、演示软件环境

6.1 开发工具

6.2 内核固件

6.3 脚本文件

  1. main.lua - 主程序入口
  2. ui_main.lua - 用户界面主模块
  3. ht1621_drv.lua - HT1621 驱动模块
  4. key_drv.lua - 按键驱动模块

七、演示核心步骤

7.1 硬件准备

  1. 按照硬件接线表连接所有设备
  2. 确保电源连接正确,通过TYPE-C USB口供电
  3. 检查所有接线无误,避免短路
  4. 确认核心板上的 BOOT 键和 PWR 键可用

7.2 软件配置

main.lua中加载对应的驱动模块:


-- 加载按键驱动模块
require "key_drv"

-- 加载用户界面系统主模块
require "ui_main"

7.3 软件烧录

  1. 使用Luatools选择最新内核固件
  2. 下载本项目所有脚本文件
  3. 将固件和脚本一起烧录到设备
  4. 烧录成功后设备自动重启后开始运行

7.4 功能测试

7.4.1 时间显示页面(默认页面)

  1. 设备启动后默认显示时间页面
  2. 观察显示效果:小时:分钟 星期(如 12:34 星 5)
  3. 观察冒号每秒闪烁一次
  4. 等待 30 秒,观察时间自动更新

7.4.2 页面切换测试

  1. 按下核心板上的 BOOT 键
  2. 观察显示切换到日期页面(格式:年-月-日,如 25 12 11)
  3. 注意:日期页面没有冒号闪烁
  4. 再次按下 BOOT 键,切换回时间页面

7.4.3 日期显示页面

  1. 在日期页面,观察显示格式为 YY-MM-DD
  2. 所有数字都显示为两位(如 01、12 等)
  3. 等待 30 秒,观察日期自动更新

7.4.4 按键功能测试

  1. BOOT 键:按下切换时间和日期页面
  2. PWR 键:按下和释放会触发按键事件(本演示中无特殊功能)
  3. 观察日志输出,确认按键事件正常触发

7.5 预期效果

  • 时间显示页面:正常显示小时和分钟,冒号每秒闪烁,右下角显示星期数字
  • 日期显示页面:正常显示年-月-日,所有数字为两位格式
  • 页面切换:按 BOOT 键在时间和日期页面间流畅切换
  • 自动更新:每 30 秒自动更新显示内容
  • 冒号闪烁:仅时间页面有冒号闪烁,每秒切换状态
  • 按键响应:BOOT 键切换页面,PWR 键触发按键事件

7.6 故障排除

  1. 显示异常或无显示

    • 检查 HT1621 接线是否正确(CS、DATA、WR、VCC、GND)
    • 确认 GPIO 引脚配置正确
    • 检查电源电压是否稳定(3.3V)
  2. 按键无响应

    • 检查 BOOT 键和 PWR 键是否正常
    • 确认 key_drv.lua 中按键 GPIO 配置正确
    • 查看日志确认按键驱动初始化成功
  3. 冒号不闪烁

    • 确认当前显示的是时间页面(日期页面无冒号)
    • 检查冒号闪烁定时器是否正常启动
    • 查看 ui_main.lua 中的冒号处理逻辑
  4. 时间显示错误

    • 确认系统时间设置正确
    • 检查 os.date()函数返回值
    • 确认时间格式化逻辑正确
  5. 系统运行不稳定

    • 检查内存使用情况,适当调整定时器频率
    • 确认看门狗功能正常启用
    • 查看错误日志分析具体问题

7.7 扩展功能建议

ht1621更多接口的使用可以查看ht1621核心库说明