ESP32 RT-THREAD移植LVGL

配置文件有三个

配置文件名称 位置 功能 用户是否需要修改此文件
lv_conf_internal.h LVGL 侧 将用户未配置的功能设置为默认值 不需要
lv_rt_thread_conf.h LVGL 侧 接管与操作系统相关的配置(例如时基信号、内存等) 不需要
lv_conf.h RT-Thread 侧:参考 用户自定义配置 需要用户自行在具体 BSP 的 applications/lvgl 文件夹下创建

 

 

 

 

从上表中可以看出,虽然配置文件看起来三个很多,但是实际需要用户干预的只有最后一项,即用户需要在 BSP 的 applications 文件夹中创建一个 lvgl 文件夹,该文件夹就是用来放置 lvgl 相关文件的,内容如下:

文件名称 作用
lv_conf.h 用户自定义配置 LVGL 功能(该文件名不可以乱改)
lv_port_disp.c LVGL 显示屏对接文件,在 void lv_port_disp_init(void) 的函数内初始化与LVGL显示框架对接相关内容(该函数必须存在)。官方手册参考 | 移植参考
lv_port_indev.c LVGL 输入设备对接文件,在 void lv_port_indev_init(void) 的函数内初始化与LVGL输入设备框架对接相关内容(该函数必须存在)。官方手册参考 | 移植参考
用户界面初始化文件 在 void lv_user_gui_init(void) 函数内调用你想要初始化的函数(该函数必须存在),LVGL在初始化时会自动调用该函数。移植参考

 

 

 

自 RT-Thread 4.1.1 版本之后(含4.1.1),用户无需再创建 lv_port_disp.h 和 lv_port_indev.h 文件。

用户无需关心LVGL初始化的问题,LVGL会在设备上电时自动由RT-Thread初始化,同时也会自动调用 lv_port_disp_init、lv_port_indev_init 和 lv_user_gui_init来初始化用户的显示屏、输入设备驱动以及界面绘制函数。这些初始化的工作已经在 LVGL 侧的 lv_rt_thread_port.c 文件中自动初始化完成。

关于是否需要对接RT-Thread显示设备框架与触摸框架的问题,用户可以自由处理,如果不愿意对接RT-Thread显示和触摸框架,可以直接将驱动怼到LVGL侧的对接函数上也是没有问题的。

 

posted @ 2025-02-02 11:10  mcwhirr  阅读(75)  评论(0)    收藏  举报