zl程序教程

您现在的位置是:首页 >  其它

当前栏目

搭建LVGL V8版本PC VS2019仿真工程

搭建 版本 工程 仿真 PC V8 LVGL vs2019
2023-09-14 09:11:17 时间

下载lvgl,lvgl_drives,lvgl_demos相关文件

点击下载
提取码:hmry

新建一个文件夹lvgl_v8_similator_vs2019,再在此文件目录下创建一个VS2019控制台工程

在这里插入图片描述

选择控制台应用,点击下一步

在这里插入图片描述

工程名输入lvgl_similator,路径选择到lvgl_v8_similator_vs2019目录,最后点击创建

在这里插入图片描述

在lvgl_similator文件夹下创建一个文件夹lvgl_folder

在这里插入图片描述
将下载的lvgl,lvgl_drivers,lvgl_demos分别解压到lvgl_v8_similator_vs2019\lvgl_similator\lvgl_folder目录下
在这里插入图片描述

在lvgl_similator工程下分别创建lvgl,lvgl_drivers,lvgl_demos项,并分别加入lvgl,lvgl_driver,lvgl_demoes目录下所有文件到工程

在这里插入图片描述
将lvgl_similator_v8_vs2019\lvgl_similator\lvgl_folder\lv_drivers目录下的lv_drv_conf_template.h文件复制到上一级目录,并重命名为lv_drv_conf.h,将lvgl_v8_similator_vs2019\lvgl_similator\lvgl_folder\lv_demos目录下的lv_demo_conf_template.h文件复制上一级目录,并重命名为lv_demo_conf.h,将lvgl_v8_similator_vs2019\lvgl_similator\lvgl_folder\lvgl目录下的lv_conf_template.h文件复制到上一级目录,并重命名为lv_conf.h
在这里插入图片描述

分别将lv_conf.h,lv_drv_conf.h,lv_demo_conf.h中的#if 0 改成#if 1

在这里插入图片描述

将lvgl_similator.cpp中更换成以下内容


#include <Windows.h>


#if _MSC_VER >= 1200
// Disable compilation warnings.
#pragma warning(push)
// nonstandard extension used : bit field types other than int
#pragma warning(disable:4214)
// 'conversion' conversion from 'type1' to 'type2', possible loss of data
#pragma warning(disable:4244)
#endif

#define IDI_LVGL                       101

#include "lvgl/lvgl.h"
#include "lvgl/examples/lv_examples.h"
#include "lv_demos/lv_demo.h"
#include "lv_drivers/win32drv/win32drv.h"

#if _MSC_VER >= 1200
// Restore compilation warnings.
#pragma warning(pop)
#endif


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++预处理器中增加如下内容

_CRT_SECURE_NO_WARNINGS
UNICODE

在这里插入图片描述

在C++附加包含目录中新增加入以下路径

在这里插入图片描述

在lv_drv_conf.h中打开以下宏

#ifndef USE_WIN32DRV
#  define USE_WIN32DRV       1
#endif

在这里插入图片描述

将lvgl,lv_drivers,lv_demos包含到工程中

在这里插入图片描述

将lv_demo_conf.h中内容修改成如下

/**
 * @file lv_demo_conf.h
 * Configuration file for v8.1.0-dev
 *
 */
/*
 * COPY THIS FILE AS lv_demo_conf.h
 */

#if 1 /*Set it to "1" to enable the content*/

#ifndef LV_DEMO_CONF_H
#define LV_DEMO_CONF_H


/*******************
 * GENERAL SETTING
 *******************/
#define LV_EX_PRINTF       1       /*Enable printf-ing data in demoes and examples*/
#define LV_EX_KEYBOARD     1       /*Add PC keyboard support to some examples (`lv_drivers` repository is required)*/
#define LV_EX_MOUSEWHEEL   1       /*Add 'encoder' (mouse wheel) support to some examples (`lv_drivers` repository is required)*/

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

/*Show some widget*/
#define LV_USE_DEMO_WIDGETS        1
#if LV_USE_DEMO_WIDGETS
#define LV_DEMO_WIDGETS_SLIDESHOW  1
#endif

/*Printer demo, optimized for 800x480*/
#define LV_USE_DEMO_PRINTER     1

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

#define LV_USE_COMPONENT_EXAMPLES   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

#endif /*LV_DEMO_CONF_H*/

#endif /*End of "Content enable"*/


修改lv_conf.h中的内容

#  define LV_MEM_SIZE    (1024U * 1024U)          /*[bytes]*/

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

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

/*Enable the log module*/
#define LV_USE_LOG      1
#if LV_USE_LOG
/*1: Show CPU usage and FPS count in the right bottom corner*/
#define LV_USE_PERF_MONITOR     1

/*1: Show the used memory and the memory fragmentation  in the left bottom corner
 * Requires LV_MEM_CUSTOM = 0*/
#define LV_USE_MEM_MONITOR      1

编译运行,效果图如下

在这里插入图片描述

DEMO下载

点击下载