天天看點

LVGL WIN32模拟器環境搭建LVGL簡介環境搭建

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++桌面開發,其他的如果不需要暫時可以不選

LVGL WIN32模拟器環境搭建LVGL簡介環境搭建

2、必要的元件安裝,LVGL的支援的visual studio PC模拟器是根據Vs2019的生成工具生成,需要把VS2019的工具集安裝上

LVGL WIN32模拟器環境搭建LVGL簡介環境搭建

模拟器代碼下載下傳

LVGL官網介紹的LVGL所支援的PC模拟器:

LVGL WIN32模拟器環境搭建LVGL簡介環境搭建

1、進入倉庫後我們就直接點選Code下載下傳第一個PC模拟器檔案

LVGL WIN32模拟器環境搭建LVGL簡介環境搭建

2、進入LVGL.LvglPlatform檔案分别點選下面三個檔案夾去裡面下載下傳對應的裡面的源碼

  • freetype
  • lv_drivers
  • lvgl
    LVGL WIN32模拟器環境搭建LVGL簡介環境搭建

PC模拟器搭建

  • 解壓lv_port_win_visual_studio-master壓縮包
    LVGL WIN32模拟器環境搭建LVGL簡介環境搭建
  • LVGL.LvglPlatform檔案夾下載下傳中的freetype、lv_drivers、lvgl 檔案,解壓并複制到對應的檔案夾中。
    LVGL WIN32模拟器環境搭建LVGL簡介環境搭建
    LVGL WIN32模拟器環境搭建LVGL簡介環境搭建
    LVGL WIN32模拟器環境搭建LVGL簡介環境搭建
  • 檔案全部複制完成之後就可以直接打開啟動檔案啟動Visual studio
    LVGL WIN32模拟器環境搭建LVGL簡介環境搭建
  • VS2019的工具集選擇
    LVGL WIN32模拟器環境搭建LVGL簡介環境搭建
  • 右鍵選擇工程,點選生成開始編譯, 編譯通過後選擇本地調試器開始運作,能夠加載出官方執行個體就證明移植成功了。
    LVGL WIN32模拟器環境搭建LVGL簡介環境搭建
    LVGL WIN32模拟器環境搭建LVGL簡介環境搭建

其他配置項說明

1、debug log 等級修改

在LVGL.Simulator/lv_conf.h中,修改LV_USE_LOG 選擇開不開起debug log, 修改LV_LOG_LEVEL 選擇 debug log的開啟等級,如圖

LVGL WIN32模拟器環境搭建LVGL簡介環境搭建

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