嵌入式图形用户界面(GUI)是一种为嵌入式系统设计的用户界面,它可以让用户通过图形化的方式与设备进行交互。以下是对七种嵌入式 GUI 的盘点。
emWin
由德国SEGGER公司开发,可为图形LCD设计提供高级支持,极大简化了LCD设计。它是使用比较广泛的一款GUI,配合GUI Builder或App Wizard上位机软件,用起来也比较方便。emWin以C语言源代码提供,使其成为嵌入式市场的专业、通用GUI,可用于多种不同的场景。
TouchGFX
属于Draupner Graphics公司的GUI产品,以炫酷的界面著称,在2018年7月,TouchGFX被ST收购,在STM32上可以免费使用TouchGFX。目前已经集成在STM32CubeMX中。它可以减轻CPU负载、充分利用STM32的硬件图形外设并创建最佳性能的用户界面,自带丰富的控件,也支持自定义控件。
MiniGUI
一款国产GUI,一款面向嵌入式系统的高级窗口系统和图形用户界面(GUI)支持系统,由魏永明先生于1998年底开始开发。2002年,魏永明先生创建北京飞漫软件技术有限公司,为MiniGUI提供商业技术支持,同时也继续提供开源版本。MiniGUI为嵌入式Linux系统提供了完整的多进程支持;可以MiniGUI-Processes、MiniGUI-Threads或者MiniGUI-Standalone三种运行模式运行。它对中文的支持很友好,支持GB2312与BIG5字符集,其他字符集也可以轻松加入。
Qt for MCU
是一个专为嵌入式微控制器(MCU)设计的图形框架和工具包,它允许开发者在资源受限的设备上创建和提供类似智能手机的用户体验。这个框架是Qt生态系统的一部分,旨在将Qt的创造力带入嵌入式微控制器领域,支持跨微处理器(MPU)和微控制器(MCU)重用UI,并使用现成组件实现快速开发。
LVGL
全称Light and Versatile Graphics Library,是一个自由的,开源的GUI库,界面精美,资源消耗小,可移植度高,响应式布局等特点,全库采用纯C语言开发。它的作者是来自匈牙利的Gabor Kiss-Vamosikisvegabor,LVGL用C语言编写,以实现最大的兼容性(与C++兼容),模拟器可在没有嵌入式硬件的PC上启动嵌入式GUI设计。
AWTK
全称为Toolkit AnyWhere,是周立功倾心打造的一套基于C语言开发的GUI框架。旨在为用户提供一个功能强大、高效可靠、简单易用、可轻松做出炫酷效果的GUI引擎。其特点是支持跨平台同步开发,一次编程,到处编译,跨平台使用。
GUIX
是微软的高级工业级GUI解决方案,专门针对深度嵌入式,实时和IoT应用程序而设计。微软还提供了名为GUIX Studio的桌面开发工具,该工具允许开发人员在桌面上设计其GUI并生成GUIX代码,然后可以将其导出到目标。
嵌入式系统通常资源有限,包括内存、处理能力和存储空间。因此,要仔细评估 GUI 库的资源需求,并进行必要的优化,如减少图形元素的复杂度、合理使用缓存等。注意图形渲染的效率,避免不必要的重绘操作,以降低 CPU 负载。