嵌入式 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

相关推荐
XiHongShi20161 天前
STM32F407 RTC定时器例程,建议保存
stm32·单片机·学习
优信电子1 天前
AIT1001 非接触式红外测温模块 STM32 驱动开发实战:从引脚到代码全解析
stm32·嵌入式·温度传感器·红外测温·非接触式测温·ait1001
深圳老胡1 天前
STM32F407 控制 L6470 步进电机驱动 —— 控制过程简介
笔记·stm32·单片机·嵌入式硬件·代码规范
wuyk5551 天前
《WiFi 嵌入式物联网开发全套实战》| 第 16 章 ESP32 AP+STA 双模共存原理与工程坑点
网络·stm32·物联网
Brilliantwxx1 天前
【STM32】 SPI Flash 驱动开发实战:阻塞模式驱动 W25Q64(含工程代码)
开发语言·stm32·单片机·嵌入式硬件
youcans_1 天前
【嵌入式软件AI编程】16. Claude Code 与 VS Code 的协同开发
stm32·mcu·嵌入式·ai编程·claude code
Zw-awa1 天前
按键接到 STM32 后:GPIO 输入到底读到了什么
stm32
MarkZhou6241 天前
智能蒸烤双核通信架构拆解:从冗余耦合到分层解耦
stm32·单片机·嵌入式硬件·架构·安卓·安全架构
chem41111 天前
STM32CubeMX Linux 开发环境搭建
stm32·单片机·linux系统
无敌贵点大王2 天前
RTThread学习记录11——RT-Thread 设备模型吃透:UART/ADC/PWM/PIN 到底有什么区别?
c语言·stm32·学习·链表