2. 开发环境搭建:安装STM32CubeMX、STM32CubeIDE、X-CUBE-AI扩展包
好,咱们正式开始动手。这一章说白了就是「把家伙事儿备齐」。我见过太多人卡在环境搭建上,一卡就是半天,心态直接崩了。别急,跟着我的节奏来,半小时内搞定。
2.1 版本兼容性——先看这个,不然白干
为什么我要把版本兼容性放在第一个讲?因为我在项目里吃过亏。有一次帮客户调试一个手势识别模型,折腾了两天发现是CubeMX和X-CUBE-AI版本不匹配,生成的代码根本跑不起来。嗯,从那以后,我养成了一个习惯:装软件前先看兼容性矩阵。
STM32CubeAI的版本依赖关系,说白了就是三个东西要能「对上话」:
- STM32CubeMX:负责生成初始化代码和AI配置
- STM32CubeIDE:负责编译和调试
- X-CUBE-AI扩展包:负责把模型转成STM32能跑的代码
这三者的版本关系,我整理了一个表格,你直接对着看:
| X-CUBE-AI版本 | 最低CubeMX版本 | 最低CubeIDE版本 | 支持的TensorFlow版本 |
|---|---|---|---|
| 7.3.0 | 6.8.0 | 1.13.0 | 2.11 - 2.15 |
| 8.0.0 | 6.9.0 | 1.14.0 | 2.12 - 2.16 |
| 8.1.0(最新) | 6.10.0 | 1.15.0 | 2.13 - 2.17 |
2.2 安装STM32CubeMX——这个最简单
去ST官网下载,或者用我给你的离线包。我个人习惯用离线包,因为官网下载速度你懂的……
安装步骤就三步:
- 双击安装包,一路Next
- 选择安装路径(建议不要有中文和空格)
- 等待安装完成,启动软件
启动后你会看到一个界面,左边是芯片选择,右边是示例项目。先别急着点,我们后面会用到。
2.3 安装STM32CubeIDE——开发的主战场
CubeIDE是ST官方基于Eclipse打造的IDE,集成了编译器和调试器。说白了,你写代码、编译、下载、调试,全在这里完成。
安装时注意两点:
- Java环境:CubeIDE自带JRE,不需要你额外装Java
- 工作空间路径:我建议单独建一个文件夹,比如
D:\STM32_Workspace,别放C盘
安装完成后,第一次启动会让你选工作空间。选好之后,界面就出来了。嗯,第一次看可能会觉得有点复杂,别慌,我们后面会慢慢熟悉。
2.4 安装X-CUBE-AI扩展包——核心中的核心
这个扩展包才是我们今天的主角。它负责把训练好的模型(比如TensorFlow的.h5文件)转换成STM32能理解的C代码。
安装方式有两种:
方式一:通过CubeMX在线安装(推荐)
- 打开CubeMX,点击菜单栏
Help → Manage embedded software packages - 在搜索框输入
X-CUBE-AI - 勾选你需要的版本,点击Install
- 等待下载完成(大概200MB左右)
方式二:手动安装离线包
- 从ST官网下载
en.x-cube-ai.pack文件 - 在CubeMX中点击
Help → Manage embedded software packages - 点击左下角的
From Local,选择你下载的.pack文件 - 安装完成
Pinout & Configuration 页面,左侧 Software Packs 下面应该能看到 X-CUBE-AI 的选项。如果看不到,说明没装成功。
2.5 验证安装——这一步不能省
我曾经见过有人装完了所有软件,结果发现CubeIDE里找不到X-CUBE-AI的插件。为什么?因为版本不匹配。所以,装完之后一定要做验证。
验证步骤:
- 打开CubeMX,新建一个项目,选择任意一款STM32芯片(比如STM32F746G-DISCO)
- 在
Pinout & Configuration页面,点击Software Packs → Select Components - 如果看到
X-CUBE-AI的组件列表,说明安装成功 - 随便勾选一个组件,点击OK,然后生成代码
- 用CubeIDE打开生成的项目,如果能正常编译通过,说明整个环境通了
2.6 常见问题与避坑指南
这里我总结几个我踩过的坑,你遇到了可以直接翻到这里看:
- 问题1:CubeMX提示找不到X-CUBE-AI
原因:版本不匹配。去Help → Manage embedded software packages里检查一下已安装的版本,和你的CubeMX版本对不对得上。 - 问题2:生成代码后编译报错,提示缺少头文件
原因:CubeIDE的工程设置里没有包含X-CUBE-AI的路径。解决方法:右键项目 → Properties → C/C++ Build → Settings → Include paths,手动添加X-CUBE-AI的路径。 - 问题3:模型转换时报错,说算子不支持
原因:你的模型里用了X-CUBE-AI不支持的算子。这个我们后面会详细讲,先记住:尽量用标准的Conv2D、Dense、ReLU这些,别用太花哨的自定义层。
好了,环境搭建就到这里。下一章我们开始真正动手——把第一个模型跑起来。你想想看,当你的模型在STM32上输出第一个推理结果时,那种成就感,嗯,值得期待。