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侧的对接函数上也是没有问题的。