嵌入式 GUI 框架大概说明

  • TouchGFX :ST推出的嵌入式 GUI 框架,主要面向 STM32,提供可视化界面设计工具,适合做触摸屏、仪器仪表、工业控制等。
  • emWin :SEGGER 推出的商业嵌入式 GUI 框架,发展较早,成熟稳定、资源占用较低,常用于工业设备、仪器仪表、医疗设备等。
  • LVGL :开源的轻量级嵌入式 GUI 框架,支持 STM32、ESP32、NXP 等多种 MCU,控件丰富、跨平台,是目前比较主流的 MCU GUI 方案。
  • Qt :一个功能非常强大的跨平台图形界面开发框架 ,主要用于 PC、Linux、Android 等,也有 Qt for MCUs 用于资源有限的嵌入式设备,适合复杂、高级的 UI。

TouchGFX → STM32 专用型 GUI

emWin → 成熟的商业型嵌入式 GUI

LVGL → 开源、轻量、跨平台 GUI

Qt → 功能强大的跨平台 GUI

方案 定位 优点 缺点 适合
TouchGFX STM32 专用 GUI 和 STM32 结合好,性能高,设计器好用 基本绑定 STM32,生态不如 LVGL 开放 STM32 产品
emWin 老牌商业 GUI 成熟、稳定、工业产品多 商业授权、界面设计相对传统 工业仪器、成熟产品
LVGL 开源嵌入式 GUI 免费、跨平台、生态活跃、资源占用低 部分高级设计需要自己实现 STM32、ESP32、NXP 等
Qt 高级跨平台 GUI UI能力最强、开发体验好、生态庞大 资源占用较高,对 MCU 要求高 Linux、嵌入式高性能设备、复杂 HMI

LVGL 的实现方式可以比较全面地分成 4 类,从"纯手写"到"可视化设计"都有。

1. 纯 C 代码开发

最传统的方式,直接使用 LVGL API 创建界面。

C代码

↓

创建 Screen / Button / Label / Chart

↓

设置位置、颜色、字体、事件

↓

LVGL运行

优点: 灵活、可控、适合动态界面。

缺点: UI复杂后代码量比较大。


2. XML 开发

LVGL 提供 XML 方式描述界面。

XML

↓

描述控件、布局、样式

↓

LVGL XML解析/构建

↓

界面

例如:

<button>

<label text="设置"/>

</button>

优点: UI结构清晰,适合页面较多的项目。

缺点: 需要学习 LVGL XML 语法。


3. 可视化设计工具

通过拖拽控件来设计界面。

目前主要可以考虑:

LVGL Pro

SquareLine Studio

基本流程:

拖拽设计

↓

设置控件属性

↓

设置页面/动画/事件

↓

生成 LVGL XML 或 C代码

↓

STM32工程

优点: 上手快,适合工业 HMI、480×800 这种复杂界面。

缺点: 某些特殊功能还是需要自己写 C 代码。


4. 第三方设计工具 + LVGL

比如使用:

Figma

Photoshop

Illustrator

先做视觉设计:

Figma

↓

UI视觉稿

↓

切图 / 图标 / 图片资源

↓

LVGL

↓

实现真正的交互界面

注意:

Figma 本身不能直接运行 LVGL。

它主要负责"设计长什么样",LVGL负责"在 MCU 上怎么运行"。

你可以把 LVGL 的实现方式总结成

LVGL

│

┌─────────────┼─────────────┐

↓ ↓ ↓

C代码 XML 可视化工具

│ │ │

手写UI 描述UI 拖拽设计UI

│ │

└──────┬──────┘

↓

LVGL

↓

STM32 / MCU

相关推荐
Zw-awa17 小时前
从 CPU 搬运到自动搬运:DMA、空闲中断和两块缓冲
stm32
无敌贵点大王17 小时前
从寄存器层面重学STM32(6)——串口USART实战部分
stm32·单片机·嵌入式硬件
庙堂龙吟奈我何17 小时前
二进制和十六进制
stm32·单片机
TST-魚爷19 小时前
小型视频会议室音频踩坑:一体化拾音扩音方案实测分享(易视讯)
stm32·电脑·音视频·钉钉·腾讯会议·zoom会议
十八岁牛爷爷1 天前
STM32H7 长时间运行后 HTTP 断连:从“串口还活着”到 TX 描述符错账
stm32·单片机·嵌入式硬件
Lxx_Zw1 天前
串口命令如何从字符串长成协议:帧头、长度、校验和与状态机
c语言·stm32·单片机·嵌入式硬件
糖糖单片机设计1 天前
基于 STM32 + LU-ASR01 的智能台灯
stm32·单片机·嵌入式硬件·51单片机·语音识别
起个网名真难~2 天前
STM32F103_Bootloader_从零到UART升级成功_博客原稿
stm32·单片机·嵌入式硬件
小李不想当小白2 天前
BKP备份寄存器与RTC实时时钟(STM32标准库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·嵌入式
Zw-awa2 天前
串口命令如何从字符串长成协议:帧头、长度、校验和与状态机
stm32