高通字库
版本 V2.0 · 更新于 2026-05-25

13. 示例

13.1 串口示例

13.1.1 串口驱动实现

  GUI 可以支持使用串口来控制各个控件,实现串口屏的需求。若想实现用串口操作控件,需要先实现串口的正常收发。

13.1.2 协议制定

  实现串口的正常收发之后,可以通过制定不同的通信协议来实现不同的人机交互效果。

  下表为简单和复杂的两种协议制定示例:

简单协议示例

数据头数据长度功能选择
0xAA0x030x01:车载界面
0x02:洗衣机
0x03:3D 打印

复杂协议示例

字段数据头数据长度A/C 功能AUTO 功能加湿功能左座椅加热右座椅加热空气循环左侧温度右侧温度风速返回校验位
0xAB0x130x01:打开
0x00:关闭
0x01:打开
0x00:关闭
0x01:打开
0x00:关闭
0x01:打开
0x00:关闭
0x01:打开
0x00:关闭
0x01:打开
0x00:关闭
数值
0x10~0x1E
数值
0x10~0x1E
数值
0x00~0x0A
0x00:不返回
0x01:返回
0x00

  对应 GUI 示例工程中的两个界面:

图8-3 GUI 示例界面(1)

图8-3 GUI 示例界面(1)

图8-4 GUI 示例界面(2)

图8-4 GUI 示例界面(2)

13.1.3 解析协议并操作控件

  之后只需要对应的 UI 界面实现对应的协议解析代码。通过解析不同的协议值,来改变显示的 UI 界面。

  如图为车载界面协议解析示例:

图8-5 车载界面协议解析示例

图8-5 车载界面协议解析示例

  在串口线程中读取到 0xAB 的数据头后将 13 个数据长度发送到解析函数:

图8-6 串口线程读取数据头

图8-6 串口线程读取数据头

  在解析函数中对协议中每一位做不同的处理:

图8-7 协议解析函数

图8-7 协议解析函数

  在示例中通过串口发送打开 AC、关闭 AUTO、打开加湿、左右座椅加热、左侧温度 30、右侧温度 24、风速为 10,不返回的一条通信协议。此时 UI 对协议做出反应:

图8-8 UI 对协议的响应效果

图8-8 UI 对协议的响应效果

  GT_GUI 的协议支持用户自己定义并灵活实现。本例仅供参考。

13.2 示例使用注意事项

13.2.1 示例下载

  打开 GT-HMI Designer 的软件,选择相应的示例工程打开,在进行仿真编译前另存为到自定义路径,务必设置好对应的编译环境板卡选项与字库配置,确保编译产物正确。

  本章以 GT-HMI 7 寸模块演示,打开另存为的自定义工程路径,直接打开 keil5 文件夹中 board 文件夹内的 keil 工程,keil 软件没有 Pack 包支持时请登录华为云下载对应的 Pack 包安装。

图8-9 打开 keil 工程

图8-9 打开 keil 工程

  点击 keil 软件左边的编译按钮开始编译,编译完成后再点击右边的下载按钮功能,将示例代码下载到开发板当中,板子端口与烧录器连接请参考相应模块手册,下图为 7 寸模块板子的烧录器连接端口。

图8-10 编译并下载程序

图8-10 编译并下载程序

  之后连接烧录器与板子,打开烧录器软件,加载 board 文件夹中的资源 bin 文件,将其烧录到板子上的 flash 中,以下为 7 寸模块 flash 端口,连接转换线与烧录器的连接方式:

图8-11 flash 烧录端口连接(1)

图8-12 flash 烧录端口连接(2)

图8-13 烧录效果

图8-13 烧录效果

13.2.2 工程修改移植

  如果已经在 keil 工程上实现多种第三方功能,在工程修改后不便于使用编译时新生成的 keil 工程,则可以对旧工程进行移植操作,移植过程与非 GT-HMI 模块类似,替换以下文件即可:

  第一步:替换掉 keil5 工程中 ui 目录下的 gt_init_screen_xx.c 文件。

图8-14 替换 gt_init_screen_xx.c 文件

图8-14 替换 gt_init_screen_xx.c 文件

  第二步:替换掉 keil5 工程中 GT-HMI-Engine/driver 目录下的 gt_port_vf.c、gt_port_driver.lib 和 gt_port_disp.c 文件。

图8-15 替换驱动文件

图8-15 替换驱动文件

  第三步:替换完成后重新编译下载程序到板子 MCU 中。

  第四步:把 resource.bin 素材文件烧入 flash 中。

13.2.3 SD 卡升级

  上述示例下载操作需要仿真器和烧录器的硬件支持,才能分别将程序文件与素材资源文件烧录到板子上,可以使用另一种方式 SD 卡进行升级。

  准备 1 张 Micro SD 卡(通称 TF 卡),确保其容量足够存储固件文件。

  在 SD 卡根目录中新建 gt_loader 文件夹(注意名称小写保持一致,否则升级识别不到):

图8-16 新建 gt_loader 文件夹

图8-16 新建 gt_loader 文件夹

  将 GT-HMI Designer 上位机软件仿真编译生成的工程路径下的 \board\resource.bin 文件和 keil 工程编译生成的程序 .bin 文件一起拷贝到 gt_loader 文件夹中:

图8-17 拷贝 resource.bin 文件

图8-18 拷贝程序 .bin 文件

  使用 4 寸、4.3 寸、7 寸或者 10.1 寸等 HMI 模块时,keil 工程所生成的 MCU 程序 .bin 文件需要改名为 hmi_mod_mcu.bin(注意名称小写保持一致,否则升级识别不到):

图8-19 HMI 模块程序文件改名

图8-19 HMI 模块程序文件改名

  使用 0.9 寸、1.9 寸、2.8 寸或者 3.5 寸等 GUI-LCD 时,MCU 程序 .bin 文件需要改名为 gui_lcd_mcu.bin(注意名称小写保持一致,否则升级识别不到):

图8-20 GUI-LCD 程序文件改名

图8-20 GUI-LCD 程序文件改名

  从电脑弹出 SD 卡,插入板子中,按动板子上的 reset 按键开始升级,板子上面的灯开始闪烁代表正在升级中,或者使用 USB 数据线连接电脑打开串口助手查看升级打印信息(波特率 115200):

图8-21 升级进度指示灯

图8-21 升级进度指示灯

图8-22 串口升级打印信息

图8-22 串口升级打印信息