HMI-Board之LVGL應用

来源:https://www.cnblogs.com/hywing/p/18231870
-Advertisement-
Play Games

移植 使用預設模板工程新建一個RT-Thread項目,BSP版本為1.1.1 打開RT-Thread Settings,點擊右側箭頭按鈕進入詳細頁,在硬體欄開啟以下幾個配置選項(LCD、觸摸屏、demo) 此時,打開board文件夾,發現下麵會有一個lvgl的目錄,package目錄下會有LVGL和 ...


移植

使用預設模板工程新建一個RT-Thread項目,BSP版本為1.1.1

image

打開RT-Thread Settings,點擊右側箭頭按鈕進入詳細頁,在硬體欄開啟以下幾個配置選項(LCD、觸摸屏、demo)

image

此時,打開board文件夾,發現下麵會有一個lvgl的目錄,package目錄下會有LVGL和lv-music兩個目錄,如果沒有請檢查上一步有沒有漏掉的步驟

image

編譯、下載程式進行發現開發板已經運行lv-music-demo程式

image

界面定製

接下來安裝SquareLine Studio,定製自己的lvgl界面,我這裡下載的是SquareLine_Studio_1.3.3_Setup.exe,一路預設安裝就可以了

image

安裝完需要登錄賬號才能使用,沒有賬戶的請註冊一下

image

選擇Create下的NuMaker-HMI-M467項目,然後CREATE

image

這個工程自帶Sreen,先隨意拖幾個控制項到Screen1上面

image

導出ui文件到指定文件夾lvgl-demo,生成源代碼文件:Export -> Export UI Files

image

生成的源代碼文件如下

image

拷貝上面的文件夾到lvgl工程的目錄packages\lv_music_demo-v0.3.4下麵

image

把lv_demo_music函數改一下改成下麵

/**
 * @file lv_demo_music.c
 *
 */

/*********************
 *      INCLUDES
 *********************/


#include "lv_demo_rtt_music.h"
#include "lvgl-demo/ui.h"

#if LV_USE_DEMO_RTT_MUSIC
void lv_demo_music(void)
{
    ui_init();
}
#endif /*LV_USE_DEMO_RTT_MUSIC*/

先清理一下工程,然後再重新構建,沒有問題的話lvgl-demo的文件夾會被加到工程目錄中去

image

Ctrl + F5啟動調試,編譯下載程式後,自定義的界面已經可以在開發板上面顯示

image

源碼分析

用調試器抓一下lvgl的啟動過程,基本分為以下幾個步驟

INIT_ENV_EXPORT :lvgl線程介面作為初始化環境被系統調用

lvgl_thread_init:lvgl線程初始化

lvgl_thread_entry:啟動GUI線程,這裡會設置一些跟顯示屏相關的參數(解析度、彩色位數等)

lv_init();

lv_port_disp_init();

lv_port_indev_init();

lv_user_gui_init();

lv_user_gui_init:自定義用戶代碼,最終會調用到ui_init


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 最近在項目中,業務上需要與Python進行交互,而Python程式用的配置文件主要是YAML,程式以命令行形式運行,前端頁面由C#通過WPF開發完成。現在需要通過C#生成YAML配置文件,並經過Python讀取和修改後,再次由C#進行讀取。在C#開發程式中,主要用的配置文件主要是XML,JSON,I... ...
  • 一:背景 1. 講故事 前些天有位朋友找到我,說他的軟體在客戶那邊不知道什麼原因崩掉了,從windows事件日誌看崩潰在 clr 里,讓我能否幫忙定位下,dump 也抓到了,既然dump有了,接下來就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼崩潰在 clr 一般來說崩潰在clr ...
  • 問題 對於驗證複雜JSON數據是否合法的需求,通常的解決方式是標準JSON Schema,.Net下有對應的JSON Schema實現庫。應用程式通常需要將標準JSON schema傳入實現庫,來做後續的數據驗證。這裡有一種情況,就是如果使用者不太瞭解標準JSON Schema格式,但又希望能在自己 ...
  • 寫了個盯盤小工具,最近發現很多炒股的小伙伴,上班期間看手機頻繁是不是影響不好?電腦上打開交易軟體,那影響是不是更不好?所以我就寫了個小工具,給大家“摸魚”用。雖然是摸魚用,但是平常丟一邊,或者你自己改造下代碼,寫個死迴圈在控制台裡面刷新等等,或者輸出到VS的輸出欄裡面等等,都行,也不會影響你工作,還 ...
  • 前言:最近幾天有好幾個小伙伴玩WPF,遇到不同頁面,不知道要怎麼傳遞消息。於是,我今天就來演示一個事件聚合器的玩法,採用prism框架來實現。作為福利,內容附帶了主頁面打開對話框時候直接通過參數傳遞消息的一個小例子,具體請自行圍觀。 以下內容,創建wpf項目以及引用prism和實現依賴註入等細節,可 ...
  • 本文分享自天翼雲開發者社區《linux各個目錄的作用》,作者:技術小白 /bin/:存放系統命令的目錄,普通用戶和超級用戶都可以執行,不過放在/bin下的命令在單用戶模式下也可以執行; /sbin/:保存和系統環境設置相關的命令,只有超級用戶可以使用這些命令進行系統環境設置,但是有些命令可以允許普通 ...
  • 目錄傳輸控制協議(TCP)TCP協議 的特點TCP協議的可靠性TCP的連接機制 傳輸控制協議(TCP) 傳輸控制協議(TCP)用於作為包交換電腦通信網路中的主機以及此類網路的互連繫統中的高度可靠的主機對主機協議。 TCP協議 的特點 TCP協議是面向連接的,端到端可靠的協議,該協議被設計適應支持多 ...
  • 目錄題目一解析代碼實現題目二:解析代碼實現tcp_client.ctcp_server.c 題目一 設計程式實現解析www.baidu.com的功能變數名稱,把獲取到的百度的IP地址全部輸出到終端並驗證是否正確。 解析 主機打算響應某個網站的網路請求,但是只知道網站功能變數名稱是無法通信的,需要對功能變數名稱進行地址解析, ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...