LVGL WIN32模拟器环境搭建
- LVGL简介
- 环境搭建
- IDE 选择
- 模拟器代码下载
- PC模拟器搭建
- 其他配置项说明
LVGL简介
LVGL是一个跨平台、轻量级、易于移植的图形库。因其支持大量特性和其易于裁剪,配置开关众多,且版本升级较快,不同版本之间存在一定的差异性,相关的使用教程有一定的滞后性,由于缺少最新版本的中文教程,加上大量的教程中未注明对应的版本,初始接触的开发者往往容易中招,花费大量时间爬坑。本文仅对自己的使用经验进行记录和总结,望对初始接触LVGL的开发者有所帮助。
LVGL 提供了模拟器来在电脑上仿真 LVGL,让用户可以摆脱硬件和平台的束缚,专注于 LVGL 逻辑层面的开发。对于如何在 PC 上仿真 LVGL,官方已经给出了详细的文档说明,具体可参考 Simulator on PC
环境搭建
根据自己的需要、平台和IDE下载模拟器,本人选择 WIN10 + VS2022
IDE 选择
Visual studio2022下载
VS2022安装:
1、需要勾选C++桌面开发,其他的如果不需要暂时可以不选
2、必要的组件安装,LVGL的支持的visual studio PC模拟器是根据Vs2019的生成工具生成,需要把VS2019的工具集安装上
模拟器代码下载
LVGL官网介绍的LVGL所支持的PC模拟器:
1、进入仓库后我们就直接点击Code下载第一个PC模拟器文件
2、进入LVGL.LvglPlatform文件分别点击下面三个文件夹去里面下载对应的里面的源码
- freetype
- lv_drivers
- lvgl
PC模拟器搭建
-
解压lv_port_win_visual_studio-master压缩包
-
LVGL.LvglPlatform文件夹下载中的freetype、lv_drivers、lvgl 文件,解压并复制到对应的文件夹中。
-
文件全部复制完成之后就可以直接打开启动文件启动Visual studio
-
VS2019的工具集选择
-
右键选择工程,点击生成开始编译, 编译通过后选择本地调试器开始运行,能够加载出官方实例就证明移植成功了。
其他配置项说明
1、debug log 等级修改
在LVGL.Simulator/lv_conf.h中,修改LV_USE_LOG 选择开不开起debug log, 修改LV_LOG_LEVEL 选择 debug log的开启等级,如图
2、文件系统使用
在LVGL.Simulator/lv_conf.h中,文件系统默认是使用的WIN32,
修改配置如下
#define LV_USE_FS_WIN32 1
#if LV_USE_FS_WIN32
#define LV_FS_WIN32_LETTER '/'
#define LV_FS_WIN32_PATH "D:\\SD" //此处可使用你自己的目录
#define LV_FS_WIN32_CACHE_SIZE 0
#endif
然后,开启main函数中的如下代码
lv_fs_dir_t d;
if (lv_fs_dir_open(&d, "/") == LV_FS_RES_OK)
{char b[MAX_PATH];memset(b, 0, MAX_PATH);while (lv_fs_dir_read(&d, b) == LV_FS_RES_OK){LV_LOG_ERROR("%s\n", b);}lv_fs_dir_close(&d);
}
编译并运行程序,查看控制台窗口,是不是应该出现指定目录下的所有目录和文件,是的话则文件系统启用成功
3、屏幕的分辨率的设置
打开项目之后,查看LVGL.Simulator.cpp 在single_display_mode_initialization 函数中修改屏幕的分辨率
bool single_display_mode_initialization()
{if (!lv_win32_init(GetModuleHandleW(NULL),SW_SHOW,800, //输出屏幕的宽480, //输出屏幕的高LoadIconW(GetModuleHandleW(NULL), MAKEINTRESOURCE(IDI_LVGL)))){return false;}lv_win32_add_all_input_devices_to_group(NULL);return true;
}
4、添加一个UI
- 使用SquareLine_Studio_Windows工具绘制一个UI界面
- 在LVGL.Simulator\lvgl目录下新建一个属于自己的目录,如 hmi
- 将绘制的UI源码全部复制到hmi目录下
- LVGL.Simulator.cpp中添加对应的头文件,并在main中调用绘制UI的函数接口