嵌入式圖形用戶界面(GUI)是一種為嵌入式系統(tǒng)設計的用戶界面,它可以讓用戶通過圖形化的方式與設備進行交互。以下是對七種嵌入式 GUI 的盤點。
emWin
由德國SEGGER公司開發(fā),可為圖形LCD設計提供高級支持,極大簡化了LCD設計。它是使用比較廣泛的一款GUI,配合GUI Builder或App Wizard上位機軟件,用起來也比較方便。emWin以C語言源代碼提供,使其成為嵌入式市場的專業(yè)、通用GUI,可用于多種不同的場景。
TouchGFX
屬于Draupner Graphics公司的GUI產(chǎn)品,以炫酷的界面著稱,在2018年7月,TouchGFX被ST收購,在STM32上可以免費使用TouchGFX。目前已經(jīng)集成在STM32CubeMX中。它可以減輕CPU負載、充分利用STM32的硬件圖形外設并創(chuàng)建最佳性能的用戶界面,自帶豐富的控件,也支持自定義控件。
MiniGUI
一款國產(chǎn)GUI,一款面向嵌入式系統(tǒng)的高級窗口系統(tǒng)和圖形用戶界面(GUI)支持系統(tǒng),由魏永明先生于1998年底開始開發(fā)。2002年,魏永明先生創(chuàng)建北京飛漫軟件技術(shù)有限公司,為MiniGUI提供商業(yè)技術(shù)支持,同時也繼續(xù)提供開源版本。MiniGUI為嵌入式Linux系統(tǒng)提供了完整的多進程支持;可以MiniGUI-Processes、MiniGUI-Threads或者MiniGUI-Standalone三種運行模式運行。它對中文的支持很友好,支持GB2312與BIG5字符集,其他字符集也可以輕松加入。
Qt for MCU
是一個專為嵌入式微控制器(MCU)設計的圖形框架和工具包,它允許開發(fā)者在資源受限的設備上創(chuàng)建和提供類似智能手機的用戶體驗。這個框架是Qt生態(tài)系統(tǒng)的一部分,旨在將Qt的創(chuàng)造力帶入嵌入式微控制器領域,支持跨微處理器(MPU)和微控制器(MCU)重用UI,并使用現(xiàn)成組件實現(xiàn)快速開發(fā)。
LVGL
全稱Light and Versatile Graphics Library,是一個自由的,開源的GUI庫,界面精美,資源消耗小,可移植度高,響應式布局等特點,全庫采用純C語言開發(fā)。它的作者是來自匈牙利的Gabor Kiss-Vamosikisvegabor,LVGL用C語言編寫,以實現(xiàn)最大的兼容性(與C++兼容),模擬器可在沒有嵌入式硬件的PC上啟動嵌入式GUI設計。
AWTK
全稱為Toolkit AnyWhere,是周立功傾心打造的一套基于C語言開發(fā)的GUI框架。旨在為用戶提供一個功能強大、高效可靠、簡單易用、可輕松做出炫酷效果的GUI引擎。其特點是支持跨平臺同步開發(fā),一次編程,到處編譯,跨平臺使用。
GUIX
是微軟的高級工業(yè)級GUI解決方案,專門針對深度嵌入式,實時和IoT應用程序而設計。微軟還提供了名為GUIX Studio的桌面開發(fā)工具,該工具允許開發(fā)人員在桌面上設計其GUI并生成GUIX代碼,然后可以將其導出到目標。
嵌入式系統(tǒng)通常資源有限,包括內(nèi)存、處理能力和存儲空間。因此,要仔細評估 GUI 庫的資源需求,并進行必要的優(yōu)化,如減少圖形元素的復雜度、合理使用緩存等。注意圖形渲染的效率,避免不必要的重繪操作,以降低 CPU 負載。