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

LVGL WIN32模拟器环境搭建相关推荐

  1. Windows下android模拟器环境搭建

    Windows下android模拟器环境搭建   一.搭建java环境 1.下载jdk1.6.0_45 下载地址:http://www.oracle.com/technetwork/java/arch ...

  2. android SDK模拟器环境搭建

    android SDK模拟器环境搭建 一.下载安装android SDK 两种方式: (1)官网下载(需FQ):https://developer.android.com/studio/index.h ...

  3. windows中freeRTOS模拟器环境搭建

    windows中的freeRTOS使用   FreeRTOS参考手册中的模拟程序都是基于windows版本的模拟器.因此为了学习FreeRTOS,需要在Windows中搭建一下模拟器的运行环境.网络上 ...

  4. 思科网络模拟器环境搭建以及基本使用(搭建简单的网络拓扑和抓包)

    最近因为公司部门的赋能培训讲到了网络的知识,因为之前自己只做过二层的一些工作,并且只是二层里面的一小部分,对三层的内容似懂非懂.有很多的细节还不知道,公司大佬也有推荐了一些学习方法,所以趁着五一赶紧实 ...

  5. java模拟器环境_Win10 + Appium+夜神/MuMu模拟器环境搭建

    概述(建议搭建前先完整看一遍,心里会有一个大概的印象,毕竟我踩过坑)' z: p5 f9 y. ~7 j" y8 X: V8 q8 {7 F6 x7 U. {/ e' K ' q& ...

  6. Robotframework+Appium+夜神模拟器环境搭建(1)

    目录 一 需要准备的材料 二开始安装 1 分享地址 2 配置jdk环境变量 3 安装AndroidSDK 4 安装 .netframework Node 5 安装Appium 6 命令安装 7 夜神模 ...

  7. Win32汇编环境搭建教程(MASM32 SDK)

    一.说明 常用的32位汇编编译器有微软的MASM.Borland的TASM和NASM. 编译器 开发者 优点 缺点 MASM 微软 微软自家软件和系统兼容性好:支持invoke/.if等伪指令将汇编变 ...

  8. Drozer+天天模拟器环境搭建

    环境前提 Windows 10 + JDK Drozer安装 Drozer下载地址:链接:https://pan.baidu.com/s/1sSothVm19Ry0k0Y3ES0WPg 密码:0fey ...

  9. Python+Appium+夜神模拟器环境搭建,启动模拟器自带的浏览器,相关步骤和遇到问题

    1.安装Python的环境,自行百度解决. 2.appium下载,双击一路保存. 3.重点配置好appium-doctor,方便查看appium还有哪些信息没有配置全. 将appium的安装路径配置到 ...

最新文章

  1. gridview 中使用 if else_前端代码中如何优化if/else
  2. JavaWeb:上传下载文件
  3. 作为怀孕的亲历者,你觉得最值得分享的经验或者技巧是什么?
  4. CV之Hog+HamMingDistance:基于Hog提取和汉明距离对比的应用—图像相似度对比之for循环将多个成对图片依次对比并输出相似度
  5. jquery的$.extend和$.fn.extend作用及区别(—)
  6. SQL查询语句基础构成
  7. using(){},Close(),Dispose()的区别
  8. (笔记)VC6插件安装(VC6LineNumberAddin)
  9. 语言图片渐入代码_这个可能打败Python的编程语言,正在征服科学界
  10. 使用JsonCpp编写JSON封装程序的方法
  11. python破解excel进入密码(密码字典)
  12. GRE填空单词之精简版
  13. 运动目标检测发展概述
  14. 七夕情人节送什么礼物给女朋友?音质好的蓝牙耳机推荐
  15. android m是什么版本号,Android M版本号确定,并不是Android 6.0
  16. 接入飞书的 ChatGPT 对话机器人,SAM 来了
  17. 关于正则表达式里含有空格的问题
  18. Python包下载网址
  19. leetcode---1758.生成交替二进制字符串的最少操作数
  20. python生成迁移文件

热门文章

  1. linux unzip和zip,zip和unzip压缩与解压
  2. 服务器缓存多会影响网速吗,内存容量过大是否会影响网速
  3. 微信群运营方案及技巧策略(精华版)
  4. 校园网内两台PC无法ping通的问题
  5. Spring_SSJ集成
  6. 利用Python中的tkinter和MyQR制作个性二维码转换器
  7. CTF PWN之精确覆盖变量数据
  8. codeforces 324# E. Anton and Ira (暴力枚举+贪心)
  9. 局部规划算法:DWA算法原理
  10. 40 - 数据库基础