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控件的生成

点击按钮会有对应事件出现

 

至此移植完成。

 

下一页
上一页
    • 联系电话

    • 0755—83453881
    • 服务时间

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