概述
本文選用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
下載文件即可
文件解析
需要源碼中這幾個文件
demos 是示例文件
examples 主要是里面的接口文件
src 是源碼文件
兩個頭文件
文件處理
examples
只留下
porting
一個文件夾
porting
內文件_template
后綴去掉
lv_conf_template.h
去掉_template
更改后文件
加入文件
將所有src中的c文件加入keil中
我這里分為3個文件組
LVGL_src
存放源碼c文件
LVGL_conf
存放LVGL設置文件
LVGL_GUI
存放自己的GUI文件
腳本加入方法
文件太多了,每個文件夾都要加入比較麻煩
這里使用個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)
可得到類似這樣的內容輸出
建議先加入個文件實驗下相對路徑位置,之后再使用腳本
將MDK文件用文本打開
搜索
LVGL_src
名稱再文件目錄下添加剛才輸出的內容即可
配置文件
將
lvgl.h
lvgl_conf.h
還有\examples\porting
下的文件加入LVGL_conf
將
lvgl.h
所在目錄src
\examples\porting
加入頭文件目錄
Keil設置
打開O3優化和 時間優化 啟用c99標準
屏蔽警告(
Misc Controls
)中加入
--diag_suppress=68,111,188,223,546,1295 --locale=english
Linker 中加入屏蔽警告代碼
--diag_suppress=L6314W,L6329W
LVGL模擬器
下載安裝
使用
VS2022
構建LVGL
模擬器,VS2022
安裝請自行解決
模擬器地址
https://github.com/lvgl/lv_port_pc_visual_studio
注意請使用工具從git下克隆指定分支,不要直接下載,直接git克隆會默認最高版本
這里使用
Sourcetree
軟件
如下設置,選則版本,選擇遞歸子模塊
打開文件運行這個文件即可
更改分辨率
修改
single_display_mode_initialization
函數里參數即可800->長
480->高
LVGL GUI工具
安裝
使用
SquareLine Studio
直接從官網下載即可 有免費版本,正常注冊即可https://squareline.io/downloads#lastRelease
建立工程
設置下分辨率 顏色寬度 LVGL版本即可
導出
導出文件
使用
將上述的所有 C H 文件加入
添加
ui.h
所在的頭文件目錄
導入
ui.h
#include"ui.h"
調用
ui_init();
即可