LVGL V9.0基于VS2022仿真搭建(2)

2023-11-18

完整Demo,lvgl,lvgl_drivers相关资料下载

链接:https://pan.baidu.com/s/1h3OKCIBQRX0Hn7KjZsynqg
提取码:sc2l

下载的lv_drivers中的win32drv.c及win32drv.h文件是做了修改的,官网下载的lv_drivers编译会报错,因为lvgl一些移植接口文件做了修改导致编译不通过。

其它资料下载

链接:https://pan.baidu.com/s/1nV9jojPEPWSWZdYhaCZWTA
提取码:91j8

下载资料后解压文件及安装VS2022 ,选择通用windows平台开发及Visual Studio进行安装,安装步骤略

在这里插入图片描述

打开VS2022,点击创建新项目

在这里插入图片描述

选择Windows Console Application (C++/WinRT),点击下一步

在这里插入图片描述

输入名程lvgl_v9_sim,选择目录,勾选将解决方案和项目放在同一目录中,点击创建,再点击确定

在这里插入图片描述

在工程目录中新建一个文件夹并命名为lvgl_folder

在这里插入图片描述

将下载的lv_drivers,lvgl两个文件夹复制到lvgl_folder文件中

在这里插入图片描述

将lv_drivers中的lv_drv_conf_template.h和lvgl中的lv_conf_template.h的文件复制到lvgl_folder目录下,并分别命名为lv_drv_conf.h和lv_conf.h

在这里插入图片描述

在工程中分别创建lvgl,lvgl_drivers两个筛选器

在这里插入图片描述
在这里插入图片描述

将lvgl_folder文件夹中的文件分别加入到工程

在这里插入图片描述
在这里插入图片描述

点击显示所有文件,包含添加的文件在项目中

在这里插入图片描述

将lv_drv_conf.h文件中的条件编译总开关打开

  • #if 0改成#if 1
#if 1 /*Set it to "1" to enable the content*/
  • 将USE_WIN32DRV宏设为1
/*----------------------------
 *  Native Windows (win32drv)
 *---------------------------*/
#ifndef USE_WIN32DRV
#  define USE_WIN32DRV       1
#endif

#if USE_WIN32DRV
/* Scale window by this factor (useful when simulating small screens) */
#  define WIN32DRV_MONITOR_ZOOM        1
#endif

将lv_conf.h中的文件配置如下

  • 编译总开关由#if 0改成#if 1
#if 1 /*Set it to "1" to enable content*/
  • LV_MEM_SIZE宏定义为(1024U * 1024U)
 /*Size of the memory available for `lv_mem_alloc()` in bytes (>= 2kB)*/
    #define LV_MEM_SIZE (1024U * 1024U)          /*[bytes]*/
  • LV_TICK_CUSTOM宏设为1,定义windos.h文件,定义时间函数GetTickCount()
/*Use a custom tick source that tells the elapsed time in milliseconds.
 *It removes the need to manually update the tick with `lv_tick_inc()`)*/
#define LV_TICK_CUSTOM 1
#if LV_TICK_CUSTOM
    #define LV_TICK_CUSTOM_INCLUDE <Windows.h>          /*Header for the system time function*/
    #define LV_TICK_CUSTOM_SYS_TIME_EXPR (GetTickCount())    /*Expression evaluating to current system time in ms*/
#endif   /*LV_TICK_CUSTOM*/
  • 将宏LV_USE_LOG设为1

/*Enable the log module*/
#define LV_USE_LOG 1
  • 将LV_USE_PERF_MONITOR和LV_USE_MEM_MONITOR设为1

/*1: Show CPU usage and FPS count*/
#define LV_USE_PERF_MONITOR 1
#if LV_USE_PERF_MONITOR
    #define LV_USE_PERF_MONITOR_POS LV_ALIGN_BOTTOM_RIGHT
#endif

/*1: Show the used memory and the memory fragmentation
 * Requires LV_MEM_CUSTOM = 0*/
#define LV_USE_MEM_MONITOR 1
#if LV_USE_MEM_MONITOR
    #define LV_USE_MEM_MONITOR_POS LV_ALIGN_BOTTOM_LEFT
#endif
  • 将LV_FONT_MONTSERRAT_12和LV_FONT_MONTSERRAT_16设为1
/*Montserrat fonts with ASCII range and some symbols using bpp = 4
 *https://fonts.google.com/specimen/Montserrat*/
#define LV_FONT_MONTSERRAT_8  0
#define LV_FONT_MONTSERRAT_10 0
#define LV_FONT_MONTSERRAT_12 1
#define LV_FONT_MONTSERRAT_14 1
#define LV_FONT_MONTSERRAT_16 1
#define LV_FONT_MONTSERRAT_18 0
#define LV_FONT_MONTSERRAT_20 0
#define LV_FONT_MONTSERRAT_22 0
#define LV_FONT_MONTSERRAT_24 0
#define LV_FONT_MONTSERRAT_26 0
#define LV_FONT_MONTSERRAT_28 0
#define LV_FONT_MONTSERRAT_30 0
#define LV_FONT_MONTSERRAT_32 0
#define LV_FONT_MONTSERRAT_34 0
#define LV_FONT_MONTSERRAT_36 0
#define LV_FONT_MONTSERRAT_38 0
#define LV_FONT_MONTSERRAT_40 0
#define LV_FONT_MONTSERRAT_42 0
#define LV_FONT_MONTSERRAT_44 0
#define LV_FONT_MONTSERRAT_46 0
#define LV_FONT_MONTSERRAT_48 0
  • 在lv_config.h中将demo相关例程宏设为1

/*==================
* EXAMPLES
*==================*/

/*Enable the examples to be built with the library*/
#define LV_BUILD_EXAMPLES 1

/*===================
 * DEMO USAGE
 ====================*/

/*Show some widget. It might be required to increase `LV_MEM_SIZE` */
#define LV_USE_DEMO_WIDGETS 1
#if LV_USE_DEMO_WIDGETS
    #define LV_DEMO_WIDGETS_SLIDESHOW 1
#endif

/*Demonstrate the usage of encoder and keyboard*/
#define LV_USE_DEMO_KEYPAD_AND_ENCODER 1

/*Benchmark your system*/
#define LV_USE_DEMO_BENCHMARK 1
#if LV_USE_DEMO_BENCHMARK
    /*Use RGB565A8 images with 16 bit color depth instead of ARGB8565*/
    #define LV_DEMO_BENCHMARK_RGB565A8 0
#endif

/*Stress test for LVGL*/
#define LV_USE_DEMO_STRESS 1

/*Music player demo*/
#define LV_USE_DEMO_MUSIC 1
#if LV_USE_DEMO_MUSIC
    #define LV_DEMO_MUSIC_SQUARE    0
    #define LV_DEMO_MUSIC_LANDSCAPE 0
    #define LV_DEMO_MUSIC_ROUND     0
    #define LV_DEMO_MUSIC_LARGE     0
    #define LV_DEMO_MUSIC_AUTO_PLAY 0
#endif

/*Flex layout demo*/
#define LV_USE_DEMO_FLEX_LAYOUT 0

点击项目菜单,点击属性

在这里插入图片描述

点击C/C++,选择常规,在附加包含目录中加入lvgl_folder,点击应用

在这里插入图片描述
在这里插入图片描述

在main.cpp中换成以下内容,并将main.cpp文件重命名为main.c

#include "lvgl/lvgl.h"
#include "lvgl/demos/music/lv_demo_music.h"
#include "lv_drivers/win32drv/win32drv.h"

#define IDI_LVGL                       101

int main()
{
    lv_init();

    if (!lv_win32_init(
        GetModuleHandleW(NULL),
        SW_SHOW,
        800,
        480,
        LoadIconW(GetModuleHandleW(NULL), MAKEINTRESOURCE(IDI_LVGL))))
    {
        return -1;
    }

    lv_win32_add_all_input_devices_to_group(NULL);

    lv_demo_music();
  

    while (!lv_win32_quit_signal)
    {
        lv_task_handler();
        Sleep(1);
    }
    return 0;
}


将C/C++中预编译头,选择不使用预编译头

在这里插入图片描述

在C++预处理器中新增加如下内容

在这里插入图片描述

在链接器,输入,附加依赖项加入以下内容

kernel32.lib
user32.lib
gdi32.lib
winspool.lib
comdlg32.lib
advapi32.lib
shell32.lib
ole32.lib
oleaut32.lib
uuid.lib
odbc32.lib
odbccp32.lib

在这里插入图片描述

编译运行,运行结果如下

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LVGL V9.0基于VS2022仿真搭建(2) 的相关文章

  • 使用 gcc 在 Linux 上运行线程构建块 (Intel TBB)

    我正在尝试为线程构建块构建一些测试 不幸的是 我无法配置 tbb 库 链接器找不到库 tbb 我尝试在 bin 目录中运行脚本 但这没有帮助 我什至尝试将库文件移动到 usr local lib 但这又失败了 任何的意见都将会有帮助 确定您
  • WPF DataGrid 多选

    我读过几篇关于这个主题的文章 但很多都是来自 VS 或框架的早期版本 我想做的是从 dataGrid 中选择多行并将这些行返回到绑定的可观察集合中 我尝试创建一个属性 类型 并将其添加到可观察集合中 它适用于单个记录 但代码永远不会触发多个
  • 在模板类中声明模板友元类时出现编译器错误

    我一直在尝试实现我自己的链表类以用于教学目的 我在迭代器声明中指定了 List 类作为友元 但它似乎无法编译 这些是我使用过的 3 个类的接口 Node h define null Node
  • 调用 McAfee 病毒扫描引擎

    我收到客户的请求 要求使用他们服务器上的 McAfee 病毒扫描将病毒扫描集成到应用程序中 我做了一些调查 发现 McScan32 dll 是主要的扫描引擎 它导出各种看起来有用的函数 我还发现提到了 McAfee Scan Engine
  • C# 异步等待澄清?

    我读了here http blog stephencleary com 2012 02 async and await html that 等待检查等待的看看它是否有already完全的 如果 可等待已经完成 那么该方法将继续 运行 同步
  • C++11 删除重写方法

    Preface 这是一个关于最佳实践的问题 涉及 C 11 中引入的删除运算符的新含义 当应用于覆盖继承父类的虚拟方法的子类时 背景 根据标准 引用的第一个用例是明确禁止调用某些类型的函数 否则转换将是隐式的 例如最新版本第 8 4 3 节
  • 随着时间的推移,添加到 List 变得非常慢

    我正在解析一个大约有 1000 行的 html 表 我从一个字符串中添加 10 个字符串 td 每行到一个list td
  • 传递给函数时多维数组的指针类型是什么? [复制]

    这个问题在这里已经有答案了 我在大学课堂上学习了 C 语言和指针 除了多维数组和指针之间的相似性之外 我认为我已经很好地掌握了这个概念 我认为由于所有数组 甚至多维 都存储在连续内存中 因此您可以安全地将其转换为int 假设给定的数组是in
  • 如何连接重叠的圆圈?

    我想在视觉上连接两个重叠的圆圈 以便 becomes 我已经有部分圆的方法 但现在我需要知道每个圆的重叠角度有多大 但我不知道该怎么做 有人有主意吗 Phi ArcTan Sqrt 4 R 2 d 2 d HTH Edit 对于两个不同的半
  • 用于 FTP 的文件系统观察器

    我怎样才能实现FileSystemWatcherFTP 位置 在 C 中 这个想法是 每当 FTP 位置添加任何内容时 我都希望将其复制到我的本地计算机 任何想法都会有所帮助 这是我之前问题的后续使用 NET 进行选择性 FTP 下载 ht
  • 需要帮助优化算法 - 两百万以下所有素数的总和

    我正在尝试做一个欧拉计划 http projecteuler net问题 我正在寻找 2 000 000 以下所有素数的总和 这就是我所拥有的 int main int argc char argv unsigned long int su
  • C# - 当代表执行异步任务时,我仍然需要 System.Threading 吗?

    由于我可以使用委托执行异步操作 我怀疑在我的应用程序中使用 System Threading 的机会很小 是否存在我无法避免 System Threading 的基本情况 只是我正处于学习阶段 例子 class Program public
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • C# 动态/expando 对象的深度/嵌套/递归合并

    我需要在 C 中 合并 2 个动态对象 我在 stackexchange 上找到的所有内容仅涵盖非递归合并 但我正在寻找能够进行递归或深度合并的东西 非常类似于jQuery 的 extend obj1 obj2 http api jquer
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • C++ 中的 include 和 using 命名空间

    用于使用cout 我需要指定两者 include
  • 当文件流没有新数据时如何防止fgets阻塞

    我有一个popen 执行的函数tail f sometextfile 只要文件流中有数据显然我就可以通过fgets 现在 如果没有新数据来自尾部 fgets 挂起 我试过ferror and feof 无济于事 我怎样才能确定fgets 当
  • C++ 中的参考文献

    我偶尔会在 StackOverflow 上看到代码 询问一些涉及函数的重载歧义 例如 void foo int param 我的问题是 为什么会出现这种情况 或者更确切地说 你什么时候会有 对参考的参考 这与普通的旧参考有何不同 我从未在现
  • 在OpenGL中,我可以在坐标(5, 5)处精确地绘制一个像素吗?

    我所说的 5 5 正是指第五行第五列 我发现使用屏幕坐标来绘制东西非常困难 OpenGL 中的所有坐标都是相对的 通常范围从 1 0 到 1 0 为什么阻止程序员使用屏幕坐标 窗口坐标如此严重 最简单的方法可能是通过以下方式设置投影以匹配渲
  • 从 mvc 控制器使用 Web api 控制器操作

    我有两个控制器 一个mvc控制器和一个api控制器 它们都在同一个项目中 HomeController Controller DataController ApiController 如果我想从 HomeController 中使用 Dat

随机推荐

  • Docker安装Elasticsearch

    Elasticsearch安装 ElasticSearch安装就相当于安装MySQL数据库 下载对应的镜像文件 docker pull elasticsearch 7 4 2 创建需要挂载的目录 mkdir p mydata elastic
  • ubuntu ARM下OpenCV的交叉编译

    OpenCV3 4 3编译安装 需求 环境及工具 利用cmake gui进行相关配置 1 cmake gui界面配置opencv 并生成Makefile 2 配置生成目标选项 3 配置编译器 4 指定编译内容 路径等配置 5 执行配置 生成
  • VS2015编译boost,并进行使用

    VS2015编译boost 并进行使用 1 到官网下载最新的boost www boost org 这里我下载的1 68版本 2 安装 解压后运行bootstrap bat文件 稍等一小会就OK 3 编译boost库 注意一定要使用VS20
  • 黑马jvm课程笔记d2

    目录 一 直接内存相关 1 1 定义 1 2 ByteBuffer 作用 1 3文件读写过程 1 3 直接内存溢出和释放 二 垃圾回收相关 2 1 判断是否可以回收 2 2 五种引用 编辑 2 2 1 软引用应用 2 2 2 弱引用应用 2
  • 【Linux-进程通信1】管道

    进程间通信介绍 进程间通信目的 在操作系统中 每个进程都是独立运行的 它们有自己的地址空间和资源 它们不能直接访问其他进程的资源 然而 在现代计算机系统中 很少有一个进程能够独立完成所有任务 因此需要不同的进程之间进行通信和协作 进程间通信
  • Linux中Ubuntu卡顿问题解决

    解决vmware虚拟机速度慢的3种方法 使用vmware虚拟操作系统的好处不用多说 但如果虚拟机运行速度十分缓慢 正常使用很卡的话是很痛苦的 本文介绍了3种提高虚拟机运行速度的方法 都是古意人实际操作过的方法 效果显著 推荐大家一试 1 给
  • 【复习】软考中级_软件设计师(2021)__上午

    前言 1 总想瞎bb点什么内容 2 自己复习的笔记 分享大家一起使用 3 可能有错误请指教 4 对于有些基础内容进行省略 5 适合等公交 摸鱼 无聊的时候观看 6 技术有限 哪里出错误了请指教 十分感谢 一 计算机组成与结构 数据的转换 1
  • 【C++ Primer 第五版】 目录-第Ⅰ部分

    序言和前言 第一章 开始 1 1 编解一个简单的C 程序 1 1 1 编译 运行程序 1 2 初识输入输出 1 3 注释简介 1 4 控制流 1 4 1 while 语句 1 4 2 for语句 1 4 3 读取数量不定的输入数据 1 4
  • 【Python】赋值、浅拷贝与深拷贝(附图解)

    Python 赋值 浅拷贝与深拷贝 附图解 Python的变量 可变对象与不可变对象 可变对象 不可变对象 赋值 浅拷贝与深拷贝的区别 可变对象的赋值 浅拷贝与深拷贝 赋值 浅拷贝 深拷贝 不可变对象的赋值 浅拷贝与深拷贝 结论 Pytho
  • xml文件修改后,git提交,变更列表中没有xml文件

    小编通过ctrl shift R找到需要修改的xml文件 修改后git提交 变更列表中没有 经过同事提醒 发现自己修改的是编译的xml文件 所以git提交 变更列表中没有xml文件 解决方法 找到Dao层下的xml文件进行修改 git提交变
  • matlab空间马尔可夫链式,基于MATLAB操作的马尔可夫链蒙特卡罗方法(MCMC)

    1 Sampling from Random Variables 4 1 1 Standard distributions 4 1 2 Sampling from non standard distributions 7 1 2 1 Inv
  • 边缘云与中心云_云与边缘的工业制造困境

    边缘云与中心云 Typically Deep Learning the subspecies of AI application that have gained the spotlight in the past few years th
  • *SVN从服务器新建本地库2021-10-18

    SVN从服务器新建本地库 1 如图打开版本库浏览器 2 在右侧空白处新建文件夹 3 选中文件夹右键检出 后续按照提示选择自己指定的本地文件夹位置即可 后面就可以跟服务器上传和下拉了
  • 20180726:Mac中文件.DS_store的隐藏与开启

    简介 DS store是存储文件夹属性的文件 1 开启 打开终端 键入命令 defaults write com apple finder AppleShowAllFiles YES defaults write com apple fin
  • ref 在 React 中的使用方法和说明

    react标签中ref的写法在 React 中 ref 属性用于引用组件中的某个元素或组件实例 以便在需要时对其进行操作 ref 属性的应用场景很多 比如直接访问 DOM 节点 管理 focus 状态 嵌套子组件等等 下面 我们来详细了解一
  • 递归求逆序

    Description 输入多行文字 输出其逆序 Input 多个文字 Output 其逆序 Sample Input 1 abcd wdwe Sample Output 1 ewdw dcba Hint int main recursiv
  • Qt5自定义状态栏QStatusBar外观(背景)和状态栏基本用法(显示普通消息、临时消息、永久消息)

    本文主要总结Qt状态栏QSatatuBar用法 通过继承状态栏 自定义状态栏背景图形 以及状态栏三种基本用法 状态栏类QStatusBar主要有显示普通消息 显示定时消息 显示永久消息三种功能 三种都十分常用 下面先总结自定义状态栏外观用法
  • 【JavaScript】正则表达式 VS 正规式

    在看JS之前没有怎么接触过正则表达式 只是知道有这么个东西 而在软考学习的时候 在编译原理这块有一个正规式 当时只知道这两个东西不是一个概念 具体哪里不同不太清楚 现在正好学到这里了 在此对比总结一下 一 正规式 一种表示正规集的工具 正规
  • 飞马D2000 激光雷达LVX数据文件解析

    解析出来的结果如下图
  • LVGL V9.0基于VS2022仿真搭建(2)

    完整Demo lvgl lvgl drivers相关资料下载 链接 https pan baidu com s 1h3OKCIBQRX0Hn7KjZsynqg 提取码 sc2l 下载的lv drivers中的win32drv c及win32