使用GUI Guider工具在MCU上開發嵌入式GUI應用 (1) - GUI Guider簡介及安裝

使用GUI Guider工具在MCU上開發嵌入式GUI應用 (1) - GUI Guider簡介及安裝

受限于每篇文章最多只能貼9張圖的限制,這個教程被拆分成了多篇文章連載發布,完整目錄結構如下圖x所示。后續會發布完整教程的pdf文件,敬請期待。
在這里插入圖片描述

圖x 完整教程文檔的目錄

文章目錄

  • 使用GUI Guider工具在MCU上開發嵌入式GUI應用 (1) - GUI Guider簡介及安裝
    • LVGL和GUI Guider簡介
    • 準備帶有顯示屏的開發板
    • 在PC上安裝GUI Guider

LVGL和GUI Guider簡介

LVGL是一個開源免費(MIT許可)的嵌入式GUI組件(https://lvgl.io/),支持觸摸屏操作,移植簡單方便,開發者一直在不斷完善更新。

LVGL的作者是來自匈牙利的Gabor Kiss-Vamosikisvegabor,LVGL用C語言編寫,以實現最大的兼容性(與C ++兼容),模擬器可在沒有嵌入式硬件的PC上啟動嵌入式GUI設計,同時LVGL作為一個圖形庫,它自帶著接近三十多種小工具可以供開發者使用。這些強大的構建塊按鈕搭配上帶有非常絲滑的動畫以及可以做到平滑滾動的高級圖形,同時兼具著不高的配置要求以及開源屬性,顯著的優勢使得LVGL蔚然成風,成為廣大開發者在選擇GUI時的第一選擇。

LVGL自帶了豐富的控件:窗口、按鍵、標簽、列表、圖表等,還可以自定義控 件;支持很多特效:透明、陰影、自動顯示隱藏滾動條、界面切換動畫、圖標打開關閉動畫、平滑的拖拽控件、分層顯示、反鋸齒、僅耗少量內存的字體等等。

在這里插入圖片描述

圖x 在MCU開發板上適配LVGL

同LVGL應用場景類似的主流的嵌入式GUI組件還有emWin、TouchGFX等,相比較而言,LVGL對于開發者更加友好,對比典型指標如表x所示。

表x 主流嵌入式GUI的關鍵指標對比
LVGLemWinTouchGFX
商業使用免費收費收費
可移植性多平臺多平臺主要為STM32
開源程度源碼開源不開源部分開源
組件豐富度三十幾種控件二十幾種控件豐富
開發文檔較為豐富較為豐富一般

由于LVGL被廣泛應用,也衍生了一些以LVGL為基礎的開發工具,便于嵌入式系統開發者自定義自己的GUI應用。例如 GUI Guider、Square Line Studio、LVGL Windows Simulater等。其中:

  • Square Line Studio是LVGL官方開發工具,面向個人和專業人士的UI編輯器,可快速輕松地為您的嵌入式設備設計和開發漂亮的UI,便捷地設計界面并一鍵生成代碼導出,導出的代碼在模擬器和嵌入式設備上都適用,但該軟件商業使用需要付費。
  • LVGL Windows Simulater是LVGL官方提供的輕量級的仿真器,使用 GNU GCC 編譯器和 SDL 驅動庫或 Windows API 在 PC 機上繪制界面,但需要用戶自行編寫源碼設計UI。
  • 相對而言,GUI Guider開源,并且支持圖形環境的設計和仿真功能,最具符合開發者全面需求。
表 x 常用LVGL模擬器的關鍵指標對比
GUI GuilderSquare Line StudioLVGL Windows Simulater
使用難度功能豐富,上手簡單較為復雜功能一般
功能豐富度功能豐富功能豐富功能單一
可視化設計支持支持不支持
開發文檔一般較為豐富一般
同步調試支持不支持支持

GUI Guider是恩智浦提供的用戶友好型圖形用戶界面開發工具,可通過開源LVGL圖形庫快速開發高品質的顯示。GUI Guider的拖放編輯器可以輕松利用LVGL的眾多特性,如小部件、動畫和樣式來創建GUI,而只需少量代碼或根本無需任何代碼。單擊按鈕,您可以在模擬環境中運行應用或將其導出到目標項目。可以很輕松地將GUI Guider生成的代碼添加到MCUXpresso IDE或IAR Embedded Workbench項目中,從而加速開發過程,并允許無縫地將嵌入式用戶界面添加到應用中。

GUI Guider是NXP公司推出的一款用戶友好的嵌入式圖形應用開發工具。它使用開源LVGL圖形庫作為底層圖形引擎,提供可視化所見即所得的拖放UI編輯器,能夠快速、輕松地為嵌入式應用程序創建漂亮的圖形用戶界面。圖形設計師能夠直接使用GUI Guider創建UI,并將已經工作的UI交付給軟件開發人員,而軟件開發人員只需專注于底層業務邏輯開發。通過這種方式,GUI Guider可以支持個人或者團隊高效地協同工作。GUI Guider的軟件界面,如圖x所示。
在這里插入圖片描述

圖x GUI Guider的軟件界面

準備帶有顯示屏的開發板

本例使用基于國產靈動微電子“星辰”處理器內核系列的MCU產品,MM32F5270/MM32F5280,設計的開發板BIRD-F5,配合ST7796U的3.5寸TFT液晶顯示屏模塊。任何可以連接液晶顯示模塊的開發板均可用于開發LVGL,只要開發者預先適配好具體的液晶屏驅動,以及在具體開發板上做好LVGL工程的移植,后續開發圖形界面的工作將全部在GUI Guider環境中進行開發,同具體的開發板和顯示模塊無關。

MM32F5270微控制器使用ArmChina的STAR-MC1處理器內核(基本兼容Arm Cortex-M33內核),最高主頻可達120MHz,片內集成192KB的SRAM(128KB的SRAM、32KB的ITCM和32KB的DTCM)和256KB的Flash,以及包括FSMC在內的眾多外設模塊。MM32F5280在MM32F5270的基礎之上,在QSPI接口上合封了一塊2MB容量的qspiflash存儲芯片。

在這里插入圖片描述

圖x BIRD-F5開發板

BIRD-F5開發板以MM32F5277E9PV為主控芯片,集成了FPC插座,可以組裝TFT顯示屏模塊,將MM32F5270芯片上的FSMC接口同TFT液晶屏對接通信,如圖x所示。

在這里插入圖片描述

圖x 組裝TFT模塊后的BIRD-F5開發板
  • MM32F5270微控制器的產品主頁:https://www.mindmotion.com.cn/products/mm32mcu/mm32f/mm32f_performance/mm32f5270/

  • BIRD-F5開發板的KiCAD項目工程(包含原理圖):https://gitee.com/suyong_yq/lvgl-gui-guider-dev/tree/master/bird-f5_lvgl_v8/hardware/bird-f5_v1.3

  • 靈動微電子官方發布的PLUS-F5270開發板的購買鏈接:https://item.taobao.com/item.htm?spm=a230r.1.14.1.664025d1Z2SRxb&id=675495302966

  • ST7796U TFT液晶模塊購買鏈接:https://item.taobao.com/item.htm?spm=a1z09.2.0.0.40ce2e8dBpnWJx&id=521624918530

在PC上安裝GUI Guider

理想情況下,基于MCU的UI應用的開發,重點應該放在UI的設計上,而MCU相關的開發工作,只是為UI軟件提供一個運行環境。如此,在本例中搭建的軟件開發環境,也主要分為兩個部分:搭建基于MCU的UI應用運行環境,搭建基于PC的UI應用開發環境。這里的準備工作,需要創建一個包含了能夠支持GUI
Guider源碼的MCU的源碼工程,當在GUI
Guider中編輯好UI素材,對應生成的源碼可以被直接集成到MCU工程中,編譯并能夠在具體的開發板上運行。

本例中搭建嵌入式GUI開發環境(基于Windows操作系統)需要安裝如下軟件工具包:

  • Keil MDK - MCU源碼項目的編譯和下載工具
  • 一個移植好LVGL的MCU源碼工程,可以點亮液晶屏
  • GUI Guider - 基于PC機的生成UI源碼的軟件工具

登錄NXP官網,在搜索欄中輸入GUI Guider即可找到GUI Guider工具的軟件包,目前可以運行在Windows、Linux和MacOS等多種操作系統。

也可直接進入GUI Guider的產品主頁:https://www.nxp.com/design/software/development-software/gui-guider:GUI-GUIDER

在這里插入圖片描述

圖x GUI Guider的產品主頁

從GUI Guider的產品主頁上,可以獲取GUI Guider軟件的下載鏈接,例如:https://cache.nxp.com.cn/secured/bsps/Gui-Guider-Setup-1.5.1-GA.exe

運行GUI Guider需要配置JDK,如果本機上沒有JDK,啟動GUI Guider后會有提示。如圖x所示。

在這里插入圖片描述

圖x GUI Guider提示安裝JDK

可以使用開源的OpenJDK即可。OpenJDK的下載地址:https://learn.microsoft.com/zh-cn/java/openjdk/download。

在安裝OpenJDK的過程中,切記要將JDK的可執行文件的路徑添加到開發主機系統的環境變量中。如圖x所示。安裝OpenJDK的最后步驟中,可能也有自動添加系統環境變量的操作選項,也可勾選其中,自動完成添加。

在這里插入圖片描述

圖x 配置JDK路徑到系統環境變量

安裝GUI Guider和OpenJDK完畢后,運行GUI Guider軟件,可以進入圖形UI編輯界面。如圖x所示。
在這里插入圖片描述

圖x 啟動GUI Guider軟件

(未完待續。。。)

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

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

相關文章

機器學習 | Python實現KNN(K近鄰)模型實踐

機器學習 | Python實現KNN(K近鄰)模型實踐 目錄 機器學習 | Python實現KNN(K近鄰)模型實踐基本介紹模型原理源碼設計學習小結參考資料基本介紹 一句話就可以概括出KNN(K最近鄰算法)的算法原理:綜合k個“鄰居”的標簽值作為新樣本的預測值。更具體來講KNN分類過程,給定一個訓…

網絡安全(自學)

想自學網絡安全(黑客技術)首先你得了解什么是網絡安全!什么是黑客! 網絡安全可以基于攻擊和防御視角來分類,我們經常聽到的 “紅隊”、“滲透測試” 等就是研究攻擊技術,而“藍隊”、“安全運營”、“安全…

無服務器架構發布啦!

導讀Serverless 1.15.2 已發布。The Serverless Framework (無服務器架構)允許你自動擴展、按執行付費、將事件驅動的功能部署到任何云。 目前支持 AWS Lambda、Apache OpenWhisk、Microsoft Azure,并且正在擴展以支持其他云提供商。 Serverless 降低了…

nodejs+vue+elementui電影訂票網站系統_wqc3k

電影訂票系統在國內有很多值得借鑒的例子,功能也都趨于完善,因此此次電影訂票系統將輕量化開發,要完成以下功能: (1)要支持完整的用戶注冊,登錄功能,賬號的管理通過管理員來實現。 &…

PHP中的16個危險函數

php中內置了許許多多的函數,在它們的幫助下可以使我們更加快速的進行開發和維護,但是這個函數中依然有許多的函數伴有高風險的,比如說一下的16個函數不到萬不得已不盡量不要使用,因為許多“高手”可以通過這些函數抓取你的漏洞。 …

【Spring】核心容器——集合注入

1、集合種類 數組 List Set Map Properties 2、配置 <bean id"bookDao" class"dao.impl.BookDaoImpl"><property name"array"><array><value>2</value><value>4</value><value>6</value&g…

Docker升級后,出現Error response from daemon: Unknown runtime specified docker-runc

現象&#xff1a;docker升級版本后&#xff0c;重啟docker服務出現&#xff1a; [rootDocker scripts]# docker start registry Error response from daemon: Unknown runtime specified docker-runc Error: failed to start containers: registry解決辦法&#xff1a; 改完之…

大數據Flink(六十三):SqlClient工具的使用

文章目錄 SqlClient工具的使用 一、???????入門

【獨立版】新零售社區團購電商系統生鮮水果商城興盛優選十薈團源碼

【獨立版】新零售社區團購電商系統生鮮水果商城興盛優選十薈團源碼

私有服務Nexus安裝

下載地址&#xff1a; 鏈接&#xff1a;https://pan.baidu.com/s/1xpOyRg7SfJsui5cL8PVRDg 提取碼&#xff1a;i574 解壓&#xff1a; tar -zxvf nexus-3.12.1-01-unix.tar.gz生成2個文件夾 nexus-3.12.1-01 和 sonatype-work用root用戶給普通用戶授權這2個文件夾的權限 例…

k8s認證詳解 k8s證書詳解 2023推薦

推薦閱讀 https://www.yii666.com/blog/478731.html?actiononAll 在 Kube-apiserver 中提供了很多認證方式&#xff0c;其中最常用的就是 TLS 認證&#xff0c;當然也有 BootstrapToken&#xff0c;BasicAuth 認證等&#xff0c;只要有一個認證通過&#xff0c;那么 Kube-api…

NeMo 聲紋識別VPR-實戰

聲紋識別(VPR) ,生物識別技術的一種,也稱為說話人識別 ,是從說話人發出的語音信號中提取聲紋信息,從應用上看,可分為: 說話人辨認(Speaker Identification):用以判斷某段語音是若干人中的哪一個所說的,是“多選一”問題;說話人確認(Speaker Verification):用以確認某…

Leetcode-每日一題【劍指 Offer 31. 棧的壓入、彈出序列】

題目 輸入兩個整數序列&#xff0c;第一個序列表示棧的壓入順序&#xff0c;請判斷第二個序列是否為該棧的彈出順序。假設壓入棧的所有數字均不相等。例如&#xff0c;序列 {1,2,3,4,5} 是某棧的壓棧序列&#xff0c;序列 {4,5,3,2,1} 是該壓棧序列對應的一個彈出序列&#xf…

在SAP上使用 LiquidUI Android 掃描條形碼/QR 碼

LiquidUI Android 可使用安卓移動設備的內置攝像頭掃描條形碼和二維碼&#xff0c;為輸入框填充數值。因此&#xff0c;無需附加任何第三方設備進行掃描。 LiquidUI Android 還提供了掃描功能&#xff0c;如 Accessible-Enter&#xff08;俗稱自動輸入&#xff09;和 Accessib…

kotlin + LiveData 測試

viewModel測試&#xff1a;https://developer.android.com/codelabs/basic-android-kotlin-compose-test-viewmodel#3 androidTestImplementation "org.jetbrains.kotlin:kotlin-test:1.9.0"androidTestImplementation org.jetbrains.kotlinx:kotlinx-coroutines-tes…

基于粒子群改進深度信念網絡的回歸分析,基于PSO-DBN的回歸分析

目錄 背影 DBN神經網絡的原理 DBN神經網絡的定義 受限玻爾茲曼機(RBM) 粒子群算法的原理 DBN的粒子群改進深度信念網絡的回歸分析 基本結構 主要參數 數據 MATALB代碼 結果圖 展望 背影 DBN是一種深度學習神經網絡,擁有提取特征,非監督學習的能力,是一種非常好的分類算…

介紹一些操作系統— CentOS 系統

介紹一些操作系統— CentOS 系統 CentOS 系統 CentOS 是 Linux 發行版之一&#xff0c;是免費的、開源的、可以重新分發的開源操作系統。 CentOS Linux發行版是一個穩定的&#xff0c;可預測的&#xff0c;可管理的和可復現的平臺&#xff0c;源于 Red Hat Enterprise Linux…

SAP MM學習筆記22- 購買發注的項目種類(明細Category)

SAP中控制購買流程的是購買發注頁面中購買發注明細行的項目種類&#xff08;明細Category&#xff09;欄目。 ?項目種類&#xff08;明細Category&#xff09;有&#xff1a; 1&#xff0c; 標準 2&#xff0c;K 受托品 3&#xff0c;L 外注 4&#xff0c;S 仕入先直送…

Keepalived+http高可用實戰

環境準備&#xff1a; 兩臺安裝了keepalived的服務器 ip&#xff1a;192.168.134.170;192.168.134.172 1、安裝http服務 yum install httpd -y2、寫一個測試頁面 [rootlocalhost ~]# echo "hostname -I,web1 test page. " > /var/www/html/inde [rootlocalho…

Linux下搭建java環境

文章目錄 一&#xff0c;xshell鏈接linux二&#xff0c;linux安裝jdk環境 一&#xff0c;xshell鏈接linux 這里用到的工具,VMware搭配CentOS7 64位Xshell5 操作之前確保,傳輸Xshell連接了虛擬機 打開Xshell,文件->新建 主機ip—>進入虛擬機,右鍵打開終端,輸入命令:ifco…