2. 开发环境搭建:STM32CubeMX安装、STM32CubeIDE安装、X-CUBE-AI扩展包安装、固件包管理

说实话,很多初学者一上来就急着写代码,结果卡在环境配置上大半天。我见过不少同事,明明板子都焊好了,结果因为工具链没装对,折腾了两天还没跑起来。这一章,咱们就把这些基础工作一次性搞定。

做AI部署,说白了就是三件事:配环境、配环境、还是配环境。工具链顺了,后面的事就水到渠成。

2.1 整体工具链概览

先看看我们要装哪些东西,它们之间是什么关系。我习惯画个图来理解,你也试试看:

STM32Cube AI 开发环境工具链 训练框架 TensorFlow / PyTorch / Keras X-CUBE-AI 扩展包 模型转换 · 优化 · 代码生成 STM32CubeMX 引脚配置 · 时钟树 · 中间件集成 STM32CubeIDE 编译 · 调试 · 下载 数据流向:训练模型 → X-CUBE-AI转换 → CubeMX工程生成 → IDE编译调试

这个流程很清晰:模型训练 → X-CUBE-AI转换 → CubeMX配置 → IDE编译。每一步都有专门的工具,各司其职。

2.2 STM32CubeMX 安装

CubeMX是STM32生态的入口。没有它,你连引脚怎么分配都不知道。我个人习惯先装这个,因为它还负责下载固件包。

2.2.1 下载与安装步骤

  1. 访问官网:打开 st.com,搜索 "STM32CubeMX"。
  2. 选择版本:我建议用最新的稳定版。别追beta版,踩过坑。
  3. 安装包:Windows下是 .exe,Linux下是 .setup 文件。
  4. 运行安装:一路默认路径就行。注意Java环境——CubeMX依赖Java Runtime。
我曾经在Linux上装CubeMX,忘了装Java,结果双击没反应。折腾了半小时才发现。嗯,先确认 java -version 能跑。

2.2.2 验证安装

启动后看到主界面,能新建工程,就算成了。第一次启动会提示安装固件包,先跳过,咱们后面统一管理。

2.3 STM32CubeIDE 安装

CubeIDE是ST官方的IDE,基于Eclipse。说实话,刚开始用Eclipse系的东西会有点不习惯,但用顺手了会发现调试功能确实强大。

2.3.1 下载与安装

  • 官网下载:同样在 st.com,搜索 "STM32CubeIDE"。
  • 版本选择:我建议和CubeMX保持同一大版本,避免兼容性问题。
  • 安装过程:Windows下直接运行安装程序。它会自动检测是否已有CubeMX。
小技巧:安装路径不要有中文和空格。我见过有人装在 "Program Files (x86)" 下,结果某些插件路径解析出错。

2.3.2 首次启动配置

第一次打开CubeIDE,会让你选工作空间(workspace)。我习惯单独建一个文件夹,比如 D:\STM32_Workspace。这样工程文件不会散得到处都是。

2.4 X-CUBE-AI 扩展包安装

这是咱们做AI部署的核心。X-CUBE-AI负责把训练好的模型转成STM32能跑的C代码。说白了,它就是一座桥,把Python世界和嵌入式世界连起来。

2.4.1 安装方式

有两种方式,我推荐第一种:

方式 操作 适用场景
通过CubeMX安装 Help → Manage Embedded Software Packages → X-CUBE-AI 推荐,自动匹配版本
手动下载 官网下载 .pack 文件,双击安装 离线环境或特定版本

我个人习惯用CubeMX装。你想想看,它自动处理依赖关系,省心。

2.4.2 版本选择

X-CUBE-AI的版本和CubeMX、固件包有对应关系。我整理了一个对照表:

X-CUBE-AI 版本 支持的CubeMX版本 支持的STM32系列 备注
v7.x ≥6.0 H7, F4, L4, G0, U5 支持TFLite量化
v8.x ≥6.5 H7, F4, L4, G0, U5, N6 新增NPU支持
v9.x(最新) ≥6.8 全系列 性能优化+新算子
避坑指南:如果你用的是STM32H743,建议用X-CUBE-AI v8.x以上。v7.x对DSP指令的支持不够完善,推理速度差不少。

2.5 固件包管理

固件包(Firmware Package)是芯片的底层支持包。里面包含了HAL库、LL库、中间件等。没有它,你的代码连GPIO都点不亮。

2.5.1 下载固件包

在CubeMX里,通过 Help → Manage Embedded Software Packages 进入管理界面。选择你的芯片系列,比如 STM32F4,然后勾选需要的版本。

我记得有一次,项目用到STM32U5,结果固件包版本太老,X-CUBE-AI死活不认。后来升级到最新版就好了。所以我的建议是:用最新稳定版。

2.5.2 固件包结构

下载完成后,固件包会放在本地。Windows下默认路径是:

C:\Users\你的用户名\STM32Cube\Repository\STM32Cube_FW_F4_V1.27.0

里面主要目录:

  • Drivers:HAL库、LL库、CMSIS
  • Middlewares:ST官方中间件,比如USB、FATFS
  • Projects:官方例程,很有参考价值
  • Utilities:工具脚本和PC端软件

2.5.3 多版本管理

同一个系列可以装多个版本。CubeMX会自动识别。你可以在工程设置里指定用哪个版本。我一般会保留两个版本:一个稳定版(生产用),一个最新版(尝鲜用)。

注意:不同版本的固件包,HAL库API可能有细微差异。升级固件包后,老工程可能需要修改代码。我吃过这个亏,升级后UART初始化函数参数变了,排查了半天。

2.6 环境验证:跑一个最小工程

装完所有东西后,我建议你立刻验证一下。别等到做项目才发现环境有问题。

  1. 打开CubeMX,新建工程,选你的板子型号。
  2. 配置一个GPIO输出,比如PC13(很多板子上的LED)。
  3. 在Pinout & Configuration里,找到X-CUBE-AI,勾选启用。
  4. 生成代码,用CubeIDE打开。
  5. 编译,下载到板子,看LED能不能闪。

如果LED亮了,恭喜你,环境搭建成功。如果没亮,别慌,检查一下:

  • 驱动装了吗?ST-Link驱动。
  • 板子供电正常吗?
  • CubeMX生成的工程路径有没有中文?
我的经验:第一次跑通这个最小工程,后面做AI部署就成功了一半。工具链通了,剩下的就是模型和算法的事了。

好了,环境搭建就到这里。工具装好了,下一件事就是准备模型。不过那是后面章节的内容了。先把这些装好,跑通,咱们再往下走。