LVGL常用功能備忘

概述

本文選用LVGL 8.3版本

8.3版本實測幀率比起9版本高,多個GUI工具支持

相關鏈接

LVGL官網 https://lvgl.io/

LVGL 文檔 https://docs.lvgl.io/8.3/

LVGL倉庫 https://github.com/lvgl

LVGL移植

獲取源碼

https://github.com/lvgl/lvgl/tree/release/v8.3

下載文件即可

image-20250320150540083

文件解析

需要源碼中這幾個文件

demos 是示例文件

examples 主要是里面的接口文件

src 是源碼文件

兩個頭文件

image-20250320152325529

文件處理

examples

只留下porting一個文件夾

porting 內文件 _template 后綴去掉

image-20250320153554800

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

lv_conf_template.h去掉 _template

image-20250320154036172

更改后文件

image-20250320154133626

加入文件

將所有src中的c文件加入keil中

我這里分為3個文件組

LVGL_src 存放源碼c文件

LVGL_conf存放LVGL設置文件

LVGL_GUI存放自己的GUI文件

image-20250320160736471

腳本加入方法

文件太多了,每個文件夾都要加入比較麻煩

這里使用個python腳本來快速加入

import osfile_lst = []def print_dir_files(file_path):global file_lstfor file_path, sub_dirs, filenames in os.walk(file_path):if filenames:# 如果是文件,則加append到list中for filename in filenames:file_lst.append(os.path.join(file_path, filename))for sub_dir in sub_dirs:# 如果是目錄,則遞歸調用該函數print_dir_files(sub_dir)if __name__ == '__main__':print_dir_files(r"C:\Users\HZ12138\Desktop\LVGL\src")#這里寫src文件的絕對目錄for file_lst_item in file_lst:zj = os.path.relpath(file_lst_item, r"C:\Users\HZ12138\Desktop\test")#這里寫要相對路徑的基位置file_name=zj.split("\\")[-1]if file_name[-1:]=='c':a=r"""<File><FileName>"""+file_name+"""</FileName><FileType>1</FileType><FilePath>"""+zj+"""</FilePath></File>"""print(a)

可得到類似這樣的內容輸出

image-20250320161629077

建議先加入個文件實驗下相對路徑位置,之后再使用腳本

將MDK文件用文本打開

搜索LVGL_src名稱

再文件目錄下添加剛才輸出的內容即可

image-20250320162522788

image-20250320162628922

image-20250320162640725

配置文件

lvgl.h lvgl_conf.h 還有\examples\porting下的文件加入LVGL_conf

image-20250320163131723

lvgl.h所在目錄 src \examples\porting加入頭文件目錄

image-20250320163720709

image-20250320163558349

Keil設置

打開O3優化和 時間優化 啟用c99標準

屏蔽警告(Misc Controls)中加入

--diag_suppress=68,111,188,223,546,1295  --locale=english

image-20250320165606000

Linker 中加入屏蔽警告代碼

--diag_suppress=L6314W,L6329W

image-20250320170254851

LVGL模擬器

下載安裝

使用VS2022構建LVGL模擬器,VS2022安裝請自行解決

模擬器地址

https://github.com/lvgl/lv_port_pc_visual_studio

注意請使用工具從git下克隆指定分支,不要直接下載,直接git克隆會默認最高版本

這里使用 Sourcetree 軟件

如下設置,選則版本,選擇遞歸子模塊

image-20250320174434444

打開文件運行這個文件即可

image-20250320175040754

image-20250320175105188

更改分辨率

修改 single_display_mode_initialization函數里參數即可

800->長

480->高

image-20250321112336455

LVGL GUI工具

安裝

使用 SquareLine Studio 直接從官網下載即可 有免費版本,正常注冊即可

https://squareline.io/downloads#lastRelease

建立工程

設置下分辨率 顏色寬度 LVGL版本即可

image-20250321112619508

導出

導出文件

image-20250321112708800

image-20250321112742937

image-20250321112811245

使用

將上述的所有 C H 文件加入

添加ui.h所在的頭文件目錄

image-20250321112903585

導入ui.h

#include"ui.h"

調用ui_init();即可

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/73093.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/73093.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/73093.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

k8s搭建kube-prometheus

后續再補一個k8s集群搭建的博客&#xff0c;從0開始搭建k8s集群。使用kube-prometheus非常方便&#xff0c;主要問題只在于拉取鏡像。除了拉取鏡像外其他時間5分鐘即可。耐心等待拉取鏡像。 一.kube-prometheus簡介 kube-prometheus 是一個專為 Kubernetes 設計的開源監控解決…

uni-app——數據緩存API

數據緩存API 在 uni-app 開發中&#xff0c;數據緩存 API 起著重要作用&#xff0c;它能夠將需要的數據保存到本地&#xff0c;同時也提供了獲取本地緩存數據、移除緩存數據以及清理緩存數據的功能。在實際項目里&#xff0c;數據緩存 API 常被用于存儲會員登錄狀態信息、購物…

突破時空邊界:Java實時流處理中窗口操作與時間語義的深度重構

一、流處理范式的革命性演進 在數字化浪潮的推動下&#xff0c;數據處理范式正經歷著從批量到實時的根本性轉變。這種轉變不僅改變了數據處理的時效性特征&#xff0c;更重新定義了時間維度在計算模型中的戰略地位。Apache Flink的統計數據顯示&#xff0c;現代流處理系統每秒…

【2025 深圳大學-騰訊云程序設計競賽(熱身賽)】題解

比賽鏈接 A. Cloud Studio的共享連接 題目大意 && Solution 給定 T T T 組長度均為 12 12 12 的字符串 s s s。 對每個 s s s&#xff0c;將其按從左到右的順序兩兩分組形成 6 6 6 個 A S C I I \rm{ASCII} ASCII 碼&#xff0c;對這 6 6 6 個 A S C I I \…

APScheduler - 用戶指南

本文翻譯整理自&#xff1a;https://apscheduler.readthedocs.io/en/3.x/userguide.html 文章目錄 一、安裝 APScheduler二、代碼示例三、基本概念四、選擇合適的 scheduler, job store(s), executor(s) and trigger(s)五、配置調度器方法 1:方法 2:方法 3: 六、啟動調度器七、…

vue3:十一、主頁面布局(優化頁面跳轉方式)

:router"true" 一、參考文章 vue3:十一、主頁面布局(實現基本左側菜單右側內容效果)-CSDN博客 參考上述文章可知&#xff0c;頁面跳轉是通過在js中定義的菜單中攜帶的path&#xff0c;然后通過菜單的點擊事件完成的跳轉&#xff0c;現在可以進行優化&#xff0c;直…

每日一題--C與C++的差別

C與C的差別 1. 編程范式 C 純 過程式編程語言&#xff0c;強調函數和結構化編程。 代碼通過函數和順序步驟組織&#xff0c;適合底層系統開發。 C 支持 多范式編程&#xff1a; 過程式編程 面向對象編程&#xff08;OOP&#xff09;&#xff08;類、繼承、多態&#xff09; …

Etcd 服務搭建

&#x1f4a2;歡迎來到張胤塵的開源技術站 &#x1f4a5;開源如江河&#xff0c;匯聚眾志成。代碼似星辰&#xff0c;照亮行征程。開源精神長&#xff0c;傳承永不忘。攜手共前行&#xff0c;未來更輝煌&#x1f4a5; 文章目錄 Etcd 服務搭建預編譯的二進制文件安裝下載 etcd 的…

玩轉C#函數:參數、返回值與游戲中的攻擊邏輯封裝

Langchain系列文章目錄 01-玩轉LangChain&#xff1a;從模型調用到Prompt模板與輸出解析的完整指南 02-玩轉 LangChain Memory 模塊&#xff1a;四種記憶類型詳解及應用場景全覆蓋 03-全面掌握 LangChain&#xff1a;從核心鏈條構建到動態任務分配的實戰指南 04-玩轉 LangChai…

WebRTC建立Description的通信的實際的原理

一、正確流程的核心邏輯 // 發送端正確代碼示例 const senderPC new RTCPeerConnection();// 生成Offer時立即開始收集候選 ? senderPC.createOffer().then(offer > {await senderPC.setLocalDescription(offer); // 觸發icecandidate事件sendToReceiver(offer); });// …

EmbodiedSAM:在線實時3D實例分割,利用視覺基礎模型實現高效場景理解

2025-02-12&#xff0c;由清華大學和南洋理工大學的研究團隊開發 一種名為 EmbodiedSAM&#xff08;ESAM&#xff09;的在線3D實例分割框架。該框架利用2D視覺基礎模型輔助實時3D場景理解&#xff0c;解決了高質量3D數據稀缺的難題&#xff0c;為機器人導航、操作等任務提供了高…

信創-人大金倉數據庫創建

一. 官文 資源下載地址 https://download.kingbase.com.cn/xzzx/index.htm 下載安裝文件 下載授權文件 產品文檔地址&#xff1a;https://help.kingbase.com.cn/v8/index.html 二. 概念 2.1 體系結構 ? 實例結構 ?&#xff1a;由數據庫文件和 KingbaseES 實例組成。數據…

C++第三種異質集合 std::any方式實現

#include <type_traits> #include <any> #include <functional> #include <iomanip> #include <iostream> #include <typeindex> #include <typeinfo> #include <unordered_map> #include <vector> //any是編譯期的異質…

Springboot實現使用斷點續傳優化同步導入Excel

springboot實現使用斷點續傳優化同步導入Excel 需求前言斷點續傳前端實現后端實現完結撒花&#xff0c;如有需要收藏的看官&#xff0c;順便也用發財的小手點點贊哈&#xff0c;如有錯漏&#xff0c;也歡迎各位在評論區評論&#xff01; 需求前言 在跨境電商系統中&#xff0c…

mysql 對json的處理?

MySQL從5.7版本開始支持JSON數據類型&#xff0c;并提供了多種函數來查詢和處理JSON數據。以下是一些基本的操作和函數&#xff1a; 創建包含JSON列的表&#xff1a; 可以直接在表定義中指定某列為JSON類型。 CREATE TABLE my_table (id INT NOT NULL AUTO_INCREMENT,data JSON…

Nexus L2 L3基本配置

接口基本配置 N7K上所有端口默認處于shutdown狀態; N5K上所有端口默認處于no shutdown狀態(所有端口都是switchport) 默認所有接口都是三層route模式, 只有當線卡不支持三層的時候, 接口才會處于二層switchport模式 show run all | in “system default” 創建SVI口需要提前打…

HCIA-AI人工智能筆記3:數據預處理

統講解數據預處理的核心技術體系&#xff0c;通過Python/Pandas與華為MindSpore雙視角代碼演示&#xff0c;結合特征工程優化實驗&#xff0c;深入解析數據清洗、標準化、增強等關鍵環節。 一、數據預處理技術全景圖 graph TD A[原始數據] --> B{數據清洗} B --> B1[缺…

G-Star 校園開發者計劃·黑科大|開源第一課之 Git 入門

萬事開源先修 Git。Git 是當下主流的分布式版本控制工具&#xff0c;在軟件開發、文檔管理等方面用處極大。它能自動記錄文件改動&#xff0c;簡化合并流程&#xff0c;還特別適合多人協作開發。學會 Git&#xff0c;就相當于掌握了一把通往開源世界的鑰匙&#xff0c;以后參與…

MySQL錯誤 “duplicate entry ‘1‘ for key ‘PRIMARY‘“ 解決方案

文章目錄 1. 錯誤原因分析2. 快速解決方法場景1:手動插入重復值場景2:自增主鍵沖突場景3:批量插入沖突3. 長期預防策略4. 高級排查技巧該錯誤通常由主鍵沖突引起,表示嘗試插入或更新的主鍵值已存在于表中。以下是分步排查和解決方法: 1. 錯誤原因分析 主鍵唯一性約束:表…

WEB攻防-PHP反序列化-字符串逃逸

目錄 前置知識 字符串逃逸-減少 字符串逃逸-增多 前置知識 1.PHP 在反序列化時&#xff0c;語法是以 ; 作為字段的分隔&#xff0c;以 } 作為結尾&#xff0c;在結束符}之后的任何內容不會影響反序列化的后的結果 class people{ public $namelili; public $age20; } var_du…