news 2026/8/1 21:37:20

【Zynq7100实战】H3-CZ08P-7100 基于QT的LCD触控屏方案开发全流程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Zynq7100实战】H3-CZ08P-7100 基于QT的LCD触控屏方案开发全流程

教程前言

在Zynq嵌入式工业开发中,LCD触控人机交互界面(HMI)是工业网关、智能终端、工控设备的核心功能。本文基于米联客H3-CZ08P-7100(Zynq7100)开发板,复刻官方QT触控屏完整方案,从零讲解硬件工程解析、设备树配置、系统构建、QT交叉编译、板级触控演示全流程。

教程全程基于官方REV2024版demo文档,无删减、无魔改,适配Zynq7000系列ARMHF架构,新手可直接跟着步骤落地触控显示项目,解决LCD无画面、触控失灵、QT程序无法运行等常见问题。

✅ 开发环境与硬件适配

  • 硬件平台:米联客 H3-CZ08P-7100(Zynq7100)
  • 软件工具版本:Vivado2021.1 + Vitis2021.1
  • 系统环境:Ubuntu18.04 64位
  • 核心开发包:uisrc-lab-xlnx20220601、uisrc-lab-qt-armhf.tar.gz
  • 实现功能:VDMA帧缓存画面输出、GT9157触控IC驱动、I2C触控数据交互、QT触控应用程序运行、屏幕滑动触控

一、方案原理与系统架构

1.1 核心功能简介

本方案实现LCD画面显示+多点触控一体化功能:通过VDMA驱动实现Framebuffer图像输出,依托I2C总线驱动GT9157触控芯片,注册Linux Input子系统,最终基于QT框架开发触控交互程序,实现屏幕滑动、触控响应等人机交互效果。

⚠️ 重点说明:本方案实现的是Linux标准input子系统触控功能,并非系统全局触控界面,仅适配QT应用程序触控交互。

1.2 硬件驱动架构

  • 显示驱动:VDMA驱动,提供Framebuffer显存管理,负责LCD画面渲染输出
  • 触控驱动:I2C总线驱动,适配GT9157触控芯片,采集触控坐标、手势数据
  • 背光驱动:PWM背光控制接口,支持屏幕亮度调节

二、Vivado硬件工程解析(H3-CZ08P-7100专属)

无需自行搭建BD工程,直接使用官方配套demo工程即可,重点掌握硬件资源配置要点:

2.1 关键硬件接口资源

  • lcd_*系列接口:LCD屏幕图像显示专用数据接口
  • lcd_pwm:屏幕背光亮度PWM控制引脚
  • gpio_rtl:触控芯片复位控制引脚
  • lcd_iic:触控I2C数据采集与复位接口

2.2 寄存器地址说明

VDMA、I2C、GPIO相关寄存器地址由Vivado综合后自动生成,Vitis导出设备树时会自动适配填充,新手无需手动修改寄存器参数,保证硬件资源匹配H3-CZ08P-7100板卡引脚定义。

三、设备树配置解析(核心关键)

❌ 新手禁止随意修改设备树,建议直接使用官方demo自带设备树文件,仅需理解核心节点作用。

3.1 LCD显示设备树节点

对应内核驱动路径:/uisrc-lab-xlnx/sources/kernel/drivers/video/fbdev/vdmafb.c

核心配置要点:

  • 配置dmas属性,绑定VDMA控制器地址,匹配硬件axi_vdma_0节点
  • 本工程采用3缓存VDMA架构,必须将park参数设置为1,否则画面闪烁、无显示

3.2 GT9157触控设备树节点

对应内核驱动路径:/uisrc-lab-xlnx/sources/kernel/drivers/input/touchscreen/gt9xx

核心配置要点:

  • 直接挂载在系统根节点下,可与zynqmp默认i2c0节点共存,无冲突
  • 固定reg地址为0x14,匹配H3-CZ08P-7100板卡I2C触控芯片硬件地址
  • 自动注册为Linux Input子系统设备,上电自动识别触控设备

四、系统工程搭建与镜像编译

4.1 前置文件准备

从官方demo包中提取核心工程文件,适配H3-CZ08P-7100:

  • boot启动文件:替换SD卡boot分区,适配任意合法文件系统
  • QT工程文件:包含PC端编译工程与板端运行压缩包
  • 系统工程文件:soc_dts(设备树)、soc_hw(硬件配置)、soc_prj(Vivado工程)、soc_sdk(Vitis工程)

开发包下载地址(官方原版):02_米联客uisrc-lab-Zynq|MPSoc Linux开发环境|镜像下载 - 资料下载 FPGA+AI数字世界 -

4.2 核心文件拷贝部署

进入系统开发包路径/uisrc-lab-xlnx/boards/mz7x/ubuntu/output/files,放置对应文件:

  • 直接放置:fsbl.elfsystem_wrapper.bit
  • 内核设备树:放入kernel-dts文件夹(支持多文件include引用)
  • Uboot设备树:仅支持命名为zynq-mz7x.dts的文件,不支持include

4.3 一键编译系统镜像

进入脚本目录,依次执行编译命令,全程自动化构建:

Plain Text
# 进入脚本目录
cd /uisrc-lab-xlnx/scripts

# 加载环境变量、拷贝并重命名文件
source mz7xcfg.sh
source move_files.sh

# 编译Uboot、内核
source make_uboot.sh
source make_kernel.sh

# 生成完整启动镜像
source create_image.sh

# SD卡分区与烧录(插入SD卡连接虚拟机)
source make_parted.sh
source deploy_image.sh

执行分区时输入设备号sdb,确认y即可完成系统烧录。

五、QT程序交叉编译(ARMHF架构)

H3-CZ08P-7100为Zynq7000架构,必须使用armhf版本QT交叉编译工具

5.1 部署QT编译环境

工具包下载地址:05_Linux资料常用软件&环境下载备用链接(2024版) - 资料下载 FPGA+AI数字世界 -

Plain Text
# 拷贝至用户目录并解压
tar zxvf uisrc-lab-qt-armhf.tar.gz -C /home/uisrc

# 加载QT编译环境变量
cd /uisrc-lab-qt/scripts
source qt_cfg.sh

5.2 编译官方触控Demo

Plain Text
# 进入QT应用工程目录
cd /uisrc-lab-qt/applications/deform/

# 执行ARM架构编译
./build_arm_app.sh

5.3 部署QT程序到开发板

  1. 将编译生成的可执行文件替换qt_play文件夹内程序;
  1. 修改run_arm_app.sh脚本,替换为新程序文件名;
  1. 将整个qt_play文件夹拷贝至SD卡根文件系统/home/uisrc目录;
  1. 安全弹出SD卡,准备板级测试。

六、H3-CZ08P-7100板级实操演示

6.1 硬件接线

  • 开发板插入烧录好系统的SD卡,拨码切换为SD卡启动模式;
  • 连接LCD触控屏幕、串口USB、5V电源;
  • 串口波特率设置115200,打开PuTTY等待开机。

6.2 系统登录与程序运行

开机完成后使用官方默认账号密码登录:

  • 账号:uisrc
  • 密码:root

此时LCD屏幕自动加载系统命令行界面,执行QT触控程序:

Plain Text
# 进入程序目录
cd qt_play/

# 运行触控Demo
sudo ./run_arm_app.sh
# 输入密码:root

6.3 功能验证

程序启动后,LCD屏幕显示可滑动气泡界面,支持手指触控、滑动拖拽,触控响应灵敏,无卡顿、无失灵,代表整套QT触控方案部署成功。

七、常见问题排查(H3-CZ08P-7100专属)

问题1:屏幕无画面、黑屏

  • 未使用配套VDMA设备树,park参数未设置为1;
  • 镜像未重新编译,Framebuffer驱动未加载;
  • LCD背光PWM引脚未正常初始化。

问题2:有画面但触控无响应

  • GT9157设备树reg地址与硬件不匹配;
  • I2C驱动未加载,Input子系统未识别触控设备;
  • 触控复位引脚硬件接线异常。

问题3:QT程序编译报错、无法运行

  • 误用aarch64版本QT工具,Zynq7100需使用armhf版本;
  • QT环境变量未正确加载,编译架构不匹配。

八、项目拓展总结

本文实现的基于QT的LCD触控方案,是Zynq工业人机界面开发的基础模板。基于本工程可快速拓展:工业参数触控配置、动态数据显示、按键交互、界面动画、多页面切换等功能,完全适配H3-CZ08P-7100工业板卡的工控、智能终端、物联网网关项目场景。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/1 21:37:06

We0.ai:重新定义AI原生网站生成的下一代开发范式

We0.ai:重新定义AI原生网站生成的下一代开发范式 【免费下载链接】we0 we0 is an AI code editor for development programmers and product managers. same v0, bolt.new,lovable 项目地址: https://gitcode.com/gh_mirrors/we/we0 在当今快速迭代的数字化时…

作者头像 李华
网站建设 2026/8/1 21:32:09

2026年横评:16款降AI率软件实测,这款让导师都夸“原创性强”!

随着AI写作技术的飞速发展,越来越多的学术创作者开始依赖智能工具提升写作效率。然而,2026年的高校与科研机构对AIGC检测的标准愈发严格,论文中若出现明显的AI痕迹,轻则影响成绩,重则面临学术不端的质疑。在这样的背景…

作者头像 李华
网站建设 2026/8/1 21:30:26

Kimi K3 架构篇:一文详解 2.8 万亿参数的巨型怪兽

Kimi K3 那 47 页报告我读了两遍。第一遍看的是「它做了什么」,第二遍看的是「它为什么非得这么做」。最深的印象不是 2.8 万亿参数,而是它把效率拆成了三条信息轴:序列、深度、宽度。 这篇是三部曲第一篇,只聊架构。我会尽量少搬…

作者头像 李华