一、LVGL文件裁剪

1. 删除根目录下选中的文件

1

删除后

2

2. 裁剪examples文件夹

  • 删除porting中输入输出相关的接口文件,其它全部删除

QQ_1742610639413

3. 修改lvgl配置文件文件名

将根目录下的lv_conf_template.h文件名修改为lv_conf.h

4. 最终文件

image-20250322104307792

  • demos文件夹中保存的是官方历程,可以删除

5. 修改lv_conf.h

  • #if 0修改为#if 1

image-20250322110212708

二、工程目录

1. 移植裁剪后的lvgl

image-20250322110141115

不按次结构,有些头文件的引用可能会报错

2.添加文件进工程

(1) 添加分组

image-20250322114144151

1
2
3
4
5
6
7
8
Middlewares/lvgl/example/porting
Middlewares/lvgl/src/core
Middlewares/lvgl/src/core
Middlewares/lvgl/src/extra
Middlewares/lvgl/src/font
Middlewares/lvgl/src/gpu
Middlewares/lvgl/src/hal
Middlewares/lvgl/src/widgets

(2) 为什么要这样分组

因为这样分组和LVGL的结构是相同的

image-20250322114311900

(3) 为分组添加文件

image-20250322111729503

(4) 添加头文件路径

QQ_1742618216223

(5) 开启C99模式

QQ_1742615627487

三、配置输出

1. 修改头文件

lvgl\examples\porting路径下的lv_port_disp_template.c/h是官方提供的显示接口函数

使用前需要将#if 0 改为#if 1

image-20250322125754825

image-20250322125858697

2. 包含输出设备驱动头文件

3. 在disp_init()中调用LCD初始化代码

image-20250322131803479

4. 配置图形数据缓冲模式

image-20250322132844255

5. 设置屏幕尺寸

image-20250322133003409

6. 在disp_flush中使用自己的打点函数

image-20250318133644412

四、配置输入

1. 修改输入设备接口文件

lvgl\examples\porting路径下的lv_port_indev_template.c/h是官方提供的显示接口函数

使用前需要将#if 0 改为#if 1

image-20250323144615574

image-20250323144639488

2. 按需裁剪输入设备

删除lv_port_indev_template.c/h中未使用的部分,只保留使用到的部分

image-20250323145225160

image-20250323145323205

3. 在接口文件中包含触摸头文件

QQ_1742714448348

4. 在touchpad_init()中调用触摸初始化代码

image-20250323151034944

5. 触摸检测函数配置

image-20250318135936403

6. 配置坐标获取函数

image-20250318140033233

五、为LVGL提供时基

1. stm32f4xx_it.c文件中添加头文件

image-20250322142414771

2. 调用lv_tick_inc()函数

x参数为进入函数的时间,例如1ms发生一次中断,则x改为1

QQ_1742624811806

六、main()函数部分移植

1. 包含头文件

QQ_1742625782915

2. 初始化LVGL库、输入输出设备

image-20250322144233357

3. 每5ms调用一次lv_timer_hander()

image-20250322165012000

4. 调用测试代码

image-20250322165048497

七、测试官方历程

1. 将demos文件夹放入GUI_APP中

image-20250322164939645

2. 添加头文件路径

QQ_1742632798292

3. 将lv_conf_h文件,更改宏定义

image-20250322164639124

4. 新建工程组

QQ_1742632928236

5. 在main中添加头文件

image-20250322164705613

6. 调用测试函数

image-20250322164737470

7. 现象

IMG_5519