6.GT-HMI Engine移植操作流程
6.1GT-HMI Engine移植平台流程
移植GT_GUI下位机流程导图如下所示(本手册以正点原子STM32F429阿波罗开发板示例)
6.1.1准备工作
首先需要一份已经实现对应外设驱动(显示屏驱动,触摸驱动,定时器驱动,sdram或sram驱动,如果需要使用到字库内容或flash文件系统,则还需要实现对应的spi驱动以读取flash)并确保触摸屏例程使用正常的工程。这里准备的是主控为STM32F429的工程。
然后还需要准备GUI下位机的GT-HMI-Engine平台引擎包 (官网下载或仓库克隆,我这里将文件包改名为gui)
GT-HMI-Engine引擎包的目录结构
直接将整个文件夹放入STM32F429工程的根目录。
6.1.2移植编译
在keil工程中新建gui的groups文件夹,并将driver和src文件中的C文件添加进去,example文件夹为控件示例可以添加也可以不添加。
添加c文件后,还需要在工程配置中将对应的头文件路径一一添加进来。
添加完成如上图头文件路径后还需要打开C99和 GUN模式编译选项,以防编译报错。
设置完成后编译,会提示四个错误
原因是还没有实现对应的刷屏,触摸,按键和spi读写驱动接口。在main.c文件中分别实现这些接口函数:(注意函数名与各自外部声明的位置一致)_flush_cb刷屏函数(声明在gt_port_disp.c中)
read_cb触摸函数(声明在gt_port_indev.c中)
read_cb_btn按键函数(声明在gt_port_indev.c中)
spi_wr函数(声明在gt_port_vf.c中,这里没使用字库,可以为空不实现功能,查看6.2实现。)
再次编译,会提示成功未出现报错。
在main.c文件中include包含gt.h,然后调用里面声明的gt_init函数,再次编译,可能会提示No space xxx的错误。
原因是gt_disp_port函数中定义的刷屏数组太大,超过片内的ram空间而报错,将其定义在片外的sram中即可,其定义的地址需要自己参考对应主控芯片的情况以及对sram的使用情况来决定。
重定义gt_port_disp.c 中的刷屏数组再次编译即可通过。
之后修改gt_conf.h中的屏幕尺寸和内存空间参数,以适配开发板环境。
如果使用控件很多,可适当加大GT_MEM_SIZE的大小。
在开发板的定时器驱动中加入1ms的心跳函数gt_tick_inc(1),保证GUI持续运行
在main函数中设置定时器1ms触发一次中断并在while循环中加入gui的事务处理函数gt_task_handler使其每1ms循环执行一次。
导入example文件夹中的例程,调用控件的例程进行测试。
编译并烧录进开发板,可以看到btn控件的生成
点击按钮会有对应事件出现
至此移植完成。
-
- GT-HMI Designer用户手册
- 高通字库芯片开发资料
- GTDB-X7ESP AI开发板使用手册
- GTC-480480TFT40XP模块使用手册
- GTC-480272TFT43XP模块使用手册
- GTC-800480TFT50G模块使用手册
- GTC-800480TFT70GP模块使用手册
- GTC-1024600TFT101GP模块使用手册
- GT-GUI LCD 0.96寸液晶模组数据手册
- GT-GUI LCD 1.9寸液晶模组数据手册
- GT-GUI LCD 2.8寸液晶模组数据手册
- GT-GUI LCD 3.5寸液晶模组数据手册
- GT-GUI LCD 7.0寸液晶模组数据手册
- GUI-LCD开发板使用手册
- GT5GL128B标准GUI芯片规格书
- GT5GL64芯片产品规格书
高通字库交流群
GT-HMI交流群