LCD、触摸与字体演示系统
一、功能模块介绍
1.1 核心主程序模块
- main.lua - 主程序入口,负责系统初始化和任务调度
- ui_main.lua - 用户界面主控模块,管理页面切换和事件分发
1.2 显示页面模块
- home_page.lua - 主页模块,提供应用入口和导航功能
- lcd_page.lua - LCD图形绘制演示模块
- gtfont_page.lua - GTFont矢量字体演示模块
- customer_font_page.lua - 自定义字体演示模块(目前仅预留相关页面,未有实际功能演示)
1.3 驱动模块
- lcd_drv.lua - LCD显示驱动模块,基于lcd核心库,lcd_drv和exlcd_drv二选一使用
- exlcd_drv.lua - LCD显示驱动模块,基于exlcd扩展库,lcd_drv和exlcd_drv二选一使用
- tp_drv.lua - 触摸驱动模块,基于tp核心库,tp_drv和extp_drv二选一使用
- extp_drv.lua - 触摸驱动模块,基于extp扩展库,tp_drv和extp_drv二选一使用
- gtfont_drv.lua - GTFont矢量字库驱动模块
- customer_font_drv.lua - 自定义外部字体驱动功能模块(开发中)
- hzfont_drv.lua - 合宙软件矢量字库(开发中)
- gtfongt_drv、customer_font_drv、hzfont_drv
- 可以都不启用
- 可以仅启用一种
- 可以启用任意两种
- 可以全部启用
二、触摸消息介绍
- "BASE_TOUCH_EVENT" - 基础触摸事件消息,包含触摸坐标和事件类型
- tp触摸库事件类型:
tp.EVENT_DOWN(按下)、tp.EVENT_MOVE(移动)、tp.EVENT_UP(抬起)
- extp触摸库事件类型:
SINGLE_TAP(单击)、LONG_PRESS(长按)可根据UI需求打开滑动事件
- 坐标范围:X: 0-799,Y: 0-479
三、显示效果
四、演示功能概述
4.1 LCD图形绘制演示
- 基本图形绘制 - 展示点、线、矩形、圆形等基本图形绘制功能
- 图片显示 - 支持外部图片文件显示
- 二维码生成 - 动态生成并显示二维码
- 颜色示例 - 展示多种颜色显示效果
4.2 GTFont矢量字体演示
- 矢量字体显示 - 使用AirFONTS_1000矢量字库小板显示平滑字体
- 字体大小切换 - 支持10-192号字体大小动态变化
- 灰度模式 - 支持灰度显示模式,字体边缘更平滑
- 多颜色显示 - 支持多种颜色字体显示
4.3 触摸交互功能
- 页面导航 - 支持多页面之间的切换
- 按钮响应 - 触摸按钮的点击响应功能
- 模式切换 - 支持gtfont切换灰度/常规显示
五、演示硬件环境
5.1 硬件清单
5.2 接线配置
5.2.1 LCD 显示屏接线
Air8101核心板
| AirLCD_1020配件板
|
gnd
| GND
|
vbat
| VCC
|
42/R0
| RGB_R0
|
40/R1
| RGB_R1
|
43/R2
| RGB_R2
|
39/R3
| RGB_R3
|
44/R4
| RGB_R4
|
38/R5
| RGB_R5
|
45/R6
| RGB_R6
|
37/R7
| RGB_R7
|
46/G0
| RGB_G0
|
36/G1
| RGB_G1
|
47/G2
| RGB_G2
|
35/G3
| RGB_G3
|
48/G4
| RGB_G4
|
34/G5
| RGB_G5
|
49/G6
| RGB_G6
|
33/G7
| RGB_G7
|
50/B0
| RGB_B0
|
32/B1
| RGB_B1
|
51/B2
| RGB_B2
|
31/B3
| RGB_B3
|
52/B4
| RGB_B4
|
30/B5
| RGB_B5
|
53/B6
| RGB_B6
|
29/B7
| RGB_B7
|
28/DCLK
| RGB_DCLK
|
54/DISP
| RGB_DISP
|
55/HSYN
| RGB_HSYNC
|
56/VSYN
| RGB_VSYNC
|
57/DE
| RGB_DE
|
14/GPIO8
| LCD_BL
|
13/GPIO9
| LCD_RST
|
8/GPIO5
| LCD_SDI
|
9/GPIO6
| LCD_SCL
|
68/GPIO12
| LCD_CS
|
75/GPIO28
| TP_RST
|
10/GPIO7
| TP_INT
|
12/U1TX
| TP_SCL
|
11/U1RX
| TP_SDA
|
5.2.2 GTFont 字库接线
| Air8101 核心板 | AirFONTS_1000配件板 |
| 66/GPIO3 | CS |
| 67/GPIO4 | MISO |
| 8/GPIO5 | MOSI |
| 65/GPIO2 | CLK |
| vbat | VCC |
5.2.3 接线图

六、演示软件环境
6.1 开发工具
6.2 内核固件
七、演示核心步骤
7.1 硬件准备
- 按照硬件接线表连接所有设备
- 确保电源连接正确,通过TYPE-C USB口供电
- 检查所有接线无误,避免短路
7.2 软件配置
在main.lua中选择加载对应的驱动模块:
-- 加载显示屏驱动管理功能模块,有以下两种:
-- 1、使用lcd核心库驱动的lcd_drv.lua
-- 2、使用exlcd扩展库驱动的exlcd_drv.lua
-- 根据自己的需求,启用两者中的任何一种都可以
-- 也可以不启用任何一种,不使用显示屏功能
lcd_drv = require "lcd_drv"
-- lcd_drv = require "exlcd_drv"
-- 加载触摸面板驱动管理功能模块,有以下两种:
-- 1、使用tp核心库驱动的tp_drv.lua
-- 2、使用extp扩展库驱动的extp_drv.lua
-- 根据自己的需求,启用两者中的任何一种都可以
-- 也可以不启用任何一种,不使用触摸面板功能
tp_drv = require "tp_drv"
-- tp_drv = require "extp_drv"
-- 加载字库驱动管理功能模块,有以下三种:
-- 1、使用gtfont核心库驱动AirFONTS_1000矢量字库配件板的gtfont_drv.lua
-- 2、使用hzfont核心库驱动内核固件中支持的软件矢量字库的hzfont_drv.lua(正在开发中,后续补充)
-- 3、使用自定义字体(正在开发中,后续补充)
-- 根据自己的需求,启用三者中的任何几种都可以
-- 也可以不启用任何一种,只使用内核固件中自带的点阵字库
require "gtfont_drv"
-- 加载输入法驱动管理功能模块(正在开发中,后续补充)
-- 加载lcd核心库实现的用户界面功能模块
-- 实现多页面切换、触摸事件分发和界面渲染功能
-- 包含主页、lcd核心库功能演示页、GTFont演示页和自定义字体演示页
require "ui_main"
7.3 软件烧录
- 使用Luatools烧录最新内核固件
- 下载本项目所有脚本文件和图片文件
- 将图片文件和脚本文件一起烧录到脚本分区
- 烧录完成后,设备自动重启后开始运行
7.4 功能测试
7.4.1 主页面操作
- 设备启动后显示主页面,包含三个功能按钮
- 查看系统功能概览信息
- 点击各功能按钮进入对应演示页面
7.4.2 LCD演示页面
- 查看基本图形绘制示例(点、线、矩形、圆形)
- 查看图片显示区域(显示logo图片)
- 查看二维码区域(合宙文档二维码)
- 查看颜色填充示例展示
- 查看位图和英文字体演示
- 点击"返回"按钮回到主页
7.4.3 GTFont演示页面
- 计时阶段,gtfont说明显示
- 字体大小变化阶段,查看10-192号字体动态变化
- 点击"灰度/常规"切换按钮,体验不同显示模式
- 查看多颜色字体显示效果
- 点击"返回"按钮回到主页
7.5 预期效果
- 主页面:正常显示,三个功能按钮响应灵敏
- LCD演示页面:图形绘制清晰,图片和二维码显示正常,颜色示例完整
- GTFont演示页面:字体显示平滑,字号切换流畅,灰度模式切换正常
- 触摸交互:所有触摸操作响应及时准确,页面切换流畅
7.6 故障排除
- 显示异常:检查LCD接线是否正确,确认电源供电稳定
- 触摸无响应:检查I2C接线,确认触摸芯片初始化成功
- 字体显示异常:检查SPI接线(如使用GTFont)
- 图片无法显示:确认图片文件已正确烧录到指定路径
- 系统卡顿:检查内存使用情况,适当调整刷新频率