3. 产品使用
3.1 接口介绍和示例
3.1.1 接口定义

- TYPE-C(外接USB输入)
- 预留USB转串口输入
- TP(电容触摸屏接口,6P/0.5mm)
- 7.0寸屏接口(兼容50PIN和60PIN的屏)
- 预留电阻式触摸屏接口(4P/1.0)
- 预留电容触摸屏接口
- 预留屏背光插件接口
- 外接IO口
- 预留喇叭接口
- FLASH/8P外接插口
- TF 卡座
- 主控复位按钮
- 预留UART口
- 预留USB口
- 预留UART口
3.1.2 示例
上位机 GT-HMI Designer 可下载示例,你可以下载相应的示例
3.2 开发环境搭建
3.2.1 开发搭建
3.2.2 资料下载
-
GT-HMI-Builder
git clone https://gitee.com/genitop/GT-HMI-Builder.git -
GT-HMI-Engine
测试使用
commit 96f9974853afa49952bff69451afe94ebe33a265git clone https://gitee.com/genitop/GT-HMI-Engine.git -
Luban-lite SDK
测试使用
commit 48769ed416a0918fa5afc3c9a66d9518532033f9git clone https://gitee.com/artinchip/luban-lite.git
3.2.3 工程创建
注意:7 寸屏demo 和 10寸屏demo 只有 packages\third-party\gt_hmi\demo 中的内容不一样,其他的都可以通过 me 进行配置
3.2.3.1 7 寸屏demo
-
将
GT-HMI-Builder中\GT-HMI-Builder\GT-HMI Module\GTC-480800TFT70GP-AC7 寸屏内容拷贝到 Luban-lite SDK- 将 Target中的内容拷贝到 Luban-lite SDK 对应的路径中

- 将 packages 中的内容拷贝到 Luban-lite SDK 对应的路径中

- 将 Target中的内容拷贝到 Luban-lite SDK 对应的路径中
3.2.3.2 10.1寸屏demo
-
将
GT-HMI-Builder中\GT-HMI-Builder\GT-HMI Module\GTC-1024600TFT101GP-AC10.1寸屏内容拷贝到 Luban-lite SDK- 将 Target中的内容拷贝到 Luban-lite SDK 对应的路径中

- 将 packages 中的内容拷贝到 Luban-lite SDK 对应的路径中

- 将 Target中的内容拷贝到 Luban-lite SDK 对应的路径中
3.2.3.3 GT-HMI-Engine
将 GT-HMI-Engine拷贝到 Luban-lite SDK \packages\third-party\gt_hmi 目录下

3.2.3.4 修改Kconfig文件
在 packages\third-party\Kconfig 文件最后加入
source "packages/third-party/gt_hmi/Kconfig"
3.2.3.5 使用脚本实现以上步骤
#!/usr/bin/env bash
# setup_sdk.sh
#
# 用法(在目标工作目录中运行):
# bash setup_sdk.sh 7c # 仅配置 7 寸屏 demo
# bash setup_sdk.sh 101c # 仅配置 10.1 寸屏 demo
# bash setup_sdk.sh all # 配置两种 demo(默认)
#
# 脚本与工程路径无关,clone 和拷贝均基于脚本运行时的当前工作目录
set -e
SCREEN="${1:-all}"
WORK_DIR="$(pwd)"
# -----------------------------------------------------------------------
# 目标路径(相对于脚本运行时的工作目录)
# -----------------------------------------------------------------------
PATH_7C="${WORK_DIR}/GT-HMI-Builder/GT-HMI Module/GTC-480800TFT70GP-AC"
PATH_101C="${WORK_DIR}/GT-HMI-Builder/GT-HMI Module/GTC-1024600TFT101GP-AC"
LUBAN_DIR="${WORK_DIR}/luban-lite"
ENGINE_SRC="${WORK_DIR}/GT-HMI-Engine"
# -----------------------------------------------------------------------
# 辅助函数
# -----------------------------------------------------------------------
copy_to() {
local src="$1"
local dst="$2"
mkdir -p "$dst"
if [ -d "$src" ]; then
cp -r "$src/." "$dst/"
else
cp "$src" "$dst/"
fi
}
# -----------------------------------------------------------------------
# 第一步:资料下载(git clone)
# -----------------------------------------------------------------------
echo "========================================"
echo " Step 1: 资料下载 (git clone)"
echo "========================================"
if [ ! -d "${WORK_DIR}/GT-HMI-Builder/.git" ]; then
echo "[clone] GT-HMI-Builder ..."
git clone https://gitee.com/genitop/GT-HMI-Builder.git "${WORK_DIR}/GT-HMI-Builder"
else
echo "[skip] GT-HMI-Builder 已存在,跳过 clone"
fi
if [ ! -d "${WORK_DIR}/GT-HMI-Engine/.git" ]; then
echo "[clone] GT-HMI-Engine ..."
git clone https://gitee.com/genitop/GT-HMI-Engine.git "${WORK_DIR}/GT-HMI-Engine"
else
echo "[skip] GT-HMI-Engine 已存在,跳过 clone"
fi
if [ ! -d "${WORK_DIR}/luban-lite/.git" ]; then
echo "[clone] luban-lite SDK ..."
git clone https://gitee.com/artinchip/luban-lite.git "${WORK_DIR}/luban-lite"
else
echo "[skip] luban-lite 已存在,跳过 clone"
fi
# -----------------------------------------------------------------------
# 第二步:工程创建 —— GT-HMI-Engine -> luban-lite
# -----------------------------------------------------------------------
echo ""
echo "========================================"
echo " Step 2: 拷贝 GT-HMI-Engine 到 luban-lite"
echo "========================================"
ENGINE_DST="${LUBAN_DIR}/packages/third-party/gt_hmi/GT-HMI-Engine"
if [ -d "$ENGINE_SRC" ]; then
echo "[copy] GT-HMI-Engine -> packages/third-party/gt_hmi/GT-HMI-Engine"
mkdir -p "$ENGINE_DST"
cp -r "${ENGINE_SRC}/." "$ENGINE_DST/"
else
echo "[warn] GT-HMI-Engine 目录不存在,跳过"
fi
# -----------------------------------------------------------------------
# 第三步:从 GT-HMI-Builder 拷贝 target / packages 到 luban-lite
# -----------------------------------------------------------------------
echo ""
echo "========================================"
echo " Step 3: 从 GT-HMI-Builder 拷贝模块文件"
echo "========================================"
setup_7c() {
echo "--- 7 寸屏 demo ---"
local src="${PATH_7C}"
if [ ! -d "$src" ]; then
echo "[warn] 7 寸屏路径不存在: $src"
return
fi
if [ -d "${src}/target" ]; then
echo "[copy] target (7c) ..."
copy_to "${src}/target" "${LUBAN_DIR}/target"
fi
if [ -d "${src}/packages" ]; then
echo "[copy] packages (7c) ..."
copy_to "${src}/packages" "${LUBAN_DIR}/packages"
fi
}
setup_101c() {
echo "--- 10.1 寸屏 demo ---"
local src="${PATH_101C}"
if [ ! -d "$src" ]; then
echo "[warn] 10.1 寸屏路径不存在: $src"
return
fi
if [ -d "${src}/target" ]; then
echo "[copy] target (101c) ..."
copy_to "${src}/target" "${LUBAN_DIR}/target"
fi
if [ -d "${src}/packages" ]; then
echo "[copy] packages (101c) ..."
copy_to "${src}/packages" "${LUBAN_DIR}/packages"
fi
}
case "$SCREEN" in
7c) setup_7c ;;
101c) setup_101c ;;
all) setup_7c; setup_101c ;;
*)
echo "用法: bash setup_sdk.sh [7c|101c|all]"
exit 1
;;
esac
echo ""
echo "Done. 接下来请在 OneStep 环境中执行:"
echo " cd luban-lite"
echo " list # 列出可用的 defconfig 方案,确认已拷贝的方案名称"
echo " lunch <编号> # 选择 defconfig 方案"
echo " me # 通过 menuconfig 进行配置"
echo " m # 编译"
-
脚本使用方式
将 setup_sdk.sh 拷贝到需要建立的工程目录下,或者新建文件
sh setup_sdk.sh 7c # 仅 7 寸屏
sh setup_sdk.sh 101c # 仅 10.1 寸屏
sh setup_sdk.sh all # 两者都配置(默认)

脚本运行完后结果

3.2.4 Luban-lite SDK 使用(Windows)
参考资料:https://aicdoc.artinchip.com/topics/product/d21x-quick-start-chapter-soc-quickstart-d21x.html
1、打开 luban-lite 文件夹下的 win_env.bat 文件
2、输入 list 列出可用方案

3、输入 lunch <编号> 选择方案

4、输入 me 通过 menuconfig 进行配置
5、输入 m 进行编译
- 常用命令
| 命令 | 说明 |
|---|---|
list | 列出所有可用的 defconfig 方案 |
lunch [编号] | 选择并激活某个 defconfig,例如 lunch 3 |
me | 全局 menuconfig |
km | 仅配置 application 的 menuconfig |
bm | 仅配置 bootloader 的 menuconfig |
m / mb | 编译 bootloader + app,生成最终镜像 |
ma | 仅编译 app |
mu / ms | 仅编译 bootloader |
mc | 清理后重新全量编译 |
c | 清理所有编译产物 |
co / cout | 跳转到 output/*/images/ 目录 |
h | 查看所有 OneStep 命令帮助 |
3.2.5 GT-HMI-Engine 配置说明
GT-HMI Engine 的配置通过 Luban-lite SDK 的 menuconfig(me 命令)完成,配置文件位于 packages/third-party/gt_hmi/Kconfig。
3.2.5.1 配置机制说明
配置传递方式:
- SConscript 直接解析
.config文件,将CONFIG_LPKG_GT_HMI_GT_XXX转换为编译器宏-DGT_XXX=value - 这些宏通过
CPPDEFINES传递给编译器,直接覆盖gt_conf.h中的默认值 - 只有带
#ifndef保护的宏才能被 Kconfig 覆盖(如GT_SCREEN_WIDTH),无保护的宏(如GT_TASK_PERIOD_TIME_*)无法在 Kconfig 中配置
配置项命名规则:
_EN后缀(如GT_SCREEN_WIDTH_EN)是控制开关,仅决定是否覆盖,不会传递给编译器- 实际生效的是
GT_XXX形式的宏(如GT_SCREEN_WIDTH=800)
3.2.5.2 进入 GT-HMI 配置菜单
- 在 OneStep 环境中运行
me打开 menuconfig - 导航至:
Third-party packages→GT-HMI: Genitop HMI Engine - 勾选
[*] GT-HMI: Genitop HMI Engine启用引擎
3.2.5.3 Demo 选择
启用 Enable GT-HMI demo 后,可通过 choice 选择预置 demo:
| Demo 选项 | 说明 |
|---|---|
7c_vehicle demo | 7 寸屏车载界面 demo |
7c_washing demo | 7 寸屏洗衣机界面 demo |
7c_pos demo | 7 寸屏 POS 机界面 demo |
101c demo | 10.1 寸屏 demo |
Demo 相关扩展配置:
Use demo-specific gt_font_config.h- 使用 demo 自定义字体配置Use demo-specific gt_gui_driver.h- 使用 demo 自定义驱动配置Use demo-specific gt_port_*.h- 使用 demo 自定义移植层文件
3.2.5.4 GT-HMI Engine 配置菜单(gt_conf.h)
3.2.5.4.1 Screen(屏幕配置)
| 配置项 | 对应宏 | 说明 | 默认值 |
|---|---|---|---|
| Override screen width | GT_SCREEN_WIDTH | 屏幕宽度(像素) | 800 |
| Override screen height | GT_SCREEN_HEIGHT | 屏幕高度(像素) | 480 |
| Override design resolution | GT_DESIGN_WIDTH/HEIGHT | 设计分辨率(用于 DPX/DPY 缩放) | 与屏幕一致 |
| Design width/height | GT_DESIGN_WIDTH/HEIGHT | 设计稿宽高 | 800x480 |
| Override color depth | GT_COLOR_DEPTH | 色深(8/16/32) | 16 |
| Swap RGB565 byte order | GT_COLOR_16_SWAP | 交换 RGB565 字节序 | 0 |
| Flush direction: vertical | GT_FLUSH_CONVERT_VERTICAL | 刷新方向改为垂直(默认水平) | 0 |
| Enable software rotation support | GT_DISP_SW_ROTATE_SUPPORT | 软件旋转支持(消耗 width×height×2 字节 RAM) | 0 |
3.2.5.4.2 Refresh(刷新配置)
| 配置项 | 对应宏 | 说明 | 默认值 |
|---|---|---|---|
| Abort screen load when memory pool is full | GT_DISP_STACK_ABORT_LOADING_WHILE_NOT_ENOUGH_MEM | 内存不足时放弃切屏而不是崩溃 | 0 |
3.2.5.4.3 Memory(内存配置)
| 配置项 | 对应宏 | 说明 | 默认值 |
|---|---|---|---|
| Use internal memory pool (TLSF allocator) | GT_MEM_CUSTOM | 使用内部内存池替代 malloc | 1 |
| Override memory pool size | GT_MEM_SIZE | 内存池大小(KB,自动转字节) | 24 |
| Use external pointer for memory pool | GT_MEM_CUSTOM_POINTER | 使用外部指针指定内存池基地址 | 0 |
3.2.5.4.4 Virtual file device(Flash 配置)
| 配置项 | 对应宏 | 说明 | 默认值 |
|---|---|---|---|
| Override flash size | GT_VF_FLASH_SIZE | Flash 总大小(字节,hex) | 0x1000000 (16MB) |
| Override flash start address | GT_VF_FLASH_START | Flash 起始地址(hex) | 0x000000 |
3.2.5.4.5 Input device(输入设备)
| 配置项 | 对应宏 | 说明 | 默认值 |
|---|---|---|---|
| Override scroll throw style | GT_INDEV_THROW_STYLE | 滚动手感(0=iOS,1=Android) | 0 |
| Enable custom touch expand size | GT_USE_CUSTOM_TOUCH_EXPAND_SIZE | 扩展触摸点击区域 | 0 |
| Enable async lock-free touch event queue | GT_USE_TOUCH_QUEUE | 异步触摸事件队列 | 0 |
| Touch queue ring buffer size | GT_TOUCH_QUEUE_SIZE | 队列大小(必须是 2 的幂) | 64 |
| Enable multi-touch support | GT_USE_MULTI_TOUCH | 多点触控(捏合、旋转) | 0 |
| Maximum simultaneous touch points | GT_MULTI_TOUCH_MAX_POINTS | 最大同时触摸点数 | 2 |
| Pinch gesture threshold | GT_MULTI_TOUCH_PINCH_THRESHOLD_PX | 捏合手势阈值(像素) | 20 |
| Rotate gesture threshold | GT_MULTI_TOUCH_ROTATE_THRESHOLD_DEGX10 | 旋转手势阈值(0.1度单位) | 50 |
| Use up/down/left/right keys to control focus | GT_USE_UD_LR_TO_CONTROL_FOCUS_EN | 使用方向键控制焦点 | 0 |
3.2.5.4.6 UI features(界面特性)
| 配置项 | 对应宏 | 说明 | 默认值 |
|---|---|---|---|
| Enable top layer | GT_USE_LAYER_TOP | 顶层支持(对话框、弹窗、状态栏) | 1 |
| Cache top layer screenshot | GT_LAYER_TOP_SCREENSHOT_CACHE | 缓存顶层截图减少底层重绘 | 0 |
| Enable screen switch animation | GT_USE_SCREEN_ANIM | 屏幕切换动画 | 1 |
| Enable widget animation dynamic frame rate | GT_USE_WIDGET_DYNAMIC_FRAME_RATE | 控件动画动态帧率 | 0 |
| Enable generic click feedback effect | GT_USE_CLICK_EFFECT | 点击反馈效果(透明度变暗) | 1 |
| Enable widget layout function | GT_USE_WIDGET_LAYOUT | 控件布局功能 | 1 |
| Enable lightweight widget shadow effect | GT_USE_SHADOW | 控件阴影效果 | 1 |
| Enable widget gradient color support | GT_USE_GRADIENT | 渐变颜色支持 | 1 |
| Arc gradient: use FPU atan2f | GT_ARC_GRAD_USE_FPU | 圆弧渐变使用 FPU(无 FPU 时用整数查表) | 自动检测 |
| Print engine info on boot | GT_BOOTING_INFO_MSG | 启动时打印引擎信息 | 0 |
| Display refresh time in log | GT_USE_DISPLAY_PREF_MSG | 显示刷新时间 | 0 |
| Display object destroy time in log | GT_USE_DISPLAY_PREF_DESTROY | 显示对象销毁时间 | 0 |
| Display idle time in log | GT_USE_DISPLAY_PREF_IDLE | 显示空闲时间 | 0 |
3.2.5.4.7 Extra buffers(额外缓冲区)
| 配置项 | 对应宏 | 说明 | 默认值 |
|---|---|---|---|
| Enable full image buffer | GT_USE_EXTRA_FULL_IMG_BUFFER | 完整图片缓冲区(一次性读取整张图片) | 0 |
| Enable full font buffer | GT_USE_EXTRA_FULL_FONT_BUFFER | 完整字体缓冲区(减少 malloc/free) | 0 |
| Enable full font mask buffer | GT_USE_EXTRA_FULL_FONT_MASK_BUFFER | 字体 mask 缓冲区(不要与 font buffer 共用内存) | 0 |
| Enable separate image metadata cache | GT_USE_IMG_CACHE | 独立图片元数据缓存 | 0 |
3.2.5.4.8 Font(字体配置)
| 配置项 | 对应宏 | 说明 | 默认值 |
|---|---|---|---|
| Use old font family format | GT_FONT_FAMILY_OLD_ENABLE | 使用旧版字库格式 | 0 |
| Enable custom font | GT_CUSTOM_FONT_ENABLE | 启用自定义字体 | 0 |
| Cache ASCII font width | GT_FONT_USE_ASCII_WIDTH_CACHE | 缓存 ASCII 字符宽度(约 94 个字符) | 1 |
| Enable LRU glyph cache | GT_USE_FONT_GLYPH_CACHE | LRU 字形缓存(避免重复读取 flash) | 0 |
| Number of glyph cache slots | GT_FONT_GLYPH_CACHE_SIZE | 字形缓存槽数量(推荐 16~32) | 16 |
3.2.5.4.9 Data source mode(数据源模式)
| 配置项 | 对应宏 | 说明 | 默认值 |
|---|---|---|---|
| Enable source (embedded) data mode | GT_USE_MODE_SRC | 嵌入数据源模式 | 1 |
| Enable flash data mode | GT_USE_MODE_FLASH | Flash 数据模式 | 1 |
| Enable SD card data mode | GT_USE_MODE_SD | SD 卡数据模式 | 0 |
| Enable image file header | GT_USE_FILE_HEADER | 图片文件头(索引/地址/大小元数据) | 0 |
| Enable direct flash address access | GT_USE_DIRECT_ADDR | 直接 Flash 地址访问 | 0 |
| Enable direct address with custom size | GT_USE_DIRECT_ADDR_CUSTOM_SIZE | 直接地址带自定义大小 {addr,w,h,is_alpha} | 0 |
| Enable folder/file system callbacks | GT_USE_FOLDER_SYSTEM | 启用目录操作回调 | 0 |
| Enable get filename by index | GT_USE_FS_NAME_BY_INDEX | 通过索引从文件列表获取文件名 | 0 |
3.2.5.4.10 Image format(图片格式)
| 配置项 | 对应宏 | 说明 | 默认值 |
|---|---|---|---|
| Enable PNG decode | GT_USE_PNG | PNG 解码(lodepng) | 1 |
| Enable JPEG decode | GT_USE_SJPG | JPEG 解码(TJpgDec) | 1 |
| Enable GIF decode | GT_USE_GIF | GIF 解码 | 1 |
| Enable SVG decode | GT_USE_SVG | SVG 解码(nanosvg,约 60KB Flash) | 0 |
| Enable Markdown parse | GT_USE_MD4C | Markdown 解析(md4c) | 1 |
| Enable image rotation and scaling | GT_USE_IMG_TRANSFORM | 图片旋转和缩放(双线性插值) | 0 |
3.2.5.4.11 Serial communication(串口通信)
启用 GT_USE_SERIAL 后自动强制启用:GT_USE_CRC、GT_USE_BIN_CONVERT、GT_USE_FILE_HEADER、GT_INDEV_SIMULATE_POINTER。
| 配置项 | 对应宏 | 说明 | 默认值 |
|---|---|---|---|
| Use timer to unpack received serial data | GT_SERIAL_USE_TIMER_RECV_UNPACK | 使用定时器解包串口数据 | 1 |
| Override send cache buffer size | GT_SERIAL_MASTER_CACHE_SIZE | 发送缓存大小(字节) | 512 |
| Override receive cache buffer size | GT_SERIAL_CLIENT_CACHE_SIZE | 接收缓存大小(字节) | 512 |
| Override pack cache size | GT_SERIAL_PACK_CACHE_SIZE | 打包缓存大小(字节) | 512 |
| Override unpack cache size | GT_SERIAL_UNPACK_CACHE_SIZE | 解包缓存大小(字节) | 512 |
| Override width byte length | GT_SERIAL_WIDTH_BYTE_LENGTH | 接收有效数据宽度字节长度(1~4) | 1 |
| Enable auto pack | GT_SERIAL_USE_AUTO_PACK | 自动打包 | 1 |
| Strip headers/length/CRC from received data | GT_SERIAL_GET_ONLY_VALID_DATA | 去除接收数据的头部/长度/CRC | 1 |
3.2.5.4.12 Log(日志)
| 配置项 | 对应宏 | 说明 | 默认值 |
|---|---|---|---|
| Override default log level | GT_LOG_LEVEL_DEFAULT | 默认日志级别(1=VERBOSE ~ 6=CRASH) | 5 (ERROR) |
日志级别选项:
VERBOSE (1)- 打印所有信息DEBUG (2)INFO (3)WARNING (4)ERROR (5)- 仅错误CRASH (6)- 仅崩溃
3.2.5.4.13 Utilities(工具)
| 配置项 | 对应宏 | 说明 | 默认值 |
|---|---|---|---|
| Enable binary convert | GT_USE_BIN_CONVERT | 二进制转换(gt_bin_convert) | 0 |
| Enable CRC | GT_USE_CRC | CRC 校验(gt_crc) | 0 |
| Enable LaTeX text rendering | GT_USE_LATEX_LIB | LaTeX 文本渲染(gt_latex) | 0 |
| Enable built-in engine examples | GT_USE_EXAMPLES | 内置引擎示例 | 0 |
| Enable test module | _GT_USE_TEST | 测试模块 | 0 |
3.2.5.5 配置注意事项
-
仅配置带
#ifndef保护的宏:Kconfig 只能覆盖gt_conf.h中带有#ifndef保护的配置项,无保护的宏(如GT_TASK_PERIOD_TIME_*、GT_REFRESH_STYLE等)无法在 Kconfig 中配置。 -
宏定义传递机制:
// gt_conf.h 中的典型模式 #ifndef GT_SCREEN_WIDTH #define GT_SCREEN_WIDTH 800 #endif当 Kconfig 启用
GT_SCREEN_WIDTH并设置为 1024 时,SConscript 会生成-DGT_SCREEN_WIDTH=1024,在编译时覆盖默认值。 -
GT_MEM_SIZE 特殊处理:该宏配置值单位为 KB,SConscript 会自动转换为字节(
value*1024)。 -
依赖关系:
- 多点触控 (
GT_USE_MULTI_TOUCH) 自动启用触摸队列 (GT_USE_TOUCH_QUEUE) - 串口通信 (
GT_USE_SERIAL) 自动启用 CRC、BIN_CONVERT、FILE_HEADER、INDEV_SIMULATE_POINTER
- 多点触控 (
3.2.6 Luban-lite SDK 屏幕和 TP 配置说明
屏幕(Display)和触摸板(Touch Panel,简称 TP)的配置通过 me menuconfig 完成,配置项位于 Hardware Drivers 菜单下。
3.2.6.1 屏幕配置(Display)
进入菜单:Hardware Drivers → Display Drivers
3.2.6.1.1 显示接口选择
| 配置项 | 说明 |
|---|---|
Display RGB interface | RGB 并行接口(常见 16/18/24bit) |
Display LVDS interface | LVDS 接口(单通道/双通道) |
Display MIPI-DSI interface | MIPI DSI 接口 |
Display MIPI-DBI interface | MIPI DBI 接口(I8080/SPI) |
3.2.6.1.2 RGB 接口配置
进入菜单:Display Drivers → RGB Configuration
| 配置项 | 说明 | 典型值 |
|---|---|---|
RGB mode | RGB 数据位宽模式 | 24bit / 16bit |
RGB data mirror | RGB 数据镜像 | 根据硬件设计 |
RGB clock polarity | 时钟极性 | normal / inverted |
3.2.6.1.3 Panel 选择
进入菜单:Display Drivers → Display Panels
Simple Panel(通用 RGB/LVDS 屏):
- 选择
ArtInChip SIMPLE panel - 可选标准分辨率:480x272、800x480、1024x600、1920x1080
- 或启用
Custom Display Timing自定义时序
MIPI-DSI Panel:
- XM91080、ST7797、ST7703、ILI9881C、HX8394
- JD9365、AXS15231B、NV3051、FL7707、FT8201、ST7701S、JD9366TC
MIPI-DBI Panel:
- ILI9488、ILI9486L、ST7789、GC9B72NA(I8080 类型)
- ILI9341、ST77903、ILI9327、CO5300、ST77916、GC9108、ST77912(SPI 类型)
RGB Panel(需 SPI 初始化):
- ST7701S、ST77916、JD9855、GC9A01A、NT35560、ST77922、ST7102
3.2.6.1.4 Framebuffer 配置
| 配置项 | 说明 | 默认值 |
|---|---|---|
select framebuffer format | 帧缓冲区格式 | ARGB8888 |
Support double framebuffer | 双缓冲支持(AIC_PAN_DISPLAY) | 否 |
framebuffer rotation degree | 帧缓冲旋转角度 | 0° |
可选格式:ARGB8888、ABGR8888、XRGB8888、RGB888、RGB565、ARGB1555
3.2.6.1.5 背光控制
| 配置项 | 说明 |
|---|---|
panel backlight control | 选择 pwm / gpio |
panel backlight enable pin | GPIO 背光使能引脚(如 PE.19) |
panel backlight enable pin low active | 低电平有效 |
pwm backlight channel | PWM 通道号 |
default brightness level | 默认亮度(0-100) |
3.2.6.1.6 屏幕裁剪(Screen Crop)
当有效显示区域小于时序信号时使用:
| 配置项 | 说明 | 默认值 |
|---|---|---|
Enable screen crop | 启用屏幕裁剪 | 否 |
screen crop x position | 裁剪起始 X 坐标 | 0 |
screen crop y position | 裁剪起始 Y 坐标 | 0 |
screen crop width | 裁剪宽度 | 0 |
screen crop height | 裁剪高度 | 0 |
3.2.6.2 触摸板配置(Touch Panel)
进入菜单:Hardware Drivers → Touch Drivers
3.2.6.2.1 启用触摸驱动
首先启用 Using touch(对应 CONFIG_AIC_USING_TOUCH=y)
然后选择触摸类型:
Using CTP- 电容触摸屏(Capacitive Touch Panel)Using RTP- 电阻触摸屏(Resistive Touch Panel)
3.2.6.2.2 CTP(电容触摸屏)配置
选择 CTP 设备:
| 型号 | 说明 |
|---|---|
GT911 | 汇顶科技 911 系列(常用) |
FT6336 / FT7411 | 敦泰科技 |
AXS15260 | 艾科创新 |
CHSC5XXX / CHSC6XXX | 海栎创 |
CST826 / CST3240 | 海栎创 |
GSL1680 / GSL3676 | 思立微电子 |
ILI2511 / ILI21XX / ILI23XX / ILI2117 | 奕力科技 |
JD9366 | 晶达光电 |
ST16XX / ST77922 | 矽创电子 |
TW31XX | 泰为科技 |
C123HAX022 / C145HAX01 | 定制型号 |
CTP 硬件连接配置:
| 配置项 | 说明 | 典型值 |
|---|---|---|
Touch using I2C channel index | I2C 通道 | i2c3 |
Touch reset pin | 复位引脚 | PA.8 |
Touch irq pin | 中断引脚 | PA.9 |
CTP 坐标配置:
| 配置项 | 说明 | 默认值 |
|---|---|---|
Touch real x coordinate range | 触摸板 X 坐标范围 | 1024 |
Touch real y coordinate range | 触摸板 Y 坐标范围 | 600 |
Screen real x coordinate range | 屏幕 X 分辨率 | 1024 |
Screen real y coordinate range | 屏幕 Y 分辨率 | 600 |
CTP 触摸方向调整:
| 配置项 | 说明 |
|---|---|
Touch flip x coordinate | X 轴翻转 |
Touch flip y coordinate | Y 轴翻转 |
Touch 90 degrees rotation | 90 度旋转 |
Touch 180 degrees rotation | 180 度旋转 |
Touch 270 degrees rotation | 270 度旋转 |
Screen rotate degree relative to touch | 屏幕相对触摸的旋转角度 |
CTP 裁剪与模式:
| 配置项 | 说明 | 默认值 |
|---|---|---|
Enable touch crop | 启用触摸裁剪 | 否 |
Touch crop x/y/width/height | 裁剪区域 | - |
Using touch polling mode | 轮询模式(而非中断模式) | 否 |
Touch as wake-up source | 触摸作为唤醒源 | - |
3.2.6.2.3 RTP(电阻触摸屏)配置
进入菜单:Hardware Drivers → Touch Drivers → Using RTP
| 配置项 | 说明 |
|---|---|
X/Y ADC channel | X/Y 轴 ADC 通道选择 |
ADC sampling count | ADC 采样次数 |
Screen resolution X/Y | 屏幕分辨率 |
Touch threshold | 触摸检测阈值 |
3.2.6.3 屏幕与触摸配置示例
以 800x480 7 寸屏为例,典型配置如下:
defconfig 关键配置:
# 显示接口
CONFIG_AIC_PRGB_24BIT=y
CONFIG_RGB_DATA_MIRROT=y
CONFIG_AIC_PAN_DISPLAY=y
CONFIG_AIC_SCREEN_CROP=y
CONFIG_AIC_SCREEN_CROP_WIDTH=800
CONFIG_AIC_SCREEN_CROP_HEIGHT=480
# 触摸
CONFIG_AIC_USING_TOUCH=y
CONFIG_AIC_TOUCH_X_COORDINATE_RANGE=800
CONFIG_AIC_TOUCH_Y_COORDINATE_RANGE=480
CONFIG_AIC_SCREEN_REAL_X_RESOLUTION=800
CONFIG_AIC_SCREEN_REAL_Y_RESOLUTION=480
pinmux.c 引脚配置:
// RGB 24bit 引脚(PD.6 ~ PD.27,PC.0 ~ PC.5)
#ifdef AIC_PRGB_24BIT
{3, PIN_PULL_DIS, 3, "PC.0"}, ... {3, PIN_PULL_DIS, 3, "PC.5"},
{2, PIN_PULL_DIS, 3, "PD.6"}, ... {2, PIN_PULL_DIS, 3, "PD.27"},
#endif
// 触摸引脚
#ifdef AIC_USING_CTP
{1, PIN_PULL_DIS, 3, AIC_TOUCH_PANEL_RST_PIN},
{1, PIN_PULL_DIS, 3, AIC_TOUCH_PANEL_INT_PIN},
#endif
3.2.6.4 常见问题
-
屏幕无显示
- 检查
AIC_PRGB_24BIT/AIC_PRGB_16BIT_LD/HD是否与硬件匹配 - 确认背光引脚配置正确(GPIO/PWM 方式)
- 检查 Panel 时序参数是否正确
- 检查
-
触摸无响应
- 确认 I2C 通道和引脚配置正确
- 检查复位引脚和中断引脚配置
- 验证触摸坐标范围与屏幕分辨率匹配
-
触摸位置偏移
- 调整
AIC_TOUCH_X/Y_COORDINATE_RANGE与实际触摸板分辨率一致 - 使用
AIC_TOUCH_X/Y_FLIP或旋转选项校准方向 - 检查是否有
AIC_SCREEN_CROP配置需要同步到触摸裁剪
- 调整
3.2.7 Demo 配置
以下配置是在没有更改过工程其他配置情况下,每个demo的不同配置。
3.2.7.1 7c_vehicle demo 配置
# luban-lite 屏幕配置
Board option --->
Display Parameter --->

# luban-lite 触摸配置
Drivers options --->
Peripheral --->
Touch Panel Support --->

# GT-HMI-Engine demo选择
Local packages options --->
Third-party packages option --->
GT-HMI: Genitop HMI Engine --->
# GT-HMI-Engine 屏幕配置
Local packages options --->
Third-party packages option --->
GT-HMI: Genitop HMI Engine --->
GT-HMI Engine configuration (gt_conf.h) --->
Screen -->


3.2.7.2 7c_washing demo 配置
# luban-lite 屏幕配置
Board option --->
Display Parameter --->

# luban-lite 触摸配置
Drivers options --->
Peripheral --->
Touch Panel Support --->

# GT-HMI-Engine demo选择
Local packages options --->
Third-party packages option --->
GT-HMI: Genitop HMI Engine --->
# GT-HMI-Engine 屏幕配置
Local packages options --->
Third-party packages option --->
GT-HMI: Genitop HMI Engine --->
GT-HMI Engine configuration (gt_conf.h) --->
Screen -->


3.2.7.3 7c_pos demo 配置
# luban-lite 屏幕配置
Board option --->
Display Parameter --->

# luban-lite 触摸配置
Drivers options --->
Peripheral --->
Touch Panel Support --->

# GT-HMI-Engine demo选择
Local packages options --->
Third-party packages option --->
GT-HMI: Genitop HMI Engine --->
# GT-HMI-Engine 屏幕配置
Local packages options --->
Third-party packages option --->
GT-HMI: Genitop HMI Engine --->
GT-HMI Engine configuration (gt_conf.h) --->
Screen -->


3.2.7.4 101c demo 配置
# luban-lite 屏幕配置
Board option --->
Display Parameter --->

# luban-lite 触摸配置
Drivers options --->
Peripheral --->
Touch Panel Support --->

# GT-HMI-Engine demo选择
Local packages options --->
Third-party packages option --->
GT-HMI: Genitop HMI Engine --->
# GT-HMI-Engine 屏幕配置
Local packages options --->
Third-party packages option --->
GT-HMI: Genitop HMI Engine --->
GT-HMI Engine configuration (gt_conf.h) --->
Screen -->


3.2.8 程序下载(AiBurn)
工具下载:https://aicdoc.artinchip.com/topics/product/download-doc-tool-zip.html
使用介绍:https://aicdoc.artinchip.com/topics/tools/aiburn-ui-design.html
3.2.8.1 下载流程

- 选择
output\d21x_gt-hmi-nor_rt-thread_helloworld\images\d21x_gt_hmi_nor_v1.0.0.img

- 使用type-c线连接串口和USB口,串口配置:波特率-115200,停止位-1,数据位-8,校验位-None

- 按住板子上的复位和boot按键,然后只松开复位按键;或者使用串口发送
aicupg指令,进入烧录模。AiBurn出现设备已连接


- 点击
开始进行烧录

- 正在烧录

- 烧录完成


