LVGL移植
一、LVGL文件裁剪
1. 删除根目录下选中的文件
删除后
2. 裁剪examples文件夹
- 删除
porting
中输入输出相关的接口文件,其它全部删除
3. 修改lvgl配置文件文件名
将根目录下的lv_conf_template.h
文件名修改为lv_conf.h
4. 最终文件
demos
文件夹中保存的是官方历程,可以删除
5. 修改lv_conf.h
- 将
#if 0
修改为#if 1
二、工程目录
1. 移植裁剪后的lvgl
不按次结构,有些头文件的引用可能会报错
2.添加文件进工程
(1) 添加分组
1 | Middlewares/lvgl/example/porting |
(2) 为什么要这样分组
因为这样分组和LVGL的结构是相同的
(3) 为分组添加文件
(4) 添加头文件路径
(5) 开启C99模式
三、配置输出
1. 修改头文件
lvgl\examples\porting
路径下的lv_port_disp_template.c/h
是官方提供的显示接口函数
使用前需要将#if 0
改为#if 1
2. 包含输出设备驱动头文件
3. 在disp_init()中调用LCD初始化代码
4. 配置图形数据缓冲模式
5. 设置屏幕尺寸
6. 在disp_flush中使用自己的打点函数
四、配置输入
1. 修改输入设备接口文件
lvgl\examples\porting
路径下的lv_port_indev_template.c/h
是官方提供的显示接口函数
使用前需要将#if 0
改为#if 1
2. 按需裁剪输入设备
删除lv_port_indev_template.c/h
中未使用的部分,只保留使用到的部分
3. 在接口文件中包含触摸头文件
4. 在touchpad_init()中调用触摸初始化代码
5. 触摸检测函数配置
6. 配置坐标获取函数
五、为LVGL提供时基
1. stm32f4xx_it.c
文件中添加头文件
2. 调用lv_tick_inc()
函数
x参数
为进入函数的时间,例如1ms发生一次中断,则x改为1
六、main()函数部分移植
1. 包含头文件
2. 初始化LVGL库、输入输出设备
3. 每5ms调用一次lv_timer_hander()
4. 调用测试代码
七、测试官方历程
1. 将demos
文件夹放入GUI_AP
P中
2. 添加头文件路径
3. 将lv_conf_h文件,更改宏定义
4. 新建工程组
5. 在main中添加头文件
6. 调用测试函数
7. 现象
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 The personal blog of DWen_666!