LVGL WIN32模拟器环境搭建

news/2024/11/16 13:37:10/

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的函数接口

http://www.ppmy.cn/news/572057.html

相关文章

git使用命令技巧

文章目录 前言查看提交用户名更改提交用户名查看文件的diff查看提交记录Git 本地分支管理查看、切换、创建和删除分支 前言 我们在使用git的时候,提交后会看到如下记录: 经常会遇到提交后,这个作者的名字和自己设置的名字不一致&#xff0…

lvgl显示中文和自定义图标

lvgl显示中文和自定义图标 显示中文 制作字库 lvgl字库在线制作网址 https://lvgl.io/tools/fontconverter 下面以制作 “按钮” 这两个汉字字库为例 首先选择一个字体文件 可以在网上找,也可以去电脑 C:\Windows\Fonts 里挑一个顺眼的确定要转换的字符 然后就…

LVGL font 字库管理(lv_font.c)

更多源码分析请访问:LVGL 源码分析大全 LVGL font 字库管理目录 概述1、内置字体(Built-in fonts)1.1、 源码分析1.2、字体生成2、外挂字体(freetype)2.1、源码分析3、字体渲染4、多字库支持5、总结概述 LVGL框架中对于字库提供了三个接口(在lvgl/src/font/lv_font.c中)用…

介绍两个LVGL开发工具,让你做出更好的UI

环境 V公众号南山府嵌入式回复4001获取 NXP GUI-Guider 介绍的第一个就是恩智浦官方提供的,现在已经更新到1.4.1版本,相对前面的版本,变化还是挺大的,无论是界面设计还是其他的做的都挺不错的。而且特别好的一点是,支…

linux磁盘管理命令 lv,linux 磁盘管理(二)LVM逻辑卷管理及基本操作

上一章我们说完了硬盘的分区、格式化与挂载分区,用是可以正常使用了,但是一旦出现系统分区不够用了,我们不得不备份、删除相关数据或者重新规划分区来满 足系统的需要,那么如何才能解决这类的问题呢?这就可以用到我们标…

Ansible自动运维————实验

0、创建新的虚拟机,使用镜像RHEL8.5,要求/boot目录为512N,/home目录为1Gb,交换空间为2Gb,其他空间给)目录。 1、将该主机作为 Ansible 控制节点,克隆该虚拟机,将克隆的虚拟机作为受控节点&#…

教你一分钟在Linux上控制机群快速部署任务,自动化运维工具:ansible,各个模块的使用

blockinfile模块使用: 在node1上文件ansible_text文件中写入内容 ansible 然后使用blockinfile模块,在文件中插入内容 blockinfile insert content 然后插入内容 blockinfile with marker 且使用指定标记: marker#{mark}test 在blockinfile insert conte…

Configuration Error: Can't find bundle for base name src.config.lvg, locale zh_CN

Configuration Error: Cant find bundle for base name src.config.lvg, locale zh_CNQ 其中src.config.lvg是配置文件,如果想要test.java调用配置文件,那么这两个文件放的位置有什么要求,才能保证test.java文件调用配置文件?