LVGL WIN32模拟器环境搭建

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++桌面开发,其他的如果不需要暂时可以不选
LVGL WIN32模拟器环境搭建_第1张图片
2、必要的组件安装,LVGL的支持的visual studio PC模拟器是根据Vs2019的生成工具生成,需要把VS2019的工具集安装上
LVGL WIN32模拟器环境搭建_第2张图片

模拟器代码下载

LVGL官网介绍的LVGL所支持的PC模拟器:
LVGL WIN32模拟器环境搭建_第3张图片
1、进入仓库后我们就直接点击Code下载第一个PC模拟器文件
LVGL WIN32模拟器环境搭建_第4张图片
2、进入LVGL.LvglPlatform文件分别点击下面三个文件夹去里面下载对应的里面的源码

  • freetype
  • lv_drivers
  • lvgl
    LVGL WIN32模拟器环境搭建_第5张图片

PC模拟器搭建

  • 解压lv_port_win_visual_studio-master压缩包LVGL WIN32模拟器环境搭建_第6张图片

  • LVGL.LvglPlatform文件夹下载中的freetype、lv_drivers、lvgl 文件,解压并复制到对应的文件夹中。LVGL WIN32模拟器环境搭建_第7张图片
    LVGL WIN32模拟器环境搭建_第8张图片
    LVGL WIN32模拟器环境搭建_第9张图片

  • 文件全部复制完成之后就可以直接打开启动文件启动Visual studio
    LVGL WIN32模拟器环境搭建_第10张图片

  • VS2019的工具集选择LVGL WIN32模拟器环境搭建_第11张图片

  • 右键选择工程,点击生成开始编译, 编译通过后选择本地调试器开始运行,能够加载出官方实例就证明移植成功了。LVGL WIN32模拟器环境搭建_第12张图片LVGL WIN32模拟器环境搭建_第13张图片

其他配置项说明

1、debug log 等级修改
在LVGL.Simulator/lv_conf.h中,修改LV_USE_LOG 选择开不开起debug log, 修改LV_LOG_LEVEL 选择 debug log的开启等级,如图
LVGL WIN32模拟器环境搭建_第14张图片
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的函数接口

你可能感兴趣的:(设备驱动,microsoft,ide,windows)