RT-Thread LVGL开发实战指南
一、按文档把环境配好官方 demoRGB 屏在 BSP 目录用ENV执行menuconfig。Hardware Drivers Config → On-chip Peripheral Drivers里打开Enable LVGL demo for LCD。在子菜单里选一种LVGL demo与 LVGL 版本要一致Enable LVGL music demo→ 对应LVGL 8.3.xEnable LVGL stress demo→ 对应LVGL 9.x到RT-Thread online packages → multimedia packages → LVGL里选与上面一致的LVGL 版本。退出后执行pkgs --update拉取软件包到packages。执行scons --targetmdk5生成 MDK 工程。在MDK → Tools → RA Smart Configurator里配置GLCDC和Dave2D文档图示Generate Project Content。MDK 里编译、下载。SPIILI9341屏按原理图接好线在Enable LVGL for LCD下打开Enable LVGL for LCD_ILI9431文档写法如此。pkgs --update再scons --targetmdk5。在 RASC 里配SPIr_spi、回调spi0_callback、引脚再Generate。编译、下载。二、增加“自己的” LVGL 应用在 demo 能跑通之后文档里跑的是官方 demo。若要做自定义界面本 BSP 的入口在board/lvgl/demo/lv_demo.c的lv_user_gui_init()void lv_user_gui_init(void) { /* display demo; you may replace with your LVGL application at here */ #if LV_USE_DEMO_MUSIC 1 || defined(LV_USE_DEMO_RTT_MUSIC) lv_demos_create(music); #elif LV_USE_DEMO_BENCHMARK lv_demos_create(benchmark); #elif LV_USE_DEMO_WIDGETS lv_demos_create(widgets); #elif LV_USE_DEMO_STRESS lv_demos_create(stress); #else #error Please enable one lvgl demo in the env #endif lv_demos_show_help(); }建议做法menuconfig 里仍要BSP_USING_LVGL、屏类型、以及至少打开一种 demo 相关选项因为当前有#error需要某LV_USE_DEMO_*被打开或者你本地改掉#error分支在只启用 LVGL 包、不选官方 demo 时自己实现lv_user_gui_init并保证Kconfig/SConscript仍把lv_demo.c编进工程或把你的实现放到会被编译的.c里。新建例如board/lvgl/app/my_app.c写void my_lv_app_init(void)用 LVGL API 建界面、控件等。把lv_user_gui_init()里对lv_demos_create(...)的调用改成调用my_lv_app_init()并去掉或注释用不到的 demo 分支避免和注释“replace with your LVGL application”冲突。给新文件加进编译在board/lvgl/下增加/修改SConscriptGlob或DefineGroup加入你的app/*.c与现有board/lvgl/SConscript的写法一致。显示与输入已由lv_port_disp.c/lv_port_indev.c和 ENV 里选的屏驱动接好一般只需在lv_user_gui_init里挂你的 UI 逻辑。