2. 开发环境搭建:工欲善其事,必先利其器
做嵌入式开发,尤其是 TouchGFX 这种带图形界面的项目,环境搭不好,后面全是坑。我见过太多新手卡在第一步——装了一堆软件,结果版本对不上,编译报错,连个 demo 都跑不起来。
这一章,我就带你把四样东西装好、配好:STM32CubeMX、TouchGFX Designer、MDK-ARM(Keil)或 IAR,以及一些必要的驱动和工具链。顺序很重要,别跳着来。
核心原则:所有工具尽量用最新稳定版,但别追最新尝鲜版。我吃过亏——某次用了个刚发布的 CubeMX 版本,生成的 HAL 库有 bug,查了两天才找到原因。
2.1 STM32CubeMX 的安装与配置
STM32CubeMX 是 ST 官方出品的图形化配置工具。说白了,它就是帮你生成初始化代码的——配引脚、配时钟、配外设,点几下鼠标就搞定,不用手写一堆寄存器。
第一步:下载安装包
去 ST 官网搜 "STM32CubeMX",找到下载页面。注意要注册一个 ST 账号,免费注册就行。下载那个 SetupSTM32CubeMX-xxx.exe 文件。
我的习惯:下载时选 "Latest Release" 标签下的版本,别选 "Release Candidate"。RC 版可能有未修复的 bug,生产项目别碰。
第二步:安装 Java 运行环境
CubeMX 基于 Java 开发,所以你得先装 JRE(Java Runtime Environment)。安装包会提示你,如果没有 Java 环境,它会自动跳转到 Oracle 官网。你也可以提前装好 JDK 11 或更高版本。
第三步:安装 CubeMX
双击安装包,一路 Next。安装路径我建议用默认的 C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeMX,别改到中文路径下——有些驱动对中文支持不好,会出奇怪的问题。
第四步:配置固件包
打开 CubeMX,点击 Help → Manage embedded software packages。这里会列出所有支持的 STM32 系列固件包。你只需要勾选你项目用的系列,比如 STM32F4、STM32H7 等,点击 "Install Now"。
注意:固件包很大,一个系列可能 500MB 到 1GB。下载时确保网络稳定。我曾经在公司网络下到一半断了,重新下载时进度归零……后来我学乖了,用下载工具或者挂代理。
安装完成后,在 CubeMX 主界面左下角能看到已安装的固件版本。建议保持最新,但别在项目中途升级——版本变了,生成的 HAL 库可能不兼容。
2.2 TouchGFX Designer 的安装
TouchGFX Designer 是图形界面设计工具。你可以在上面拖拽控件、设计页面、配置交互,然后它自动生成 C++ 代码。说白了,它就是 TouchGFX 的 "画图板"。
安装步骤:
- 去 ST 官网搜索 "TouchGFX Designer",下载最新版本安装包。
- 双击安装,选择安装路径。我建议装到
C:\Program Files\STMicroelectronics\TouchGFX\4.xx。 - 安装过程中会提示是否关联 CubeMX。勾选上,这样以后在 CubeMX 里可以直接启动 TouchGFX Designer。
- 安装完成后,打开 Designer,它会自动检测你电脑上的 CubeMX 版本。
版本匹配很重要:TouchGFX Designer 4.18 对应 CubeMX 6.x 以上版本。如果你用 CubeMX 5.x,可能打不开新版的 Designer 工程。我建议统一用最新稳定版。
验证安装:
打开 Designer,新建一个空白项目。如果能正常看到画布和控件面板,说明安装成功。如果报错 "Failed to load graphics engine",多半是显卡驱动问题——更新一下显卡驱动,或者检查 DirectX 版本。
2.3 MDK-ARM / IAR IDE 的安装
这两个是嵌入式开发的 "编译器+调试器" 集成环境。你选哪个?
| 对比项 | MDK-ARM (Keil) | IAR Embedded Workbench |
|---|---|---|
| 编译器 | ARMCC v5 / v6 (AC6) | IAR C/C++ Compiler |
| 调试器支持 | ST-Link, J-Link, ULINK | ST-Link, J-Link, I-Jet |
| 代码大小限制 | 免费版 32KB 限制 | 免费版 32KB 限制 (Kickstart) |
| 行业使用率 | 国内工程师用得最多 | 欧洲、汽车电子领域常见 |
| TouchGFX 兼容性 | 原生支持,模板多 | 支持,但模板少一些 |
我个人推荐:新手用 MDK-ARM。原因很简单——教程多、模板多、遇到问题好搜。我早期做项目时用 IAR,后来发现同事都用 Keil,联调时总得转格式,麻烦。
MDK-ARM 安装步骤:
- 去 Keil 官网下载 MDK-ARM 安装包(需要注册账号)。
- 双击安装,选择安装路径。注意:路径不要有中文和空格。
- 安装完成后,打开 Keil uVision,点击 File → License Management。
- 输入你的 License(正版或教育版)。如果没有,可以用评估版——但有 32KB 代码限制,做小 demo 够用。
避坑:安装 MDK 时,如果之前装过旧版本,建议先卸载干净。我遇到过两次——旧版残留的注册表导致新版本编译报错 "Error: L6406E"。折腾了一下午,最后重装系统才解决。
IAR 安装步骤:
- 去 IAR 官网下载 Embedded Workbench for ARM 安装包。
- 安装过程类似,注意选择 "Full Installation"。
- License 管理:IAR 使用 License Server 或本地文件激活。评估版也是 32KB 限制。
2.4 必要的驱动与工具链
硬件调试器是连接电脑和开发板的桥梁。没有驱动,IDE 就认不出板子。
ST-Link 驱动:
如果你用 ST 官方的 Nucleo 或 Discovery 板,板载了 ST-Link/V2 或 V3。驱动安装很简单:
- 插上开发板,Windows 会自动搜索驱动。如果没找到,去 ST 官网下载 "ST-Link USB driver"。
- 安装后,在设备管理器里能看到 "STMicroelectronics STLink dongle" 或类似名称。
- 如果显示黄色感叹号,右键更新驱动,手动指定到驱动文件夹。
J-Link 驱动:
如果你用 SEGGER 的 J-Link(比如 J-Link EDU Mini),去 SEGGER 官网下载 "J-Link Software and Documentation Pack"。安装后会自动配置驱动。
DAP-Link 驱动:
有些国产开发板用 DAP-Link(比如 ARM mbed 系列)。驱动一般免安装,但如果 Win10 不识别,可以装一个 "mbed Windows serial port driver"。
我的经验:调试器驱动装好后,最好用各自厂商的工具验证一下——ST-Link 用 "STM32 ST-LINK Utility",J-Link 用 "J-Link Commander"。能连上芯片才算成功。
工具链补充:
- Git:版本管理必备。去 git-scm.com 下载,安装时勾选 "Git Bash Here"。
- 串口工具:推荐 Putty 或 MobaXterm。调试时看串口打印日志很有用。
- 文本编辑器:VS Code 或 Notepad++。有时候改个配置文件,用记事本容易乱码。
2.5 环境验证:跑一个最小工程
工具都装好了,怎么知道能不能用?我建议你跑一个 "LED 闪烁" 的最小工程——这是嵌入式界的 "Hello World"。
快速验证步骤:
- 打开 CubeMX,选择你的开发板型号(比如 STM32F429 Discovery)。
- 配置一个 GPIO 输出,连接板载 LED。
- 生成 MDK-ARM 工程代码。
- 用 Keil 打开工程,编译,下载到板子。
- 如果 LED 闪烁了——恭喜,环境搭建成功!
如果 LED 不亮:别慌。先检查调试器驱动是否正常,再检查 CubeMX 的引脚配置是否正确。我遇到过最蠢的一次——LED 正负极接反了……
环境搭建这一步,看起来琐碎,但值得花时间一次搞定。后面 28 章的内容,都建立在这个基础上。磨刀不误砍柴工,对吧?