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 的完整生态和工具链关系:
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 扩展包
这个扩展包是核心。有两种方式安装:
- 在线安装:在 CubeMX 的菜单栏 Help → Manage embedded software packages → 搜索 X-CUBE-AI → 勾选安装。
- 离线安装:去 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 开发板连接
拿到板子后,先做这几步:
- 用 USB 线连接板子的 ST-Link 口到电脑。
- 板子上的 LED 应该会亮起。
- 打开设备管理器,确认 ST-Link 被识别。
- 安装串口终端(比如 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 的生态全景,装好了所有工具链,也准备好了硬件平台。说白了,就是给后面的模型部署搭好了舞台。
我个人觉得,环境搭建这一步最容易被忽视,但恰恰是最关键的。工具链版本不匹配、驱动没装好、板子没识别,这些问题一旦出现,后面调试模型时你会怀疑人生。