硬件资源:stm32F103zet6(正点原子战舰开发板)、TFT2.4
软件资源:littlevgl7.9.1、正点原子Touch工程。
编译器:keil 已从AC5改为AC6(V6.14版本)
littlevgl传送门:Littlevgl7.9.1
具体lvgl所需资源等等,自行参考lvgl官网,或者正点原子的lvgl6.0的文档。
1、第一步:
copy正点原子的HAL库版本的touch工程,设置C99mode
编译通过之后,下载到开发板验证是否正常。
第二步:在工程文件夹中新建GUI、GUI_APP文件夹,为lvgl准备
1)、
2)、打开工程,也新建GUI、GUI_APP
3)、复制lvgl-7.9.1到工程,并将lvgl-7.9.1改为lvgl
4)、将 lvgl\lv_conf_template.h 文件复制到 GUI 并改名为 lv_conf.h。这个文件是 lvgl 的配置文件,lvgl的很多配置(屏幕大小、色深、内存、字体等等)都在lv_conf_template.h文件中进行。
然后打开并修改宏定义,使能文件
5)、复制lvgl/src文件夹到GUI文件夹下。
第三步:添加lvgl/src文件到mdk工程的GUI
第四步:修改lv_conf.h配置
第五步:给lvgl提供系统时钟
此处选择systick中断,(1ms)
第六步:移植底层驱动
littleVGL 官方给我们提供了显示驱动,输入驱动,文件系统驱动的模板文件,存放在GUI\lvgl\examples\porting 目录下,这里我们不需要文件系统,所以只需要把 :
lv_port_disp_template.c,lv_port_disp_template.h, lv_port_indev_template.c,lv_port_indev_template.h
四个文件拷贝到GUI\lvgl_driver 目录下面,并分别重命名为 :
lv_port_disp.c, lv_port_disp.h,
lv_port_indev.c, lv_port_indev.h
前面 2 个文件是跟显示驱动相关的,后面俩个文件是跟触摸驱动相关的,我们先只需要修改 lv_port_disp.c, lv_port_disp.h 俩个文件的内容就可以了,通过看注释,发现并不难移植。
1)、显示接口移植
2)、触摸移植
此时ok,编译 0 errors
在主函数中添加lvgl初始化
栈大小改为2K否则HardFault_Handler
下载地址:
https://download.youkuaiyun.com/download/qq_41359157/14929313