# eink墨水屏演示系统
## 一、功能模块介绍
### 1.1 核心主程序模块
1. **main.lua** - 主程序入口,负责系统初始化和任务调度
2. **ui_main.lua** - 用户界面主控模块,管理页面切换和事件分发
### 1.2 显示页面模块
3. **home_page.lua** - 主页模块,提供应用入口和导航功能
4. **eink_page.lua** - eink核心库演示模块
5. **time_page.lua** - 时间显示演示模块
### 1.3 驱动模块
6. **eink_drv.lua** - eink显示驱动模块,基于eink核心库
7. **key_drv.lua** - 按键驱动模块,管理BOOT键和PWR键
## 二、按键功能说明
### 2.1 按键消息
- **"KEY_EVENT"** - 按键事件消息,包含按键类型和状态
- boot键事件:`boot_down`(按下)、`boot_up`(释放)
- pwr键事件:`pwr_down`(按下)、`pwr_up`(释放)
### 2.2 按键功能定义
- **主页页面**:
- BOOT键:切换选项(eink演示 ↔ 时间显示)
- PWR键:确认进入选中的页面
- **eink演示页面**:
- PWR键:返回主页
- BOOT键:无功能
- **时间显示页面**:
- BOOT键:切换时间显示格式(共6种格式)
- PWR键:返回主页
## 三、显示效果
## 四、硬件接线配置
### 4.1 物料清单
- Air780EHM/Air780EHV/Air780EGH核心板 × 1
- 微雪1.54寸墨水屏 × 1 [demo所使用的墨水屏购买链接](https://e.tb.cn/h.7VUl8PgFVWhwLJS?tk=e3FVfDz34Ki)
- 母对母杜邦线 × 8
- TYPE-C 数据线 × 1
- Air780EHM/Air780EHV/Air780EGH核心板和微雪1.54寸墨水屏的硬件接线方式为
- Air780EHM/Air780EHV/Air780EGH 核心板通过 TYPE-C USB 口供电(核心板正面开关拨到 ON 一端),此种供电方式下,VDD_EXT 引脚为 3.3V,可以直接给微雪1.54寸墨水屏供电;
- 为了演示方便,所以 Air780EHM/Air780EHV/Air780EGH 核心板上电后直接通过VDD_EXT引脚给微雪1.54寸墨水屏供电;
- 客户在设计实际项目时,一般来说,需要通过一个 GPIO 来控制 LDO 给配件板供电,这样可以灵活地控制配件板的供电,可以使项目的整体功耗降到最低;
### 4.2 接线方式
|Air780EHM/Air780EHV/Air780EGH核心板| 墨水屏引脚 |
|---------------|-----------|
| 26/GPIO33 | BUSY |
| 25/GPIO26 | RST |
| 23/GPIO2 | DC |
| 22/GPIO1 | CS |
| 86/SPI0CLK | SCK |
| 85/SPI0MOSI | DIN |
| 24/VDD_EXT | VCC |
| GND | GND |
#### 4.2.3 接线图

## 五、演示软件环境
### 5.1 开发工具
- [Luatools下载调试工具](https://docs.openluat.com/air780egh/luatos/common/download/) - 固件烧录和代码调试
### 5.2 内核固件
- [点击下载Air780EHM系列最新版本内核固件](https://docs.openluat.com/air780epm/luatos/firmware/version/),demo所使用的是LuatOS-SoC_V2018_Air780EHM 1号固件
- [点击下载Air780EHV系列最新版本内核固件](https://docs.openluat.com/air780ehv/luatos/firmware/version/),demo所使用的是LuatOS-SoC_V2018_Air780EHV 1号固件
- [点击下载Air780EGH系列最新版本内核固件](https://docs.openluat.com/air780egh/luatos/firmware/version/),demo所使用的是LuatOS-SoC_V2018_Air780EGH 1号固件
## 六、演示操作步骤
### 6.1 硬件准备
1. 按照接线表连接eink屏幕
2. 确保电源连接正确,通过TYPE-C USB口供电
3. 确保所有连接正确无误
### 6.2 软件配置
在`main.lua`中选择加载对应的驱动模块:
```lua
-- 加载eink显示驱动管理功能模块
require "eink_drv"
-- 加载按键驱动管理功能模块
require "key_drv"
-- 加载eink核心库实现的用户界面功能模块
-- 实现多页面切换、按键事件分发和界面渲染功能
-- 包含主页、eink演示页和时间显示页
require "ui_main"
```
### 6.3 软件烧录
1. 使用Luatools烧录最新内核固件
2. 下载并烧录本项目所有脚本文件
3. 设备自动重启后开始运行
### 6.4 功能测试
#### 主页操作
1. 设备启动后显示主页
2. 使用BOOT键在两个选项间切换
3. 使用PWR键进入选中的页面
#### eink演示页面
1. 查看基本图形绘制示例
2. 查看文本显示效果
3. 查看二维码和电池图标
4. 按PWR键返回主页
#### 时间显示页面
1. 查看当前时间显示
2. 使用BOOT键切换不同的时间格式
3. 按PWR键返回主页
### 6.5 预期效果
- **主页**:清晰显示两个选项,选中状态明显
- **eink演示页面**:图形绘制清晰,布局合理
- **时间显示页面**:时间格式切换流畅
- **按键交互**:响应及时准确,页面切换正常
## 七、故障排除
1. **屏幕不显示**:检查SPI接线,确认电源供电
2. **按键无响应**:确认GPIO配置正确
3. **时间显示异常**:检查系统时间设置
4. **页面切换异常**:检查内存使用情况,适当调整刷新间隔
## 八、注意事项
1. eink屏幕刷新较慢,请勿频繁切换页面
2. 按键操作后请等待屏幕刷新完成
3. 长时间运行请确保电源稳定
4. 避免在高温高湿环境下使用
## 九、拓展使用
本demo内所演示的图形显示接口均可在eink核心库内找到,更丰富和详细的使用说明可以点击进入[eink核心库](https://docs.openluat.com/osapi/core/eink/)