2 GUI 工具使用-HMI
 
2.1 GUI工具概述

GT-HMI 是高通专为 GUI 用户开发的界面设计和编辑工具,包含 GT-HMI Designer 和 GT-HMI Engine 两款软件,上位机 GT-HMI Designer 自带图形库并包含多种控件供开发者使用,可以帮助用户快速创作出富有创意的 UI 图形交互效果。下位机 GT-HMI Engine 是一款高效的嵌入式 UI 引擎,可以帮助用户更快的构建、集成和优化 UI 应用程序;GT-HMI 工具为开发者提供了创新、高效的解决方案,让用户轻松实现自己的图形界面想法,有助于用户节省大量开发时间,提升开发效率,降低开发成本,从而增强产品的竞争力和用户体验,是开发者在使用 GUI 时的第一选择。

 

2.2  GT5GL64芯片与HMI工具使用

GT5GL64芯片可配合我司GT-HMI Designer上位机使用,用户使用GT-HMI Designer开发好GUI界面交互后,点击编译可生成resource.bin图片和字库资源包,将resource.bin资源包用烧录器烧录到GT5GL64芯片。使用GT5G系列芯片可以使用GUI-LCD(GUI-LCD上面自带一颗GT5G芯片)直接在我们移植好的示例工程上配合GUI-LCD开发板进行开发,提高开发效率。也可以使用客户的自己的单片机进行开发,后面介绍 HMI 界面移植。

获取 GUI-HMI 工具的方式及视频教程:

  1.  软件下载链接:高通字库官方网站高通字库-首页 (https://www.hmi.gaotongfont.cn)
  2.  说明书下载: 高通字库-GT-HMI Designer 用户手册 (https://www.hmi.gaotongfont.cn/kfgj)
  3.  软件视频教程:Https://space.bilibili.com/3493293474188211/channel/collectiondetail?sid=3159444

2.3  GT-HMI Designer 上位机代码移植

下位机配合 GT-HMI Designer 上位机设计界面非常快,本小节讲解下位机与上位机配合使用。第一步:首先在 GT-HMI Designer 上新建工程设计界面,设计界面教程可参考“GT-HMI Designer用户手册”。

第二步:GT-HMI Designer 工程目录下的 screen 目录是每个界面的程序源码,需要把这部分源码添加到 keil5 工程上,在 main 函数里面初始化 gt_ui_init()函数接口。这里还没完,还需要将 board 目录的 gt_port_vf.c,gt_gui_driver.lib 和 gt_gui_driver.h 替换工程 GT-HMI-Engine\driver 下的同名文件。

第三步:将 board 目录下的 resource.bin 烧录到存储芯片里面去。

图  screen 目录下的文件

 

烧录 bin 文件步骤如下:

第一步:备好如下烧录器,在烧录接的是最下面四行, 右边表格表示烧录器接存储芯片的引脚号。

第二步:使用对应烧录座将烧录器和存储芯片引脚连接起来, 右边表格表示座子对应芯片的引脚号。芯片表面的圆点应和右边表格第1脚对应。

存储芯片与烧录器连接图


 

第三步:打开 FlyPRO 烧录软件,选择 FlyPRO 上方的芯片-选择W25Q64FV。

 

第四步:点击 FlyPRO 软件界面上方的加载,将所需要烧入的 bin 文件加载进去。

第五步:点击烧录软件的自动编程,选择单次烧录。等待程序将 bin 文件烧录进 flash。下图为成功烧录的界面(烧录时如提示“ID校验不通过”,是否继续选择“是”,即可正常烧录)。

2.4  GT-HMI-Engine 代码移植

 

GT-HMI-Engine 代码移植很重要,在 hmi 上位机设计的界面需要依赖这些文件才能使用,下面介绍移植步骤(下面介绍的步骤是在 keil5 环境下完成的)。

 

第一步:首先用 git 的下载 GT-HMI-Engine 源代码。在 git bash 上使用

 

"git clone git@gitee.com:genitop/GT-HMI-Engine.git -b develop"命令拉取代码。

 

第二步:将 GT-HMI-Engine 源码添加到功能目录里面去,并添加到 keil5 的工程里面去,

 

第三步:打开 gnu 配置进行编译,下图为参考的配置,不同的 keil5 版本配置 gnu 界面都不一样。这里 gnu 配置必须打开,不然会报很多错误。

 

 

下图为 Target 配置,Use MicroLIB 也需要打开,不然也会报错。

第四步:编译通过之后添加 spi_wr、_flush_cb、read_cb、read_cb_btn 四个函数,spi_wr 是读取素材图片的,支持 flash、SD 卡读取,_flush_cb 是刷屏函数接口,read_cb 是触摸上报接口,read_cb_btn是按键上报接口。read_cb_btn 接口根据客户的要求添加,如果用不到,可定义空函数,就是这函数里面什么也没有,防止编译报错。

 

第五步:初始化 gt_init 函数,while(1)循环添加如下图操作,gt_tick_inc 为 GUI 系统提供 1ms 的心跳。

做完上面操作可显示一个按键控件看是否能正常显示,如显示不正常请检查_flush_cb 刷屏函数是否正确。控件能正常使用并能正常触摸,表明 GT-HMI-Engine 已移植成功。

 

2.5接口函数代码示例

// 定义触摸状态变量

uint8_t touch_status;

 

// SPI写入函数,用于向SPI设备写入数据并可选地读取数据

// 参数:data_write - 指向写入数据的指针

// len_write - 写入数据的长度

// data_read - 指向读取数据的指针

// len_read - 读取数据的长度

uint32_t spi_wr(uint8_t * data_write, uint32_t len_write, uint8_t * data_read, uint32_t len_read)

{

// 读取地址的临时变量

unsigned long ReadAddr;

unsigned long addr, len;

 

// 计算读取地址

ReadAddr = *(data_write + 1) << 16; // 高八位地址

ReadAddr += *(data_write + 2) << 8; // 中八位地址

ReadAddr += *(data_write + 3);  // 低八位地址

 

// 从SPI闪存读取数据

spiflash_read(data_read, ReadAddr, len_read);

 

// 返回成功标志

return 1;

}

// 刷新回调函数,用于更新显示区域

// 参数:drv - 显示驱动结构体

// area - 显示区域信息

// color - 颜色信息

void _flush_cb(struct _gt_disp_drv_s * drv, gt_area_st * area, gt_color_t * color)

{

gt_size_t x = area->x, y = area->y;

uint16_t w = area->w, h = area->h;

int i = 0;

 

// 设置LCD块

lcd_setblock(x, y, x + w - 1, y + h - 1);

for (i = 0; i < w * h; i++)

{

// 写入颜色数据

lcd_wr_data(color->full >> 8);

lcd_wr_data(color->full & 0xff);

color++;

}

}

 

// 输入设备读取回调函数,用于处理触摸状态

// 参数:indev_drv - 输入设备驱动结构体

// data - 输入设备数据结构体

void read_cb(struct _gt_indev_drv_s * indev_drv, gt_indev_data_st * data)

{

if (!touch_status)

{

// 如果触摸状态未激活,设置为释放状态

data->state = GT_INDEV_STATE_RELEASED;

return;

}

 

// 更新触摸状态

touch_status = 0;

data->point.x = tp_dev.point.x;

data->point.y = tp_dev.point.y;

data->state = GT_INDEV_STATE_PRESSED;

}

 

注:read_cb_btn  接口函数,如有需求可联系我司技术人员提供。

 

2.6 HMI函数代码移植

GT-HMI-Engine 移植成功后,就可以实现 HMI 设计的界面移植到板子上,下面讲解一下 HMI 界面移植。

第一步:HMI 的工程目录如下图,board 和 out 目录是工程编译生成的字库库文件,图片素材寻址 C文件,还有素材 bin 文件,我们需要做的是将 gt_gui_driver.lib、gt_gui_driver.h 和 gt_port_vf.c 文件替换 keil 工程 GT-HMI-Engine/driver 原来的文件,向 flash 烧录 bin 文件。screen 目录是存放 HMI 设计的界面 C 文件,将这些界面文件添加到 keil5 工程里面去。

 

第二步:在 main 函数调用 gt_ui_init 界面初始化接口函数,gt_ui_init 是第一步添加到 keil5 工程界面文件中的函数。

在 GT-HMI-Engine 移植成功的基础上,按上面介绍的步骤操作完,即可实现 HMI 的界面移植,如移植不成功,请检查 bin 文件是否烧写正确。

 

下一页
上一页
    • 联系电话

    • 0755—83453881
    • 服务时间

    • 周一至周五 9:00-18:00
    • 高通GT-HMI交流群