2. 开发环境搭建:工欲善其事,必先利其器

做嵌入式开发,尤其是 TouchGFX 这种带图形界面的项目,环境搭不好,后面全是坑。我见过太多新手卡在第一步——装了一堆软件,结果版本对不上,编译报错,连个 demo 都跑不起来。

这一章,我就带你把四样东西装好、配好:STM32CubeMX、TouchGFX Designer、MDK-ARM(Keil)或 IAR,以及一些必要的驱动和工具链。顺序很重要,别跳着来。

核心原则:所有工具尽量用最新稳定版,但别追最新尝鲜版。我吃过亏——某次用了个刚发布的 CubeMX 版本,生成的 HAL 库有 bug,查了两天才找到原因。

开发环境搭建知识体系 开发环境搭建 STM32CubeMX TouchGFX Designer MDK-ARM / IAR 驱动 & 工具链 安装 Java 环境 配置固件包路径 安装 Designer 关联 CubeMX 安装 Keil / IAR 破解 / License ST-Link 驱动 J-Link / DAP-Link 建议:先装 CubeMX → 再装 TouchGFX Designer → 最后装 IDE

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 的 "画图板"。

安装步骤:

  1. 去 ST 官网搜索 "TouchGFX Designer",下载最新版本安装包。
  2. 双击安装,选择安装路径。我建议装到 C:\Program Files\STMicroelectronics\TouchGFX\4.xx。
  3. 安装过程中会提示是否关联 CubeMX。勾选上,这样以后在 CubeMX 里可以直接启动 TouchGFX Designer。
  4. 安装完成后,打开 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 安装步骤:

  1. 去 Keil 官网下载 MDK-ARM 安装包(需要注册账号)。
  2. 双击安装,选择安装路径。注意:路径不要有中文和空格。
  3. 安装完成后,打开 Keil uVision,点击 File → License Management。
  4. 输入你的 License(正版或教育版)。如果没有,可以用评估版——但有 32KB 代码限制,做小 demo 够用。

避坑:安装 MDK 时,如果之前装过旧版本,建议先卸载干净。我遇到过两次——旧版残留的注册表导致新版本编译报错 "Error: L6406E"。折腾了一下午,最后重装系统才解决。

IAR 安装步骤:

  1. 去 IAR 官网下载 Embedded Workbench for ARM 安装包。
  2. 安装过程类似,注意选择 "Full Installation"。
  3. 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"。

快速验证步骤:

  1. 打开 CubeMX,选择你的开发板型号(比如 STM32F429 Discovery)。
  2. 配置一个 GPIO 输出,连接板载 LED。
  3. 生成 MDK-ARM 工程代码。
  4. 用 Keil 打开工程,编译,下载到板子。
  5. 如果 LED 闪烁了——恭喜,环境搭建成功!

如果 LED 不亮:别慌。先检查调试器驱动是否正常,再检查 CubeMX 的引脚配置是否正确。我遇到过最蠢的一次——LED 正负极接反了……

环境搭建这一步,看起来琐碎,但值得花时间一次搞定。后面 28 章的内容,都建立在这个基础上。磨刀不误砍柴工,对吧?