高通字库
版本 V1.0 · 更新于 2026-05-29

3. 产品使用

3.1 接口介绍和示例

3.1.1 接口定义

  1. TYPE-C(外接USB输入)
  2. 预留USB转串口输入
  3. TP(电容触摸屏接口,6P/0.5mm)
  4. 7.0寸屏接口(兼容50PIN和60PIN的屏)
  5. 预留电阻式触摸屏接口(4P/1.0)
  6. 预留电容触摸屏接口
  7. 预留屏背光插件接口
  8. 外接IO口
  9. 预留喇叭接口
  10. FLASH/8P外接插口
  11. TF 卡座
  12. 主控复位按钮
  13. 预留UART口
  14. 预留USB口
  15. 预留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 96f9974853afa49952bff69451afe94ebe33a265

    git clone https://gitee.com/genitop/GT-HMI-Engine.git
    
  • Luban-lite SDK

    测试使用 commit 48769ed416a0918fa5afc3c9a66d9518532033f9

    git 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-AC 7 寸屏内容拷贝到 Luban-lite SDK

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

    • 将 Target中的内容拷贝到 Luban-lite SDK 对应的路径中
    • 将 packages 中的内容拷贝到 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 配置菜单
  1. 在 OneStep 环境中运行 me 打开 menuconfig
  2. 导航至:Third-party packagesGT-HMI: Genitop HMI Engine
  3. 勾选 [*] GT-HMI: Genitop HMI Engine 启用引擎
3.2.5.3 Demo 选择

启用 Enable GT-HMI demo 后,可通过 choice 选择预置 demo:

Demo 选项说明
7c_vehicle demo7 寸屏车载界面 demo
7c_washing demo7 寸屏洗衣机界面 demo
7c_pos demo7 寸屏 POS 机界面 demo
101c demo10.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 widthGT_SCREEN_WIDTH屏幕宽度(像素)800
Override screen heightGT_SCREEN_HEIGHT屏幕高度(像素)480
Override design resolutionGT_DESIGN_WIDTH/HEIGHT设计分辨率(用于 DPX/DPY 缩放)与屏幕一致
Design width/heightGT_DESIGN_WIDTH/HEIGHT设计稿宽高800x480
Override color depthGT_COLOR_DEPTH色深(8/16/32)16
Swap RGB565 byte orderGT_COLOR_16_SWAP交换 RGB565 字节序0
Flush direction: verticalGT_FLUSH_CONVERT_VERTICAL刷新方向改为垂直(默认水平)0
Enable software rotation supportGT_DISP_SW_ROTATE_SUPPORT软件旋转支持(消耗 width×height×2 字节 RAM)0
3.2.5.4.2 Refresh(刷新配置)
配置项对应宏说明默认值
Abort screen load when memory pool is fullGT_DISP_STACK_ABORT_LOADING_WHILE_NOT_ENOUGH_MEM内存不足时放弃切屏而不是崩溃0
3.2.5.4.3 Memory(内存配置)
配置项对应宏说明默认值
Use internal memory pool (TLSF allocator)GT_MEM_CUSTOM使用内部内存池替代 malloc1
Override memory pool sizeGT_MEM_SIZE内存池大小(KB,自动转字节)24
Use external pointer for memory poolGT_MEM_CUSTOM_POINTER使用外部指针指定内存池基地址0
3.2.5.4.4 Virtual file device(Flash 配置)
配置项对应宏说明默认值
Override flash sizeGT_VF_FLASH_SIZEFlash 总大小(字节,hex)0x1000000 (16MB)
Override flash start addressGT_VF_FLASH_STARTFlash 起始地址(hex)0x000000
3.2.5.4.5 Input device(输入设备)
配置项对应宏说明默认值
Override scroll throw styleGT_INDEV_THROW_STYLE滚动手感(0=iOS,1=Android)0
Enable custom touch expand sizeGT_USE_CUSTOM_TOUCH_EXPAND_SIZE扩展触摸点击区域0
Enable async lock-free touch event queueGT_USE_TOUCH_QUEUE异步触摸事件队列0
Touch queue ring buffer sizeGT_TOUCH_QUEUE_SIZE队列大小(必须是 2 的幂)64
Enable multi-touch supportGT_USE_MULTI_TOUCH多点触控(捏合、旋转)0
Maximum simultaneous touch pointsGT_MULTI_TOUCH_MAX_POINTS最大同时触摸点数2
Pinch gesture thresholdGT_MULTI_TOUCH_PINCH_THRESHOLD_PX捏合手势阈值(像素)20
Rotate gesture thresholdGT_MULTI_TOUCH_ROTATE_THRESHOLD_DEGX10旋转手势阈值(0.1度单位)50
Use up/down/left/right keys to control focusGT_USE_UD_LR_TO_CONTROL_FOCUS_EN使用方向键控制焦点0
3.2.5.4.6 UI features(界面特性)
配置项对应宏说明默认值
Enable top layerGT_USE_LAYER_TOP顶层支持(对话框、弹窗、状态栏)1
Cache top layer screenshotGT_LAYER_TOP_SCREENSHOT_CACHE缓存顶层截图减少底层重绘0
Enable screen switch animationGT_USE_SCREEN_ANIM屏幕切换动画1
Enable widget animation dynamic frame rateGT_USE_WIDGET_DYNAMIC_FRAME_RATE控件动画动态帧率0
Enable generic click feedback effectGT_USE_CLICK_EFFECT点击反馈效果(透明度变暗)1
Enable widget layout functionGT_USE_WIDGET_LAYOUT控件布局功能1
Enable lightweight widget shadow effectGT_USE_SHADOW控件阴影效果1
Enable widget gradient color supportGT_USE_GRADIENT渐变颜色支持1
Arc gradient: use FPU atan2fGT_ARC_GRAD_USE_FPU圆弧渐变使用 FPU(无 FPU 时用整数查表)自动检测
Print engine info on bootGT_BOOTING_INFO_MSG启动时打印引擎信息0
Display refresh time in logGT_USE_DISPLAY_PREF_MSG显示刷新时间0
Display object destroy time in logGT_USE_DISPLAY_PREF_DESTROY显示对象销毁时间0
Display idle time in logGT_USE_DISPLAY_PREF_IDLE显示空闲时间0
3.2.5.4.7 Extra buffers(额外缓冲区)
配置项对应宏说明默认值
Enable full image bufferGT_USE_EXTRA_FULL_IMG_BUFFER完整图片缓冲区(一次性读取整张图片)0
Enable full font bufferGT_USE_EXTRA_FULL_FONT_BUFFER完整字体缓冲区(减少 malloc/free)0
Enable full font mask bufferGT_USE_EXTRA_FULL_FONT_MASK_BUFFER字体 mask 缓冲区(不要与 font buffer 共用内存)0
Enable separate image metadata cacheGT_USE_IMG_CACHE独立图片元数据缓存0
3.2.5.4.8 Font(字体配置)
配置项对应宏说明默认值
Use old font family formatGT_FONT_FAMILY_OLD_ENABLE使用旧版字库格式0
Enable custom fontGT_CUSTOM_FONT_ENABLE启用自定义字体0
Cache ASCII font widthGT_FONT_USE_ASCII_WIDTH_CACHE缓存 ASCII 字符宽度(约 94 个字符)1
Enable LRU glyph cacheGT_USE_FONT_GLYPH_CACHELRU 字形缓存(避免重复读取 flash)0
Number of glyph cache slotsGT_FONT_GLYPH_CACHE_SIZE字形缓存槽数量(推荐 16~32)16
3.2.5.4.9 Data source mode(数据源模式)
配置项对应宏说明默认值
Enable source (embedded) data modeGT_USE_MODE_SRC嵌入数据源模式1
Enable flash data modeGT_USE_MODE_FLASHFlash 数据模式1
Enable SD card data modeGT_USE_MODE_SDSD 卡数据模式0
Enable image file headerGT_USE_FILE_HEADER图片文件头(索引/地址/大小元数据)0
Enable direct flash address accessGT_USE_DIRECT_ADDR直接 Flash 地址访问0
Enable direct address with custom sizeGT_USE_DIRECT_ADDR_CUSTOM_SIZE直接地址带自定义大小 {addr,w,h,is_alpha}0
Enable folder/file system callbacksGT_USE_FOLDER_SYSTEM启用目录操作回调0
Enable get filename by indexGT_USE_FS_NAME_BY_INDEX通过索引从文件列表获取文件名0
3.2.5.4.10 Image format(图片格式)
配置项对应宏说明默认值
Enable PNG decodeGT_USE_PNGPNG 解码(lodepng)1
Enable JPEG decodeGT_USE_SJPGJPEG 解码(TJpgDec)1
Enable GIF decodeGT_USE_GIFGIF 解码1
Enable SVG decodeGT_USE_SVGSVG 解码(nanosvg,约 60KB Flash)0
Enable Markdown parseGT_USE_MD4CMarkdown 解析(md4c)1
Enable image rotation and scalingGT_USE_IMG_TRANSFORM图片旋转和缩放(双线性插值)0
3.2.5.4.11 Serial communication(串口通信)

启用 GT_USE_SERIAL 后自动强制启用:GT_USE_CRCGT_USE_BIN_CONVERTGT_USE_FILE_HEADERGT_INDEV_SIMULATE_POINTER

配置项对应宏说明默认值
Use timer to unpack received serial dataGT_SERIAL_USE_TIMER_RECV_UNPACK使用定时器解包串口数据1
Override send cache buffer sizeGT_SERIAL_MASTER_CACHE_SIZE发送缓存大小(字节)512
Override receive cache buffer sizeGT_SERIAL_CLIENT_CACHE_SIZE接收缓存大小(字节)512
Override pack cache sizeGT_SERIAL_PACK_CACHE_SIZE打包缓存大小(字节)512
Override unpack cache sizeGT_SERIAL_UNPACK_CACHE_SIZE解包缓存大小(字节)512
Override width byte lengthGT_SERIAL_WIDTH_BYTE_LENGTH接收有效数据宽度字节长度(1~4)1
Enable auto packGT_SERIAL_USE_AUTO_PACK自动打包1
Strip headers/length/CRC from received dataGT_SERIAL_GET_ONLY_VALID_DATA去除接收数据的头部/长度/CRC1
3.2.5.4.12 Log(日志)
配置项对应宏说明默认值
Override default log levelGT_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 convertGT_USE_BIN_CONVERT二进制转换(gt_bin_convert)0
Enable CRCGT_USE_CRCCRC 校验(gt_crc)0
Enable LaTeX text renderingGT_USE_LATEX_LIBLaTeX 文本渲染(gt_latex)0
Enable built-in engine examplesGT_USE_EXAMPLES内置引擎示例0
Enable test module_GT_USE_TEST测试模块0
3.2.5.5 配置注意事项
  1. 仅配置带 #ifndef 保护的宏:Kconfig 只能覆盖 gt_conf.h 中带有 #ifndef 保护的配置项,无保护的宏(如 GT_TASK_PERIOD_TIME_*GT_REFRESH_STYLE 等)无法在 Kconfig 中配置。

  2. 宏定义传递机制

    // gt_conf.h 中的典型模式
    #ifndef GT_SCREEN_WIDTH
        #define GT_SCREEN_WIDTH     800
    #endif
    

    当 Kconfig 启用 GT_SCREEN_WIDTH 并设置为 1024 时,SConscript 会生成 -DGT_SCREEN_WIDTH=1024,在编译时覆盖默认值。

  3. GT_MEM_SIZE 特殊处理:该宏配置值单位为 KB,SConscript 会自动转换为字节(value*1024)。

  4. 依赖关系

    • 多点触控 (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 DriversDisplay Drivers

3.2.6.1.1 显示接口选择
配置项说明
Display RGB interfaceRGB 并行接口(常见 16/18/24bit)
Display LVDS interfaceLVDS 接口(单通道/双通道)
Display MIPI-DSI interfaceMIPI DSI 接口
Display MIPI-DBI interfaceMIPI DBI 接口(I8080/SPI)
3.2.6.1.2 RGB 接口配置

进入菜单:Display DriversRGB Configuration

配置项说明典型值
RGB modeRGB 数据位宽模式24bit / 16bit
RGB data mirrorRGB 数据镜像根据硬件设计
RGB clock polarity时钟极性normal / inverted
3.2.6.1.3 Panel 选择

进入菜单:Display DriversDisplay 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帧缓冲旋转角度

可选格式:ARGB8888、ABGR8888、XRGB8888、RGB888、RGB565、ARGB1555

3.2.6.1.5 背光控制
配置项说明
panel backlight control选择 pwm / gpio
panel backlight enable pinGPIO 背光使能引脚(如 PE.19)
panel backlight enable pin low active低电平有效
pwm backlight channelPWM 通道号
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 DriversTouch 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 indexI2C 通道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 coordinateX 轴翻转
Touch flip y coordinateY 轴翻转
Touch 90 degrees rotation90 度旋转
Touch 180 degrees rotation180 度旋转
Touch 270 degrees rotation270 度旋转
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 DriversTouch DriversUsing RTP

配置项说明
X/Y ADC channelX/Y 轴 ADC 通道选择
ADC sampling countADC 采样次数
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 常见问题
  1. 屏幕无显示

    • 检查 AIC_PRGB_24BIT / AIC_PRGB_16BIT_LD/HD 是否与硬件匹配
    • 确认背光引脚配置正确(GPIO/PWM 方式)
    • 检查 Panel 时序参数是否正确
  2. 触摸无响应

    • 确认 I2C 通道和引脚配置正确
    • 检查复位引脚和中断引脚配置
    • 验证触摸坐标范围与屏幕分辨率匹配
  3. 触摸位置偏移

    • 调整 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出现设备已连接

  • 点击开始进行烧录

  • 正在烧录

  • 烧录完成