嵌入式常用GUI介绍
目录
- 前言
- 一、GuiLite
- 二、LVGL
- 三、SimpleGUI
- 四、MiniGUI
- 五、emWin
- 六、TouchGFX
- 七、uGUI
- 八、µGFX
- 九、Embedded Wizard
- 十、CrankSoftware
- 十一、PEG Graphics Software
- 十二、Guiliani
- 十三、MPLAB® Harmony Graphics Suite
前言
图形用户界面(Graphical User Interface,简称 GUI)采用直观的图形方式展示,让用户与计算机或设备交流变得简单直观。不仅工作效率得到极大提升,用户体验也因此大幅度增加。在嵌入式系统中,GUI工具和库扮演着至关重要的角色。它们赋予开发者创造互动且魅力四射的图形界面的能力,深入人心。无论是消费电子,工业控制,还是医疗设备等领域,优质的嵌入式GUI都是不可或缺的。
一、GuiLite
GuiLite是一个开源的Gui框架,只依赖于一个单一的头文件库GuiLite.h
,不需要很复杂的文件管理,代码量平易近人,GuiLite由4千行C++代码编写,单片机上也能流畅运行,其最低的硬件运行要求如下:
CPU主频 | ROM大小 | RAM大小 |
---|---|---|
24MHZ | 29KB | 9KB |
-
原文链接:https://jeckxu666.blog.csdn.net/article/details/121106458
-
仓库地址
- GitHub:https://github.com/idea4good/GuiLite
- Gitee:https://gitee.com/gao89/GuiLite/
二、LVGL
LVGL(Light and Versatile Graphics Library)是一个轻量级的嵌入式图形库,由匈牙利首都布达佩斯的Gábor Kiss-Vámosi创建。自2016年Kiss在GitHub上发布LittlevGL(后更名为LVGL)以来,这个项目吸引了近100名贡献者,迅速发展成为最受欢迎的嵌入式图形库之一。LVGL采用MIT许可,允许自由使用于商业项目中。
作为一个专为嵌入式系统设计的图形用户界面库,LVGL以C语言编写,具备出色的可移植性和灵活性,能适应各种微控制器和操作系统。它提供了丰富的控件和布局选项,让开发者能够轻松构建多样化的图形界面。同时,LVGL还支持触摸屏、按键等多种输入设备,实现用户交互功能。由于LVGL的轻量级特性,它在资源有限的嵌入式系统中表现出色,为开发者提供了一种高效、便捷的图形界面开发方案。无论是智能家居、工业控制还是物联网应用,LVGL都能成为您的理想选择。
- 官方地址:https://lvgl.io/
- 百问网LVGL中文站点:http://lvgl.100ask.net
三、SimpleGUI
SimpleGUI是专为单色显示屏打造的界面库。相对于传统GUI框架,SimpleGUI省去了心跳、绘图缓冲及图层等概念。该库仅提供多样化的绘图接口和由这些接口生成的更复杂的图形组件,旨在减轻对系统资源的总体要求。
- 码云链接:https://gitee.com/Polarix/simplegui
四、MiniGUI
MiniGUI旨在提供快速、稳定、功能齐全、跨平台的窗口和GUI支持系统,特别适合基于 Linux/uClinux、eCos 和其他传统 RTOS(如 RT-Thread、RTEMS、FreeRTOS、VxWorks、ThreadX、Nucleus、pSOS、uC/OS-II 和 OSE)的嵌入式系统或智能物联网设备。
MiniGUI 的优点:
- 支持多个嵌入式操作系统,具有良好的可移植性。
- 功能丰富,可灵活定制,适用于基于 CPU 主频 30MHz 的低端产品以及高端产品
- 重量轻,资源消耗低,MiniGUI 库的大小可以减少到大约 500KB 或更小
- 可配置,与 Linux 内核一样,MiniGUI 有许多编译配置选项
需要注意的是,MiniGUI 不免费用于商业用途
- 官网地址:https://minigui.fmsoft.cn/zh
五、emWin
emWin是由Segger Microcontroller Systems公司研发的一款功能强大的嵌入式图形用户界面(GUI)库。它广泛应用于各个领域,从医疗监控设备的心率信息显示到工业控制设备的生产过程参数控制与展示,emWin都能轻松胜任。
该GUI库特别提供了窗口管理器功能,支持开发者创建多窗口应用程序。每一个窗口不仅可以展示简单的文本或图像,还可以配置成复杂而精美的控件,以满足从基础到高级的各种需求。
emWin可在单任务及多任务环境下运行,既可以搭配专用操作系统使用,也能与任何商业的实时操作系统(RTOS)兼容,展现出极佳的灵活性和兼容性。
- 官网地址:https://www.segger.com/products/user-interface/emwin/
拓展:emWin和STemWin、μC/GUI的关系
其实,STemWin和μCGUI都是由emWin发展而来。它们的关系就像是同一个树上的两个枝叶,这里就不再过多介绍了!
六、TouchGFX
TouchGFX作为一款高效的图形用户界面开发工具,它已集成到STM32Cube生态系统中,专门针对STM32微控制器系列开发GUI。它提供了一种易于操作的界面设计方法,支持实时仿真和简单的拖拽功能来创建用户界面,能高效生成STM32的工程代码。TouchGFX内置了多种控件类,生成的代码结合了固件库和GUI的C++代码,以便于开发者使用。
此外,TouchGFX有着内存优化特性,支持6位色深显示,减少RAM需求,并支持不同的压缩格式以缩减Flash使用和提高刷新率。它适用于所有STM32系列微控制器,包括带有Cortex M0+内核的产品,是构建美观、高效GUI的重要工具。
- 官方链接:https://support.touchgfx.com/zh-CN/docs/introduction/welcome
七、uGUI
uGUI 是一款轻量级的开源图形用户界面(GUI)库,专为资源受限的嵌入式系统设计。其注重简洁性和易用性,使其成为开发者在嵌入式环境下构建用户友好界面的理想选择。资源够的情况下可移植到所有MCU。只要显示器能够显示图形,μGUI就不受特定显示技术的限制。因此,支持 LCD、TFT、E-Paper、LED 或 OLED 等显示技术。整个模块由两个文件组成:ugui.c
和ugui.h
,所以移植起来非常的方便。
其特点如下:
- 轻量级设计:uGUI的设计目标是在资源有限的环境中运行,因此具有小巧的体积和较低的内存占用。这使其适用于单片机等资源受限的嵌入式系统。
- 易于集成和使用:uGUI的API设计简单直观,易于学习和使用。开发者可以迅速集成uGUI到他们的项目中,并通过简单的API调用实现基本的GUI功能。
- 可扩展性:虽然uGUI的核心设计简单,但它仍提供了一些可扩展的特性,如支持多种字体和颜色配置。这使得开发者可以通过简单的配置满足一些基本的定制需求。
uGUI的学习曲线相对较平缓,尤其适合初学者。其简单的API设计和清晰的文档使得开发者能够快速上手并开始构建GUI界面。使用场景:
- 简单嵌入式系统:uGUI适用于资源有限的简单嵌入式系统,特别是那些对内存和处理器资源有严格要求的项目。
- 快速原型设计:由于其易于集成和使用的特性,uGUI也可以用于快速原型设计,帮助开发者迅速搭建界面并验证概念。
- 官网链接:http://embeddedlightning.com/ugui/
八、µGFX
µGFX 是一个用于显示器和触摸屏的轻量级嵌入式库,提供构建功能齐全的嵌入式 GUI 所需的一切。该库非常小而且速度很快,因为每个未使用的功能都被禁用并且没有链接到完成的二进制文件中。µGFX设计注重性能和可移植性,使得开发者能够轻松地在各种硬件平台上实现优秀的图形用户界面(GUI)。资源够的情况下可移植到所有MCU。免费版本可用于非商业用途。
其特点如下:
- 跨平台支持:µGFX支持多种嵌入式系统和操作系统,包括裸机环境、FreeRTOS、ChibiOS等。这为开发者提供了广泛的硬件和软件平台选择。
- 硬件加速:µGFX充分利用硬件加速技术,提高了图形渲染性能,使其适用于一些对性能有高要求的嵌入式应用。
- 显示类型:单色、灰度、彩色、电阻式、电容式或根本没有触摸屏。µGFX 可使用的显示器类型没有限制。
- 开放源代码:µGFX是一款开源图形库,基于MIT许可,开发者可以自由使用、修改和分发代码。这促进了社区的积极参与和贡献。
- 多操作系统支持:除了支持多种嵌入式系统外,µGFX还兼容多个主流的操作系统,包括Windows、Linux等,方便开发者在桌面环境进行GUI开发和调试。
- 官网链接:https://ugfx.io/index
九、Embedded Wizard
Embedded Wizard 是一款专为嵌入式系统设计的图形用户界面(GUI)开发工具,旨在简化和加速嵌入式GUI的开发过程。它提供了图形设计工具、嵌入式向导,代码生成器和运行时引擎,使开发者能够快速创建精美且高性能的嵌入式用户界面。
其特点如下:
- 图形设计工具:Embedded Wizard提供了现代且友好的可视化图形设计工具,Embedded Wizard Studio,允许开发者以直观的方式设计和布局用户界面。这种设计方式降低了学习曲线,使得开发过程更加高效。
- 跨平台支持:Embedded Wizard支持多种硬件平台和嵌入式操作系统,包括ARM、MIPS、x86等,以及FreeRTOS、RTOS等。这使其成为一个具有广泛可移植性的工具。
- 代码生成器:Embedded Wizard能够自动生成优化的、可嵌入的GUI代码。这消除了手动编写大量底层代码的繁琐工作,提高了开发效率。
- 运行时引擎:嵌入式Wizard的运行时引擎被优化,以提供高性能的图形渲染,适应对图形性能有高要求的嵌入式应用。
- 图形用户界面元素:非常丰富的界面元素可以选择,支持多帧和动画图像,非常适合动画图标,丰富的 GUI 组件模板,支持的帧缓冲区颜色格式。
- 官网链接:https://www.embedded-wizard.de/
十、CrankSoftware
Crank Software 是一家专注于嵌入式用户界面(UI)开发的软件公司,提供名为Storyboard的工具套件。Storyboard是一款用于创建丰富、现代化嵌入式用户界面的工具,旨在简化开发流程并提供高度可定制性。
Storyboard 的独特架构与 MCU、交叉处理器和 MPU 兼容,让您可以自由地创建可扩展市场和硬件平台的嵌入式应用程序。通过引入可在开发周期的任何时刻轻松支持硬件更改的 UI 开发工具,帮助降低嵌入式项目的风险。
其特点如下:
- 专注于嵌入式UI:Crank Software致力于提供嵌入式系统的用户界面解决方案,关注于嵌入式设备的图形用户界面开发。开发人员可以从头开始创建令人惊叹的 UI,或直接从您最喜欢的设计工具(例如 Photoshop、Illustrator 或 Sketch)导入文件。
- 全面的工具套件:公司的主要产品Storyboard提供了全面的工具套件,包括图形设计工具、交互式原型设计、代码生成等功能,为开发者提供了一体化的开发体验。Storyboard 包含旨在开发占用空间更少的应用程序的功能。通过简化运行时以节省资源以及在 C 回调和 Lua API 之间进行选择,Storyboard 可让您严格控制内存使用情况。
- Storyboard 允许从 Photoshop、Sketch 和 Illustrator 等设计工具导入 GUI 图形内容,直接在目标硬件设备(微控制器、交叉设备或 MPU)上使用模拟器测试和验证功能。
- 多平台支持:Crank Software的解决方案支持多种嵌入式平台,包括ARM、MIPS等处理器架构,同时可以运行于不同的嵌入式操作系统,如FreeRTOS、Linux等。
- 官网链接:https://www.cranksoftware.com/storyboard/capabilities/ui-scalability-mcu
十一、PEG Graphics Software
PEG Graphics Software 是一款用于嵌入式系统的图形用户界面(GUI)库,由NXP Semiconductors开发。PEG(Portable Embedded GUI)旨在简化和加速嵌入式GUI的开发,提供了丰富的图形元素和功能,适用于多种嵌入式平台。NXP的PEG Pro、PEG Plus和PEG Lite产品包括一个用于嵌入式开发的GUI库,可与实时操作系统完美配合。图形开发解决方案工具允许开发人员使用PEG库和外部资源来部署用户界面屏幕和控件来生成C++代码。
其特点如下:
-
跨平台支持:PEG Graphics Software被设计为可移植的嵌入式GUI库,支持多种处理器架构和嵌入式操作系统,包括ARM、MIPS等,以及FreeRTOS、ThreadX等。
-
轻量级设计:PEG的设计注重轻量级,使其适用于资源受限的嵌入式系统,如单片机(MCU)等。
-
高度可定制性:PEG提供了丰富的图形元素和主题,开发者可以根据项目需求自由调整外观和交互行为。
-
硬件加速:PEG支持硬件加速技术,提高了图形渲染性能,适应对图形性能有高要求的嵌入式应用。
-
官网链接:https://www.nxp.com/design/design-center/software/embedded-software/peg-graphics-software:PEG-HOME
十二、Guiliani
Guiliani由TES Electronic Solutions GmbH开发。Guiliani注重提供高度定制和可扩展的用户界面解决方案,适用于多种嵌入式应用,包括汽车仪表盘、医疗设备、家电等。
其特点如下:
- 高度可定制性:Guiliani提供了丰富的图形元素和主题,开发者可以根据项目需求自由调整外观和交互行为。拥有所见即所得 Guiliani 流媒体编辑器 (GSE),可快速完成设计工作。
- 跨平台支持:Guiliani支持多种硬件平台和操作系统,包括ARM、x86等处理器架构,以及FreeRTOS、Linux等嵌入式操作系统。
- 硬件加速:Guiliani利用硬件加速技术,提供高性能的图形渲染,适应对图形性能有高要求的嵌入式应用。
- 支持触摸屏和非触摸屏设备:Guiliani支持触摸屏和非触摸屏设备,为开发者提供更多的输入选项。
- 可扩展的架构:Guiliani的架构设计支持模块化和可扩展性,使得开发者能够轻松地集成和定制新的功能。
- 官网链接:https://www.guiliani.de/mediawiki/index.php?title=The_C%2B%2B_GUI_framework_for_all_embedded_engineers
十三、MPLAB® Harmony Graphics Suite
MPLAB® Harmony Graphics Suite 是Microchip公司推出的一套用于嵌入式系统的图形用户界面(GUI)解决方案。作为MPLAB Harmony框架的一部分,该图形套件旨在简化嵌入式GUI的设计和开发,并提供高度可定制性。
MPLAB® Harmony Graphics Suite使用功能强大且免费的 MPLAB Harmony 图形套件 (MHGS),使用经济高效的 32 位微控制器 (MCU) 创建具有专业外观的嵌入式图形用户界面 (GUI) 变得前所未有的简单。MHGS 可在 MPLAB Harmony 嵌入式软件开发框架内使用,经过专门设计,可充分利用 Microchip 高性能 32 位的功能MPLAB Harmony。
其特点如下:
- 无需专业图形设计技能:MPLAB Harmony Graphics Suite设计成易于使用,即使是没有专业图形设计经验的开发者也能够创建现代且引人注目的用户界面。
- 集成于MPLAB Harmony框架:作为MPLAB Harmony框架的一部分,该图形套件与Microchip的其他工具和库实现了紧密集成,为开发者提供全面的嵌入式开发解决方案。
- 跨平台支持:MPLAB Harmony Graphics Suite支持多种Microchip MCU平台,包括PIC32、SAM E等系列,使其适用于不同硬件架构。
- 图形元素和部件:所见即所得 GUI 绘图屏幕和工具组织器,提供了一系列图形元素和部件,包括按钮、文本框、图表等,以简化用户界面的设计,图像资源、小部件和文本等对象可以直接在显示区域上放置、移动和修改,然后在目标系统上精确地重新创建。
- 可定制主题和样式:允许开发者轻松自定义用户界面的主题和样式,以适应特定项目的设计需求。
- 官网链接:https://www.microchip.com/en-us/tools-resources/configure/mplab-harmony/graphics-suite