2. 开发环境搭建:从零开始,跑通第一个AI例程

说实话,很多同学卡在环境搭建这一步。不是工具难装,是版本匹配太容易踩坑。我刚开始用X-CUBE-AI时,光装包就折腾了两天——后来发现是CubeMX版本太老,跟扩展包对不上。

这一章,咱们把环境捋顺。跟着我的步骤走,半小时内让板子跑起来。

2.1 工具链全景图

先搞清楚我们要装哪些东西。别急着下载,心里有个谱再动手。

STM32Cube AI 开发环境全景图 STM32CubeMX X-CUBE-AI 扩展包 IDE(MDK/IAR/STM32CubeIDE) AI模型 + 初始化代码 编译后的 .hex / .bin STM32 开发板(NUCLEO / Discovery) 核心流程:CubeMX配置 → 导入AI模型 → 生成代码 → 编译 → 下载到板子

说白了,就是三件套:CubeMX做配置,X-CUBE-AI塞模型,IDE编译下载。板子嘛,NUCLEO或Discovery都行。

2.2 安装STM32CubeMX

这个最简单,去ST官网下载最新版。我个人习惯用1.14.0以上版本,对AI扩展包支持更稳。

安装小贴士: 路径不要带中文!不要带空格!我见过有人装在"Program Files (x86)"里,结果后面生成代码报路径错误。老老实实装到 C:\STM32CubeMX 最省心。

装完后,打开软件。你会看到主界面——别慌,我们只关心两个地方:

  • File → New Project:新建工程
  • Help → Manage embedded software packages:管理扩展包

2.3 安装X-CUBE-AI扩展包

这一步是重点。X-CUBE-AI是ST官方的AI工具包,负责把训练好的模型转成STM32能跑的代码。

操作步骤:

  1. 打开CubeMX,点击 Help → Manage embedded software packages
  2. 在弹出窗口里,找到 X-CUBE-AI 这一行
  3. 勾选你需要的版本(我建议选最新稳定版,比如8.1.0)
  4. 点击 Install,等它下载完
注意: 安装过程需要联网,而且包不小(大概200MB+)。我曾经在客户现场用手机热点下,等了快半小时。建议提前下载好离线包,或者找个网好的地方。

装完后,你可以在 Installed 标签页看到它。如果没出现,点一下 Refresh 按钮。

2.4 开发板准备与验证

板子我推荐 NUCLEO-F746ZG 或 NUCLEO-H743ZI。为什么?因为AI模型对算力有要求,F4以下跑起来太吃力。我自己项目里用的最多的是F746,性价比高。

开发板型号 内核 Flash RAM 适合场景
NUCLEO-F401RE Cortex-M4 512KB 96KB 轻量级模型(<10KB)
NUCLEO-F746ZG Cortex-M7 1MB 320KB 中等模型(10-100KB)
NUCLEO-H743ZI Cortex-M7 2MB 1MB 复杂模型(>100KB)

拿到板子后,先做一件事:验证板子本身是好的。别等代码写完了才发现板子有问题。

验证步骤:

  1. 用USB线连接板子到电脑
  2. 板子上的绿色LED应该常亮或闪烁(出厂预装程序)
  3. 电脑设备管理器里出现 ST-Link 设备
  4. 打开CubeMX,点击 File → New Project,选择你的板子型号
  5. 随便配一个GPIO输出,生成代码,编译下载
  6. 看板子上的LED是否按你预期亮灭

避坑指南: 我曾经遇到过ST-Link驱动没装好,设备管理器里显示黄色感叹号。解决办法是去ST官网下载 ST-Link USB driver 重装。别用Windows自动更新,那个经常装不对。

2.5 跑通第一个AI例程

环境搭好了,咱们来点真格的。CubeMX自带了一些AI示例,我们拿一个最简单的 手势识别 来验证。

操作流程:

  1. 新建工程,选你的板子型号
  2. 在 Software Packs 里勾选 X-CUBE-AI
  3. 在 Pinout & Configuration 里找到 X-CUBE-AI 选项卡
  4. 点击 Add Network,选择预置的 Gesture_Recognition 模型
  5. 配置串口(USART2,波特率115200)用于打印结果
  6. 生成代码,编译,下载到板子
  7. 打开串口助手,对着板子做手势(左右挥动),看输出

如果串口打印出类似 Gesture: Left 或 Gesture: Right 的信息,恭喜你——环境搭建成功!

我个人的小习惯: 第一次跑通后,我会把整个工程文件夹备份一份。后面做模型替换时,直接复制这个工程改,省得重新配外设。你想想看,每次配串口、配时钟多麻烦,一次配好,后面只管换模型。

2.6 常见问题速查

嗯,这里我把踩过的坑列出来,你遇到了直接对照:

问题现象 可能原因 解决办法
CubeMX找不到X-CUBE-AI 版本不匹配或未安装 升级CubeMX到最新版,重新安装扩展包
编译报错:找不到头文件 工程路径有中文或空格 重建工程,路径全英文
下载失败:No ST-Link detected 驱动问题或USB线坏了 重装ST-Link驱动,换USB线
串口打印乱码 波特率不匹配 检查CubeMX里配的波特率是否和串口助手一致
AI模型推理结果全为0 输入数据格式不对 检查模型输入尺寸和实际数据是否匹配

我曾经有一次,模型推理结果全是0,查了两天。最后发现是输入数据的字节序搞反了——STM32是小端,我喂的数据是大端。这种细节,你不踩一次坑真记不住。

2.7 本章小结

到这步,你的开发环境应该已经跑通了。我们装了CubeMX、X-CUBE-AI,验证了板子,还跑了个手势识别的例程。说白了,后面的所有模型压缩和性能调优,都建立在这个环境之上。