HMI-Board之LVGL应用
移植
使用默认模板工程
新建一个RT-Thread项目,BSP版本为1.1.1
打开RT-Thread Settings
,点击右侧箭头按钮进入详细
页,在硬件
栏开启以下几个配置选项(LCD、触摸屏、demo)
此时,打开board文件夹,发现下面会有一个lvgl的目录,package目录下会有LVGL和lv-music两个目录,如果没有请检查上一步有没有漏掉的步骤
编译、下载程序进行发现开发板已经运行lv-music-demo程序
界面定制
接下来安装SquareLine Studio,定制自己的lvgl界面,我这里下载的是SquareLine_Studio_1.3.3_Setup.exe,一路默认安装就可以了
安装完需要登录账号才能使用,没有账户的请注册一下
选择Create
下的NuMaker-HMI-M467
项目,然后CREATE
这个工程自带Sreen,先随意拖几个控件到Screen1上面
导出ui文件到指定文件夹lvgl-demo,生成源代码文件:Export
-> Export UI Files
生成的源代码文件如下
拷贝上面的文件夹到lvgl工程的目录packages\lv_music_demo-v0.3.4
下面
把lv_demo_music函数改一下改成下面
/** * @file lv_demo_music.c * */ /********************* * INCLUDES *********************/ #include "lv_demo_rtt_music.h" #include "lvgl-demo/ui.h" #if LV_USE_DEMO_RTT_MUSIC void lv_demo_music(void) { ui_init(); } #endif /*LV_USE_DEMO_RTT_MUSIC*/
先清理一下工程,然后再重新构建,没有问题的话lvgl-demo的文件夹会被加到工程目录中去
按Ctrl + F5
启动调试,编译下载程序后,自定义的界面已经可以在开发板上面显示
源码分析
用调试器抓一下lvgl的启动过程,基本分为以下几个步骤
① INIT_ENV_EXPORT :lvgl线程接口作为初始化环境被系统调用
② lvgl_thread_init:lvgl线程初始化
③ lvgl_thread_entry:启动GUI线程,这里会设置一些跟显示屏相关的参数(分辨率、彩色位数等)
lv_init(); lv_port_disp_init(); lv_port_indev_init(); lv_user_gui_init();
④ lv_user_gui_init:自定义用户代码,最终会调用到ui_init
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)