目录

一、TouchGFX 核心介绍与优势

1.1 什么是 TouchGFX

1.2 TouchGFX 核心优势

二、开发环境搭建(零基础必看)

2.1 必备软件清单

2.2 软件安装与环境配置

三、手把手创建第一个 TouchGFX 工程

3.1 用 CubeMX 初始化底层工程

3.2 TouchGFX Designer 新建UI项目

四、核心实操:UI界面设计与控件使用

4.1 常用基础控件详解

4.2 实战:制作简易交互界面

4.3 模拟器实时调试(无需硬件)

五、UI与单片机代码联动(核心重点)

5.1 代码生成规则

5.2 核心交互逻辑(新手必学)

六、工程编译与硬件烧录运行

6.1 工程编译

6.2 硬件运行

七、新手常见报错与解决方案

八、进阶学习方向

九、教程总结


在嵌入式开发领域,传统单片机LCD屏开发存在代码繁琐、界面简陋、动画效果差、开发周期长等痛点,很难实现现代化的触控UI、动态动画、渐变特效、滑动交互等功能。TouchGFX是ST官方推出的免费嵌入式图形界面框架,专为STM32单片机优化,支持拖拽式可视化UI设计、丰富动画特效、低资源占用,是目前工业串口屏、智能仪表、家电触控屏、物联网设备UI开发的主流方案。

本教程面向零基础嵌入式开发者,从软件安装、环境配置、工程创建、UI拖拽设计、控件使用、代码联动、模拟器调试、硬件烧录运行全流程手把手教学,无需深厚GUI基础,跟着步骤即可完成第一个TouchGFX触控界面项目,快速上手嵌入式现代化UI开发。

一、TouchGFX 核心介绍与优势

1.1 什么是 TouchGFX

TouchGFX 是 STMicroelectronics 推出的免费嵌入式图形用户界面(GUI)开发框架,专门适配全系列 STM32 单片机,配套可视化编辑工具 TouchGFX Designer,支持纯拖拽开发UI界面,自动生成底层C++代码,开发者无需手动编写复杂画点、画线、刷新逻辑,极大降低嵌入式GUI开发门槛。

其广泛应用于工业控制屏幕、智能家居面板、车载小屏、便携式仪器、物联网触控设备等场景,完美替代传统裸机LCD、OLED简陋界面开发方案。

1.2 TouchGFX 核心优势

  • 零门槛可视化开发:全程拖拽式设计,所见即所得,无需手写界面代码;

  • 特效丰富:支持滑动、渐变、缩放、旋转、弹窗、动画过渡、动态文字等现代化UI效果;

  • 资源占用低:专为STM32优化,适配F1/F4/H7等主流系列,低配单片机也可流畅运行;

  • 官方免费开源:无版权收费,个人学习、商业项目均可免费使用;

  • 仿真调试便捷:内置PC模拟器,无需硬件即可实时预览界面、调试动画;

  • 生态完善:搭配STM32CubeMX一键配置工程,无缝对接Keil、STM32CubeIDE开发环境。

二、开发环境搭建(零基础必看)

TouchGFX 开发必须配套三款核心工具,全部为官方免费软件,本文提供标准安装与配置流程,适配Windows系统。

2.1 必备软件清单

  • STM32CubeMX:STM32芯片底层配置、工程初始化工具;

  • TouchGFX Designer:UI可视化设计、动画编辑、代码自动生成工具;

  • 编译IDE:Keil MDK 或 STM32CubeIDE(二选一即可)。

2.2 软件安装与环境配置

1. 安装 TouchGFX Designer

前往ST官方官网下载最新版本 TouchGFX,安装过程默认下一步即可,安装路径禁止中文、禁止空格,避免后续编译报错。安装完成后,软件自带丰富的官方示例工程,可直接打开运行学习各类控件与动画效果。

2. 关联 STM32CubeMX

打开 STM32CubeMX,在「帮助-软件包管理」中安装对应版本的 TouchGFX 固件库,对应自己的单片机型号(如STM32F4、STM32H7),确保CubeMX可以正常初始化TouchGFX工程。

3. 编译环境配置

TouchGFX 自动生成的代码为 C++ 格式,Keil MDK 需要开启 C++ 编译支持,默认安装高版本Keil即可兼容,无需额外复杂配置。

三、手把手创建第一个 TouchGFX 工程

本章节从零创建完整项目,实现「界面显示文字、触控按钮、简单动画」基础功能,适配所有带LCD触控屏的STM32开发板。

3.1 用 CubeMX 初始化底层工程

1. 打开 STM32CubeMX,选择对应的单片机型号,完成时钟配置、LCD屏幕引脚配置、SDRAM/FMC显存配置(大屏TouchGFX必备);

2. 开启 TouchGFX 功能,在Middleware中勾选激活TouchGFX,软件自动配置底层显示驱动框架;

3. 设置屏幕分辨率(如 480*272、800*480,必须和硬件屏幕一致);

4. 生成工程,选择对应IDE(Keil/CubeIDE),完成底层工程初始化。

3.2 TouchGFX Designer 新建UI项目

1. 打开 TouchGFX Designer,选择「新建空白项目」,匹配CubeMX中设置的屏幕分辨率、帧率(默认60帧);

2. 软件主界面分为控件库、画布、属性栏、资源库、动画编辑器五大核心区域;

3. 支持两种开发模式:空白自定义开发、官方示例模板改造,新手推荐先从空白项目练手。

四、核心实操:UI界面设计与控件使用

TouchGFX 所有界面开发均为拖拽操作,无需手写界面代码,新手重点掌握常用基础控件与动画配置。

4.1 常用基础控件详解

  • Text(文字控件):用于显示静态/动态文字,支持字体大小、颜色、对齐方式自定义,可通过代码实时修改文字内容;

  • Button(按钮控件):触控核心控件,支持按压、松开两种状态图片切换,可绑定点击触发事件;

  • Image(图片控件):显示背景图、图标、装饰图片,支持png透明图片,适配UI美化;

  • Slider(滑动条):用于音量、亮度、参数调节,支持触控滑动交互;

  • Container(容器):批量管理多个控件,常用于弹窗、页面切换、区域隐藏显示。

4.2 实战:制作简易交互界面

步骤1:添加背景图

在资源库导入适配屏幕分辨率的背景图片,拖拽Image控件铺满画布,设置为底层背景。

步骤2:添加文字显示

拖拽Text控件到画布,修改文字内容为“TouchGFX入门测试”,调整字体大小、颜色、居中显示。

步骤3:添加触控按钮

拖拽Button控件,分别设置「按压图片」和「松开图片」,实现按钮按压变色效果,为后续代码交互预留触发接口。

步骤4:简单动画配置

打开动画编辑器,选中文字控件,配置淡入、缩放动画,设置页面加载自动播放,实现开机动态显示效果。

4.3 模拟器实时调试(无需硬件)

界面设计完成后,无需烧录硬件,直接点击软件右下角运行模拟器(F5),即可在电脑上实时预览界面效果、触控交互、动画播放,支持鼠标模拟手指触控,快速调试UI布局与动画逻辑,大幅提升开发效率。

五、UI与单片机代码联动(核心重点)

TouchGFX最大的价值是界面可视化设计+底层业务代码联动,UI触控事件可以触发单片机IO、串口、定时器等外设逻辑,实现触控控制硬件设备。

5.1 代码生成规则

TouchGFX Designer 所有UI设计完成后,点击「Generate Code」自动生成完整C++界面代码,无需手动编写界面逻辑,开发者只需在预留的回调函数中编写自己的业务代码。

5.2 核心交互逻辑(新手必学)

1. 按钮点击回调

在Designer中为按钮绑定点击事件,生成代码后,在对应cpp文件的回调函数中添加业务逻辑,例如:点击按钮点亮LED、串口发送数据、切换界面。

2. 动态刷新UI数据

单片机采集的温度、湿度、电压等数据,可通过代码实时刷新到屏幕Text控件,实现数据动态显示。

3. 页面切换逻辑

支持多页面创建,通过按钮触控实现主页、设置页、数据页的滑动/跳转切换。

六、工程编译与硬件烧录运行

6.1 工程编译

将TouchGFX生成的代码导入Keil/CubeIDE工程,完成编译,首次编译需确认:

  • 开启C++编译支持;

  • 显存、SDRAM配置正确(大屏必备);

  • 图片资源、字体资源无缺失。

6.2 硬件运行

编译无报错后,通过下载器将程序烧录到STM32开发板,上电即可运行自定义触控UI,支持真实手指触控、动画播放、数据交互,完成完整项目落地。

七、新手常见报错与解决方案

  • 中文路径报错:工程、软件安装路径禁止中文、空格、特殊符号,否则代码生成失败;

  • 屏幕黑屏不显示:CubeMX分辨率配置与硬件屏幕不匹配、FMC/SDRAM未配置、显存地址错误;

  • 编译提示C++报错:IDE未开启C++编译功能,或缺失TouchGFX固件库;

  • 触控无反应:触摸屏驱动未配置、触控引脚初始化异常;

  • 动画卡顿:图片分辨率过大、资源过多,降低图片尺寸或优化控件层级。

八、进阶学习方向

掌握基础UI开发后,可深入学习TouchGFX高阶功能,适配复杂商业项目:

  • 多页面嵌套、弹窗动画、滑动翻页效果;

  • 动态数据曲线绘制(温度、电压实时曲线);

  • 字体自定义、多国语言适配;

  • 低功耗UI配置,适配电池供电设备;

  • 官方示例工程二次开发,快速复刻成熟UI界面。

九、教程总结

TouchGFX 彻底革新了传统嵌入式GUI的开发模式,将繁琐的手写界面代码转变为可视化拖拽+自动生成代码,大幅降低嵌入式触控屏开发难度,兼顾美观度、流畅度与开发效率。

对于嵌入式开发者而言,掌握TouchGFX是进阶高端UI开发的必备技能,无论是课程设计、毕业设计、个人项目还是商业产品开发,TouchGFX都是STM32触控界面的最优解决方案。新手只需熟练掌握控件使用、模拟器调试、代码联动三大核心能力,即可快速独立完成各类嵌入式触控屏幕项目开发。

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐