LVGL V8.2.0基于VS2022仿真搭建

搭建前资料下载

链接:https://pan.baidu.com/s/1nV9jojPEPWSWZdYhaCZWTA
提取码:91j8
在这里插入图片描述

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

在这里插入图片描述

打开VS2022,点击创建新项目

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

将下载的lv_demos-master,lv_drivers-master,lvgl-master三个文件夹复制到lvgl_folder文件中,并分别命名为lv_demos,lv_drivers,lvgl,然后分别将其里面的文件分别移动到其对应的目录下

在这里插入图片描述

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

在这里插入图片描述

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

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

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

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

点击显示所有文件

在这里插入图片描述

分别将lvgl,lvgl_drivers,lvgl_demos,lv_conf.h,lv_drv_conf.h,lv_demo_conf.h含到项目中

在这里插入图片描述

将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

将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
  • 将demo相关例程宏设为1

/*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

/*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

点击项目菜单,点击属性

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

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

#include "lvgl/lvgl.h"
#include "lvgl/examples/lv_examples.h"
#include "lv_demos/lv_demo.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_widgets();

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

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

在这里插入图片描述

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

_DEBUG
_CRT_SECURE_NO_WARNINGS
UNICODE

在这里插入图片描述

编译工程,有以下错误

在这里插入图片描述

双击跳转到错误,使用成员draw_ctx替换所有出错的clip_area后再次编译,出现如下错误

在这里插入图片描述

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

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

在这里插入图片描述

再次编译运行,运行结果如下

在这里插入图片描述
Demo下载
提取码:b6cy
在这里插入图片描述

  • 9
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论
### 回答1: VS2017是微软的继承自VS2015的一款集成开发环境,主要用于开发Windows应用程序和ASP.NET网站。LVGL (LittlevGL) 是一款开源的嵌入式图形库,适用于各种嵌入式平台,包括单片机、Linux和RTOS等。 虽然VS2017主要是用于开发Windows应用程序,但它同样支持C/C++语言开发。因此,理论上来讲,VS2017是可以运行LVGL的。但要注意的是,LVGL是一个跨平台的库,它需要在具体的嵌入式平台上进行编译、链接和运行。 如果你想在VS2017上运行LVGL,你需要先将LVGL的源代码添加到你的项目中,并确保项目的构建设置正确,包括正确的编译器选项、库路径和依赖项配置。另外,你可能还需要对LVGL进行适当的配置和定制,以使其适用于你的目标平台和应用需求。 总的来说,VS2017是可以用来开发和运行LVGL的,但要注意适配和配置的问题,根据目标平台的要求进行相应的设置和调整。 ### 回答2: 是的,VS2017可以运行LVGLLV Graphics Library)。LVGL是一个开源的GUI库,它提供了丰富的图形界面功能,适用于嵌入式系统和其他应用程序。VS2017是一种集成开发环境(IDE),它可以用于C和C++的开发,因此可以用来开发和运行LVGL。为了在VS2017中使用LVGL,您需要将LVGL的源代码添加到您的项目中,并正确地配置和初始化它。您也可以使用LVGL的预编译库版本,以便更方便地集成到您的项目中。在VS2017中,您可以使用LVGL的API来创建和管理窗口、文本、按钮、图像等UI元素,以及处理用户输入和响应事件。在编译和运行您的项目时,需要确保正确设置和链接LVGL库和相关依赖项。总之,VS2017可以很好地与LVGL一起使用,使您能够开发出功能强大的图形界面应用程序。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风雨依依

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值