1. 课程导论与开发环境搭建:STM32Cube.AI 生态全景、工具链安装、硬件平台准备

各位同学,欢迎来到《STM32Cube.AI 模型版本管理调试与部署实战》的第一章。

说实话,我刚开始接触嵌入式 AI 的时候,也踩过不少坑。那时候市面上能用的工具少,文档也不全,一个模型从训练到跑在板子上,折腾好几天是常事。现在有了 STM32Cube.AI,情况好多了。但工具链再完善,如果一开始环境没搭对,后面调试起来照样头疼。

所以这一章,咱们先把地基打牢。我会带着你把整个生态看清楚,再把工具链装好,最后把硬件平台准备好。嗯,咱们一步一步来。

1.1 STM32Cube.AI 生态全景

STM32Cube.AI 是什么?说白了,它就是 ST 官方提供的一套工具,专门用来把训练好的神经网络模型,转换成能在 STM32 单片机上跑的 C 代码。

你想想看,一个在 PC 上用 Python 训练出来的模型,动辄几十兆甚至上百兆的参数,怎么塞进只有几百 KB 或几 MB Flash 的 MCU 里?这就是 STM32Cube.AI 要解决的问题。

整个生态包含以下几个核心部分:

  • STM32CubeMX:图形化配置工具,用来生成初始化代码。它集成了 AI 模型导入和配置功能。
  • STM32Cube.AI 扩展包:核心引擎,负责模型解析、优化和代码生成。
  • X-CUBE-AI:这是扩展包的官方名称,在 ST 官网可以下载。
  • STM32 硬件平台:支持 AI 推理的 MCU 系列,比如我们课程用的 H743 和 F746。
  • 第三方训练框架:Keras、TensorFlow Lite、ONNX、PyTorch 等,都可以作为输入。

核心流程:训练模型 → 导出为标准格式 → 导入 CubeMX → 配置硬件 → 生成代码 → 编译部署。

我个人习惯把整个流程画成一张图,这样思路更清楚。下面这张 SVG 图展示了 STM32Cube.AI 的完整生态和工具链关系:

STM32Cube.AI 生态全景图 训练框架 Keras / TF Lite / ONNX 模型导出 .h5 / .tflite / .onnx STM32CubeMX 导入模型 + 配置硬件 X-CUBE-AI 扩展包 模型优化 + 代码生成 生成 C 代码 network.c / network.h 硬件平台 STM32H743 / STM32F746 编译部署 STM32CubeIDE / MDK / IAR 注意 模型需先量化再部署

1.2 工具链安装

工具链安装这块,我建议你按照下面的顺序来,避免依赖冲突。我在项目里见过有人先装 CubeIDE 再装 CubeMX,结果版本对不上,折腾了半天。

1.2.1 安装 Java 运行环境

STM32CubeMX 依赖 Java。别问为什么,ST 就是这么设计的。你直接去官网下载 JDK 11 或更高版本就行。

小技巧:安装完后在命令行输入 java -version,确认版本号。如果提示找不到命令,记得配一下环境变量。

1.2.2 安装 STM32CubeMX

去 ST 官网下载最新版。目前稳定版是 6.x。安装过程很简单,一路 Next 就行。

  • 下载地址:st.com/stm32cubemx
  • 安装后首次启动会提示更新固件包,建议先跳过,后面再下载。

1.2.3 安装 X-CUBE-AI 扩展包

这个扩展包是核心。有两种方式安装:

  1. 在线安装:在 CubeMX 的菜单栏 Help → Manage embedded software packages → 搜索 X-CUBE-AI → 勾选安装。
  2. 离线安装:去 ST 官网下载 .pack 文件,然后在 CubeMX 中通过 File → Import 导入。

注意:X-CUBE-AI 的版本要和 CubeMX 匹配。我曾经遇到过 7.0 的扩展包装在 6.8 的 CubeMX 上,导入模型时直接崩溃。建议都用最新版。

1.2.4 安装 STM32CubeIDE

这是 ST 官方的集成开发环境,基于 Eclipse。我们后面编译和调试都会用到它。

  • 下载地址:st.com/stm32cubeide
  • 安装时记得勾选对应 MCU 的支持包。

1.2.5 安装串口驱动

如果你用的是开发板自带的 ST-Link,需要安装驱动。Windows 10/11 通常自动识别,但老系统可能需要手动装。

验证安装:打开设备管理器,看到 "STMicroelectronics STLink dongle" 就说明驱动正常。

1.3 硬件平台准备

我们课程主要用两块板子:STM32H743 和 STM32F746。为什么选它们?

特性 STM32H743 STM32F746
内核 Cortex-M7 @ 480 MHz Cortex-M7 @ 216 MHz
Flash 2 MB 1 MB
SRAM 1 MB 320 KB
AI 算力 强(适合复杂模型) 中(适合轻量模型)
典型应用 目标检测、语音识别 手势识别、异常检测

我个人建议:如果你刚开始学,先用 F746 练手。它的资源虽然少一些,但反而能逼着你做模型压缩和量化,这对实际项目很有帮助。H743 更适合跑大一点的模型,比如 MobileNet 或 Tiny YOLO。

1.3.1 开发板连接

拿到板子后,先做这几步:

  1. 用 USB 线连接板子的 ST-Link 口到电脑。
  2. 板子上的 LED 应该会亮起。
  3. 打开设备管理器,确认 ST-Link 被识别。
  4. 安装串口终端(比如 Putty 或 MobaXterm),波特率设为 115200。

避坑指南:我曾经遇到过板子连上电脑后没反应,后来发现是 USB 线的问题。有些线只能充电不能传数据,一定要用带数据功能的线。

1.3.2 验证硬件

我们可以先跑一个简单的点灯程序,确认开发板工作正常。在 CubeMX 中新建工程,选择对应 MCU,配置一个 GPIO 输出,生成代码后编译下载。

// 简单的 LED 闪烁代码片段
HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin);
HAL_Delay(500);

如果 LED 以 0.5 秒间隔闪烁,说明硬件和工具链都正常。嗯,这一步虽然简单,但能帮你排除很多基础问题。

1.4 本章小结

这一章我们走完了 STM32Cube.AI 的生态全景,装好了所有工具链,也准备好了硬件平台。说白了,就是给后面的模型部署搭好了舞台。

我个人觉得,环境搭建这一步最容易被忽视,但恰恰是最关键的。工具链版本不匹配、驱动没装好、板子没识别,这些问题一旦出现,后面调试模型时你会怀疑人生。