当前位置: 首页 > news >正文

LVGL V9.0基于VS2022仿真搭建

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

链接:https://pan.baidu.com/s/1DNJeHdoaPyfe1BsLb9wjRg
提取码:wov7

其它资料下载

链接: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                       101int 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

在这里插入图片描述

编译运行,运行结果如下

在这里插入图片描述

相关文章:

LVGL V9.0基于VS2022仿真搭建

完整Demo&#xff0c;lvgl,lvgl_drivers相关资料下载 链接&#xff1a;https://pan.baidu.com/s/1DNJeHdoaPyfe1BsLb9wjRg 提取码&#xff1a;wov7 其它资料下载 链接&#xff1a;https://pan.baidu.com/s/1nV9jojPEPWSWZdYhaCZWTA 提取码&#xff1a;91j8 下载资料后解压文…...

多线程面试题开胃菜2(5道)

一.一个线程的生命周期有哪几种状态&#xff1f;它们之间如何流转的&#xff1f;NEW&#xff1a;毫无疑问表示的是刚创建的线程&#xff0c;还没有开始启动。RUNNABLE: 表示线程已经触发 start()方式调用&#xff0c;线程正式启动&#xff0c;线程处于运行中状态。BLOCKED&…...

第三次作业

一、单表查询素材&#xff1a; 表名&#xff1a;worker-- 表中字段均为中文&#xff0c;比如 部门号 工资 职工号 参加工作 等CREATE TABLE worker (部门号 int(11) NOT NULL,职工号 int(11) NOT NULL,工作时间 date NOT NULL,工资 float(8,2) NOT NULL,政治面貌 varchar(10) N…...

基础算法(直接插入,希尔排序,快排,归并,折半查找)

/*直接插入&#xff1a;把待排序序列分为有无序区和和无序区&#xff0c;使用无序区的数据一次插入倒有序区中&#xff0c;最终结果尾有序序列 1> 把数据分为有序区和无序区&#xff0c;默认第一个元素在有序区&#xff0c;剩下在无序区 2> 外层循环&#xff0c;循环无…...

电子学会2022年12月青少年软件编程(图形化)等级考试试卷(一级)答案解析

目录 一、单选题(共25题&#xff0c;共50分) 二、判断题(共10题&#xff0c;共20分) 三、编程题(共2题&#xff0c;共30分) 青少年软件编程&#xff08;图形化&#xff09;等级考试试卷&#xff08;一级&#xff09; 一、单选题(共25题&#xff0c;共50分) 1. 小明想在开始…...

基于JAVA的超级玛丽设计与实现

技术&#xff1a;Java等摘要&#xff1a;随着计算机技术及网络技术的不断发展&#xff0c;电子游戏越来越普及。经典游戏“超级玛丽”因其本身所具有的娱乐性与教育意义而被人们广泛接受&#xff0c;在广大的青少年玩家中享有极高的知名度。Java语言作为一种完全面向对象的程序…...

硬件工程师入门基础知识(一)基础元器件认识(二)

硬件工程师入门基础知识 &#xff08;一&#xff09;基础元器件认识&#xff08;二&#xff09; tips&#xff1a;学习资料和数据来自《硬件工程师炼成之路》、百度百科、网上资料。 1.二极管 2.三极管 3.MOS管 4.IGBT 5.晶振 1.二极管 肖特基二极管和硅二极管的比较&#…...

Python-项目实战--贪吃蛇小游戏-游戏框架搭建(2)

1.游戏框架搭建介绍pygame开发图像界面游戏的几个要素&#xff0c;并且把贪吃蛇游戏的整体框架搭建完成本节知识点包括&#xff1a;pygame的初始化和退出游戏主窗口游戏循环和游戏时钟主窗口背景颜色绘制文本pygame的坐标系游戏事件监听绘制图形定时器事件1.1pygame的初始化和退…...

JVM基础

JVM基础 1.JVM的位置 JVM是运行在操作系统之上的&#xff0c;它与硬件没有直接的交互 2.JVM体系结构图 这个区域一定不会有垃圾回收 所谓JVM的调优&#xff0c;其实就是在调这个区域&#xff0c;而且99%情况下都在调堆 ! 3.类加载器ClassLoader 先来看看一个类加载到 JVM 的…...

Android 内存优化(基础轮)必看~

本次分享主要分为五个部分内容&#xff0c;第一部分内容是 5W2H 分析内存优化&#xff0c;第二部分内容是内存管理机制&#xff0c;第三部分内容是内存优化 SOP&#xff0c;第四部分内容是 内存优化指导原则&#xff0c; 最后一部分内容是总结与展望。 如果学完内存优化的基础论…...

STM32单片机GSM短信自动存取快递柜

实践制作DIY- GC0104-自动存取快递柜 一、功能说明&#xff1a; 基于STM32单片机设计-自动存取快递柜 二、功能介绍&#xff1a; STM32F103C系列最小系统板0.96寸OLED显示器DY-SV17F串口语音播报模块4*4矩阵键盘GSM短信模块4路舵机&#xff08;模拟4个柜子&#xff09; ***…...

力扣(LeetCode)410. 分割数组的最大值(2023.02.12)

给定一个非负整数数组 nums 和一个整数 m &#xff0c;你需要将这个数组分成 m 个非空的连续子数组。 设计一个算法使得这 m 个子数组各自和的最大值最小。 示例 1&#xff1a; 输入&#xff1a;nums [7,2,5,10,8], m 2 输出&#xff1a;18 解释&#xff1a; 一共有四种方法…...

管理还原数据

还原数据还原数据是&#xff1a;• 原始的、修改之前的数据副本• 针对更改数据的每个事务处理而捕获• 至少保留到事务处理结束• 用于支持&#xff1a;– 回退操作– 读取一致性查询– Oracle 闪回查询、Oracle 闪回事务处理和 Oracle 闪回表– 从失败的事务处理中进行恢复存…...

c的关键字有那些

编程语言中的关键字 C语言简洁、紧凑&#xff0c;使用方便、灵活。ANSI C标准C语言共有32个关键字&#xff0c;9种控制语句&#xff0c;程序书写形式自由&#xff0c;区分大小写。把高级语言的基本结构和语句与低级语言的实用性结合起来。 C 语言可以像汇编语言一样对位、字节和…...

链表OJ(一)

目录 从尾到头打印链表_牛客题霸_牛客网 160. 相交链表 141. 环形链表 142. 环形链表 II 138. 复制带随机指针的链表 从尾到头打印链表_牛客题霸_牛客网 输入一个链表的头节点&#xff0c;按链表从尾到头的顺序返回每个节点的值&#xff08;用数组返回&#xff09;。 如输入…...

MySQL第三次作业

1、显示所有职工的基本信息。 2、查询所有职工所属部门的部门号&#xff0c;不显示重复的部门号。 3、求出所有职工的人数。 4、列出最高工和最低工资。 5、列出职工的平均工资和总工资。 6、创建一个只有职工号、姓名和参加工作的新表&#xff0c;名为工作日期表…...

Python中的类和对象(7)

1.私有变量 在大多数面向对象的编程语言中&#xff0c;都存在着私有变量&#xff08;private variable&#xff09;的概念&#xff0c;所谓私有变量&#xff0c;就是指通过某种手段&#xff0c;使得对象中的属性或方法无法被外部所访问。 Python 对于私有变量的实现是引入了一…...

【JVM】7种经典的垃圾收集器

文章目录1. 垃圾收集器概述2. Serial 收集器3. ParNew 收集器4. Paraller Scavenge 收集器5. Serial Old收集器6. Parller Old收集器7. CMS 收集器8. Garbage First 收集器本文参考&#xff1a;深入理解Java虚拟机&#xff1a;JVM高级特性与最佳实践&#xff08;第3版&#xff…...

2023/2/12总结

滑动窗口&#xff08;1&#xff09;滑动窗口是一种基于双指针的思想&#xff0c;两个指针指向的元素形成一个窗口。一般用于求取数组或字符串的某个子串、子序列、最长最短等最值或者求某个目标值时&#xff0c;并且该问题本身可以通过暴力解决。滑动窗口分为固定窗口和不定窗口…...

Linux之正则表达式

正则表达式是组成“操作”的基本语法&#xff0c;而这些“操作”是应用于Sed和Awk必备的能力。因此只有了解了正则表达式&#xff0c;才能学好Sed和Awk。正则表达式分为基础正则表达式&#xff08;Regular Expression&#xff09;与扩展正则表达式&#xff08;Extended Regular…...

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

用机器学习破解新能源领域的“弃风”难题

音乐发烧友深有体会&#xff0c;玩音乐的本质就是玩电网。火电声音偏暖&#xff0c;水电偏冷&#xff0c;风电偏空旷。至于太阳能发的电&#xff0c;则略显朦胧和单薄。 不知你是否有感觉&#xff0c;近两年家里的音响声音越来越冷&#xff0c;听起来越来越单薄&#xff1f; —…...

【C++特殊工具与技术】优化内存分配(一):C++中的内存分配

目录 一、C 内存的基本概念​ 1.1 内存的物理与逻辑结构​ 1.2 C 程序的内存区域划分​ 二、栈内存分配​ 2.1 栈内存的特点​ 2.2 栈内存分配示例​ 三、堆内存分配​ 3.1 new和delete操作符​ 4.2 内存泄漏与悬空指针问题​ 4.3 new和delete的重载​ 四、智能指针…...

c++第七天 继承与派生2

这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分&#xff1a;派生类构造函数与析构函数 当创建一个派生类对象时&#xff0c;基类成员是如何初始化的&#xff1f; 1.当派生类对象创建的时候&#xff0c;基类成员的初始化顺序 …...

elementUI点击浏览table所选行数据查看文档

项目场景&#xff1a; table按照要求特定的数据变成按钮可以点击 解决方案&#xff1a; <el-table-columnprop"mlname"label"名称"align"center"width"180"><template slot-scope"scope"><el-buttonv-if&qu…...

华为OD最新机试真题-数组组成的最小数字-OD统一考试(B卷)

题目描述 给定一个整型数组,请从该数组中选择3个元素 组成最小数字并输出 (如果数组长度小于3,则选择数组中所有元素来组成最小数字)。 输入描述 行用半角逗号分割的字符串记录的整型数组,0<数组长度<= 100,0<整数的取值范围<= 10000。 输出描述 由3个元素组成…...

ubuntu22.04有线网络无法连接,图标也没了

今天突然无法有线网络无法连接任何设备&#xff0c;并且图标都没了 错误案例 往上一顿搜索&#xff0c;试了很多博客都不行&#xff0c;比如 Ubuntu22.04右上角网络图标消失 最后解决的办法 下载网卡驱动&#xff0c;重新安装 操作步骤 查看自己网卡的型号 lspci | gre…...

小木的算法日记-多叉树的递归/层序遍历

&#x1f332; 从二叉树到森林&#xff1a;一文彻底搞懂多叉树遍历的艺术 &#x1f680; 引言 你好&#xff0c;未来的算法大神&#xff01; 在数据结构的世界里&#xff0c;“树”无疑是最核心、最迷人的概念之一。我们中的大多数人都是从 二叉树 开始入门的&#xff0c;它…...

【Linux】Linux安装并配置RabbitMQ

目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的&#xff0c;需要先安…...

Vue3中的computer和watch

computed的写法 在页面中 <div>{{ calcNumber }}</div>script中 写法1 常用 import { computed, ref } from vue; let price ref(100);const priceAdd () > { //函数方法 price 1price.value ; }//计算属性 let calcNumber computed(() > {return ${p…...