HMI-Board之LVGL应用

移植

使用默认模板工程新建一个RT-Thread项目,BSP版本为1.1.1

新建lvgl工程.png

打开RT-Thread Settings,点击右侧箭头按钮进入详细页,在硬件栏开启以下几个配置选项(LCD、触摸屏、demo)

配置lvgl.png

此时,打开board文件夹,发现下面会有一个lvgl的目录,package目录下会有LVGL和lv-music两个目录,如果没有请检查上一步有没有漏掉的步骤

board文件夹.png

编译、下载程序进行发现开发板已经运行lv-music-demo程序

lvgl-music.jpg

界面定制

接下来安装SquareLine Studio,定制自己的lvgl界面,我这里下载的是SquareLine_Studio_1.3.3_Setup.exe,一路默认安装就可以了

squareLine.png

安装完需要登录账号才能使用,没有账户的请注册一下

登录.png

选择Create下的NuMaker-HMI-M467项目,然后CREATE

ebike.png

这个工程自带Sreen,先随意拖几个控件到Screen1上面

控件.png

导出ui文件到指定文件夹lvgl-demo,生成源代码文件:Export -> Export UI Files

导出ui.png

生成的源代码文件如下

指定文件夹.png

拷贝上面的文件夹到lvgl工程的目录packages\lv_music_demo-v0.3.4下面

ui文件夹.png

把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的文件夹会被加到工程目录中去

lvgl-demo.png

Ctrl + F5启动调试,编译下载程序后,自定义的界面已经可以在开发板上面显示

自定义demo.jpg

源码分析

用调试器抓一下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辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容