在嵌入式系统开发中,选择一个合适的图形用户界面(GUI)库
是至关重要的。在屏幕上显示的时候,使用现成的图形库
,这样开发人员就不需要弄清楚底层任务,例如如何绘制像素、线条、形状,如果再高级一点,则可以绘制某些对象,例如窗口、按钮等。
第一期我们介绍了5个,今天继续介绍5个。
MCU 的 TOP 15 图形GUI库:选择最适合你的图形用户界面(一)
下面将介绍5个
备受欢迎的嵌入式GUI库,分析它们的特点、优缺点、使用场景以及生态系统
,以便开发人员能够更好地选择适合自己项目的GUI库。
6、Qt for MCU
https://www.qt.io/product/develop-software-microcontrollers-mcu
Qt for MCU 是Qt框架
的一个版本,是一个完整的图形框架和工具包
,专为嵌入式系统设计。Qt本身是一款强大、跨平台
的C++图形用户界面开发框架,而Qt for MCU则专注于在资源受限的嵌入式环境中
提供高性能的图形用户界面。
特点
图形设计工具:Qt for MCU提供了可视化的图形设计工具
,使开发者能够轻松设计和布局用户界面。这为快速原型设计和开发提供了便利。
跨平台支持:Qt for MCU继承了Qt框架的跨平台特性
,可以在多种嵌入式系统和操作系统上运行,包括嵌入式Linux、FreeRTOS等。针对嵌入式、桌面和移动平台,所有平台都具有相同的代码库
。
硬件加速:Qt for MCU充分利用硬件加速技术,以提高图形渲染性能,适应对性能有高要求的嵌入式应用。
大型生态系统:Qt拥有庞大的生态系统和社区支持
,提供了丰富的文档、示例和支持。这使得开发者能够更好地利用Qt for MCU的功能和特性。
使用场景:
复杂嵌入式系统:Qt for MCU适用于需要复杂图形用户界面的嵌入式系统,如工控系统、医疗设备等。
对GUI性能有高要求的项目:由于Qt for MCU的硬件加速特性,它适用于对图形性能有高要求的项目,如汽车仪表盘、航空航天设备等。
学习难易程度:
Qt for MCU相对于一些轻量级GUI库来说,学习曲线较为陡峭。这主要因为Qt框架本身非常强大,但也为开发者提供了广泛的文档和教程。但是如果本身做过桌面端的开发,MCU使用起来上手会非常快
。
生态支持:
Qt for MCU作为Qt框架的一部分,继承了庞大的Qt生态系统和积极的社区支持。用户可以在社区中获得广泛的支持和资源,使其更好地利用Qt for MCU的功能。
Qt for MCU是一款适用于嵌入式系统的强大图形用户界面框架。它的图形设计工具、跨平台支持和硬件加速特性使其成为复杂嵌入式系统中的优秀选择。然而,对于一些资源受限的嵌入式系统,可能需要权衡使用Qt for MCU的硬件资源占用和功能丰富性。
7、Embedded Wizard
https://www.embedded-wizard.de/
Embedded Wizard 是一款专为嵌入式系统设计的图形用户界面(GUI)开发工具,旨在简化和加速嵌入式GUI的开发过程
。它提供了图形设计工具、嵌入式向导
,代码生成器和运行时引擎
,使开发者能够快速创建精美且高性能的嵌入式用户界面。
特点
图形设计工具:Embedded Wizard提供了现代且友好的可视化图形设计工具,Embedded Wizard Studio,允许开发者以直观的方式设计和布局用户界面
。这种设计方式降低了学习曲线,使得开发过程更加高效。
跨平台支持:Embedded Wizard支持多种硬件平台和嵌入式操作系统,包括ARM、MIPS、x86等,以及FreeRTOS、RTOS等。这使其成为一个具有广泛可移植性
的工具。
代码生成器:Embedded Wizard能够自动生成优化的、可嵌入的GUI代码
。这消除了手动编写大量底层代码的繁琐工作,提高了开发效率。
运行时引擎:嵌入式Wizard的运行时引擎被优化,以提供高性能的图形渲染
,适应对图形性能有高要求的嵌入式应用。
图形用户界面元素:非常丰富的界面元素
可以选择,支持多帧和动画图像,非常适合动画图标,丰富的 GUI 组件模板,支持的帧缓冲区颜色格式。
使用场景:
复杂嵌入式系统:Embedded Wizard适用于需要复杂图形用户界面的嵌入式系统,例如汽车信息娱乐系统、医疗仪器等。
跨平台嵌入式项目:由于其可移植性,Embedded Wizard适用于跨多种硬件平台
和操作系统的嵌入式项目。
学习难易程度:
学习Embedded Wizard相对较为平缓,尤其是对于有图形设计经验的开发者。其可视化工具使得开发者能够更容易上手,并快速掌握工具的使用方法。
生态支持:
Embedded Wizard拥有活跃的社区和强大的生态系统。用户可以在社区中获得支持、交流经验,并获取额外的文档和教程。这有助于开发者更好地利用Embedded Wizard的功能和特性。
Embedded Wizard是一款强大且高度可定制的嵌入式GUI开发工具。其图形设计工具、代码生成器和跨平台支持使其成为复杂嵌入式系统中的理想选择。尤其适用于需要高性能、精美界面的嵌入式应用
。
8、emWin
https://www.segger.com/products/user-interface/emwin/
emWin 是一款专为嵌入式系统设计的图形用户界面(GUI)解决方案,由SEGGER公司开发。作为一款商业解决方案
,emWin提供了丰富的功能和灵活的定制选项,以满足各种嵌入式应用的需求。
emWin 是一种嵌入式 GUI 解决方案,与具有专有操作系统的单任务和多任务环境或任何商业 RTOS(例如embOS)兼容。GUI 以"C"源代码形式提供
。emWin 可以适应任何尺寸,无论是物理显示器还是虚拟显示器,独立于显示控制器和目标 CPU。
ST 用户可以免费使用名为"emWin for STM32"的 emWin 特定版本,以库的形式免费使用。
特点
灵活性和可定制性:emWin具有高度可定制的特性,令人惊叹的图形库
,开发者可以根据项目的需求调整和优化界面元素,包括按钮、文本、图形等。
跨平台支持:emWin支持多种硬件平台和嵌入式操作系统,包括ARM、MIPS等架构,以及RTOS(实时操作系统)如FreeRTOS、Micrium等。
效率:emWin 是一个高性能图形软件包。它已针对 RAM 和 ROM 中的内存消耗最小化以及高速和多功能性进行了优化
。这使其成为尖端的 GUI 解决方案。
全面的图形元素:emWin提供了丰富的图形元素,包括按钮、滑块、文本框等,以及支持触摸屏和非触摸屏设备。
使用场景:
复杂嵌入式系统:emWin适用于需要复杂且高度定制的图形用户界面
的嵌入式系统,如工业控制系统、医疗仪器等。
对图形性能有高要求的项目:由于其硬件加速技术,emWin适用于对图形性能有高要求的项目,如高分辨率显示和流畅的动画效果。
学习难易程度:
emWin的学习曲线较为陡峭,尤其对于初学者而言。由于其提供了丰富的功能和灵活的定制选项,可能需要花费一些时间来熟悉其API和工作流程。
生态支持:
作为一款商业解决方案
,emWin拥有强大的生态系统和技术支持。SEGGER公司提供了详细的文档、示例代码和技术支持,为开发者提供了全面的帮助。
emWin是一款强大、灵活且高性能的嵌入式GUI解决方案。它适用于复杂嵌入式系统和对图形性能有高要求的项目。由于其商业性质,开发者需要考虑商业授权费用。然而,对于需要强大图形功能的嵌入式应用,emWin是一个强有力的选择。
9、TouchGFX
https://support.touchgfx.com/zh-CN/docs/introduction/welcome
TouchGFX 是一款专为嵌入式系统设计的高性能图形用户界面(GUI)框架,以其引人注目的图形性能和丰富的功能而脱颖而出,适用于对用户界面有高要求的嵌入式应用。
TouchGFX 是一款针对 STM32 微控制器优化的先进免费图形软件框架。TouchGFX 利用 STM32 图形功能和架构,通过创建令人惊叹的、类似智能手机的图形用户界面
,加速了物联网 HMI 革命。
特点
硬件加速图形渲染: TouchGFX通过硬件加速技术
实现高性能的图形渲染,为用户提供流畅的界面体验,适用于对图形性能有高要求的项目。
图形设计工具:TouchGFX提供了强大的图形设计工具,允许开发者以直观的方式设计和布局用户界面。可作为独立的软件工具使用,可轻松快速地进行图形评估和概念验证
。这降低了学习曲线,使得开发过程更加高效。
可扩展和可定制:TouchGFX框架具有高度可扩展性和定制性,支持多种字体、颜色和图形效果,开发者可以根据项目需求进行定制,并轻松扩展新的图形元素和功能。
支持触摸屏和非触摸屏:TouchGFX支持触摸屏和非触摸屏设备,为开发者提供更多的输入选项。
跨平台支持:TouchGFX不仅支持多种嵌入式平台,还可以在不同操作系统上运行,具有出色的可移植性。
使用场景:
高要求图形性能的项目:TouchGFX适用于对图形性能有高要求的项目,如汽车仪表盘、医疗设备、家用电器等。
复杂嵌入式系统:TouchGFX适用于需要复杂且高度定制的用户界面的嵌入式系统
。
学习难易程度:
TouchGFX的学习曲线相对较平缓,尤其是对于有图形设计经验的开发者。其图形设计工具和文档使得开发者能够更容易上手,并快速掌握工具的使用方法。
生态支持:
TouchGFX拥有强大的生态系统和技术支持。STMicroelectronics公司提供了详细的文档、示例代码和技术支持,同时社区也活跃,为开发者提供了全面的支持
。
TouchGFX是一款强大、高性能且可定制的嵌入式GUI框架。其硬件加速技术、图形设计工具和跨平台支持使其成为对图形性能有高要求的嵌入式应用的理想选择。虽然可能涉及商业授权费用,但对于需要强大图形性能的项目而言,TouchGFX是一个值得考虑的解决方案。
10、CrankSoftware
https://www.cranksoftware.com/storyboard/capabilities/ui-scalability-mcu
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等。
使用场景:
复杂嵌入式系统:Crank Software的解决方案适用于需要复杂且高度定制的嵌入式系统,如汽车仪表盘、医疗设备等。
多人协作开发:Storyboard的支持远程协作功能使其适用于需要多个团队成员协同开发
用户界面的项目。
学习难易程度:
学习曲线相对较平缓,特别是对于有图形设计和嵌入式开发经验的开发者而言。Storybard提供了详细的文档和示例,以帮助用户迅速上手。
生态支持:
Crank Software拥有积极的社区和技术支持。用户可以在社区中获得支持、交流经验,并获取额外的文档和教程。技术支持方面,Crank Software也提供了专业的支持服务。
Crank Software以其专注于嵌入式UI开发
的定位和Storyboard的全面工具套件
而著称。Storyboard 与许多微控制器 (MCU)、跨界处理器和 MPU 兼容
。其专有技术将 UI 与后端分离,直到使用特定于硬件的运行时引擎从其库中导出。适用于需要高度定制和复杂用户界面的嵌入式系统项目。其支持多平台、高度可定制性和团队协作功能使其成为开发者在嵌入式UI领域的重要工具。
篇幅问题,本期介绍5个,下一期继续介绍。
往期推荐
介绍一个4000行代码的开源GuiLite,并移植到STM32,收藏