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

做嵌入式AI开发,环境搭建是第一道坎。我见过不少朋友卡在这一步,工具链版本对不上,或者漏装了某个包,折腾半天连个demo都跑不起来。说实话,这章内容看起来琐碎,但每一步都踩过坑的我,会尽量把关键点给你讲透。

咱们要装的东西,说白了就四大块:

  • STM32CubeMX —— 图形化配置芯片外设和时钟
  • STM32CubeIDE —— 写代码、编译、调试的一体化环境
  • X-CUBE-AI 扩展包 —— 把训练好的模型“翻译”成STM32能跑的代码
  • Python + TensorFlow —— 训练模型的“大本营”

它们之间的关系,我画了张图,你看一眼就明白了:

开发环境整体架构 Python + TensorFlow 模型训练 数据集准备 模型导出(.h5 / .tflite) X-CUBE-AI 模型分析 & 优化 生成 C 代码 验证 & 基准测试 STM32CubeMX + IDE 芯片配置 代码编译 & 下载 调试 & 运行 工作流程 Python 训练模型 → X-CUBE-AI 转换 → CubeMX 配置 → IDE 编译下载 推荐版本组合(2024年稳定方案) STM32CubeMX 6.12 + STM32CubeIDE 1.16 + X-CUBE-AI 9.1 Python 3.10 + TensorFlow 2.13 / TFLite 2.13

2.1 STM32CubeMX 安装

CubeMX 是 ST 官方出品的图形化配置工具。你用它选芯片型号、配引脚、设时钟,最后自动生成初始化代码。我个人习惯把它当作项目的“起点”。

安装步骤其实很简单:

  1. 去 ST 官网搜 STM32CubeMX,下载最新版安装包(需要注册账号,免费)。
  2. 双击安装,一路 Next。注意安装路径不要有中文或空格。
  3. 安装完成后,首次启动会提示你更新固件包。建议先不更新,等用到具体芯片时再下载。
我的习惯: 我会在 CubeMX 里单独建一个文件夹放固件包,比如 D:\STM32Cube\Repository。这样重装系统后不用重新下载,直接指定路径就行。

2.2 STM32CubeIDE 安装

CubeIDE 是 ST 基于 Eclipse 打造的免费 IDE。它集成了编译器、调试器,还自带 CubeMX 的配置界面。说白了,你装这一个就能搞定配置+编码+调试。

安装要点:

  • 同样去 ST 官网下载 STM32CubeIDE 安装包。
  • 安装时会让你选 Debug Probe 驱动。如果你用 ST-Link,默认勾选就行。
  • 安装路径同样避免中文。
注意: CubeIDE 自带 Java 运行环境,不需要你额外装 JDK。但如果你电脑上已经有其他版本的 Eclipse,可能会冲突。我建议把 CubeIDE 当作独立工具使用,不要混装插件。

2.3 X-CUBE-AI 扩展包安装

这是咱们课程的核心工具。X-CUBE-AI 能把 TensorFlow、Keras、ONNX 等框架训练好的模型,转换成 STM32 能调用的 C 代码。它还会做量化、内存优化,甚至生成基准测试报告。

安装方式有两种:

方式 操作 适用场景
通过 CubeMX 安装 在 CubeMX 的 Help → Manage Embedded Software Packages 中搜索 X-CUBE-AI,勾选后下载 推荐,版本自动匹配
手动下载安装 从 ST 官网下载 en.x-cube-ai.zip,解压后放到 CubeMX 的 Repository 目录 网络不好或需要特定版本

关键点: X-CUBE-AI 安装后,会在 CubeMX 的 Pinout & Configuration → Software Packs 里出现。你点开它,就能导入模型、配置运行时参数了。

我记得第一次用的时候,找了半天没找到入口。后来才发现,得先在 CubeMX 里选中一个 STM32 芯片,才能看到 Software Packs 的选项。嗯,这个坑我帮你踩过了。

2.4 Python 与 TensorFlow 环境配置

这部分是训练模型的基础。我建议用 Anaconda 来管理 Python 环境,这样不同项目之间不会互相干扰。

具体步骤:

  1. 安装 Anaconda(或者 Miniconda,更轻量)。
  2. 创建虚拟环境:conda create -n stm32ai python=3.10
  3. 激活环境:conda activate stm32ai
  4. 安装 TensorFlow:pip install tensorflow==2.13.0
  5. 安装依赖库:pip install numpy matplotlib scikit-learn
避坑指南: 我曾经在 Windows 上直接装 TensorFlow 2.16,结果发现 X-CUBE-AI 9.1 不支持。后来查文档才知道,X-CUBE-AI 对 TensorFlow 版本有严格限制。所以,一定要先确认版本兼容性。目前最稳的组合是 TF 2.13 + X-CUBE-AI 9.1。

验证安装是否成功,你可以在终端里跑一下:

python -c "import tensorflow as tf; print(tf.__version__)"

如果输出了 2.13.0,恭喜你,环境搭好了。

2.5 验证整个工具链

环境都装完了,怎么知道它们能不能协同工作?我一般会跑一个“最小验证流程”:

  • 在 Python 里训练一个简单的全连接网络(比如识别手写数字的 3 层 MLP)。
  • 导出为 .h5 文件。
  • 在 CubeMX 里通过 X-CUBE-AI 导入这个模型,生成 C 代码。
  • 在 CubeIDE 里编译、下载到开发板,跑一下推理。

这个流程走通了,后面的课程你就放心学。如果卡在哪一步,大概率是版本问题。别慌,回头检查一下版本号,或者去 ST 社区搜一下,基本都有答案。

总结一下: 环境搭建没有捷径,但按我的经验,只要版本对、路径没中文、X-CUBE-AI 装对了位置,基本一次过。后面咱们就要开始写第一个 AI 模型了,到时候你会感谢现在认真搭环境的自己。