2、开发环境搭建:STM32CubeMX安装、STM32CubeIDE配置、X-CUBE-AI扩展包安装、Python环境准备

好,咱们正式开始动手。这一章要搭环境,说白了就是把所有工具都装好、配通。我见过不少同学,代码写得挺溜,结果卡在环境搭建上,一卡就是半天。别急,跟着我的节奏来,半小时内搞定。

2.1 STM32CubeMX安装——图形化配置的起点

STM32CubeMX,我个人习惯叫它“图形化配置神器”。你想想看,以前配个时钟树、管脚映射,得翻几百页数据手册。现在呢?点几下鼠标就完事。

安装步骤其实很简单:

  1. 去ST官网下载最新版安装包。注意区分Windows、Linux、macOS版本。
  2. 双击运行,一路Next。嗯,这里要注意:安装路径不要带中文,否则后面编译会报一些莫名其妙的错。
  3. 安装完成后,首次启动会提示你选择工作空间。我建议单独建一个文件夹,比如 D:\STM32Workspace,别跟其他项目混在一起。
⚠️ 避坑指南: 我曾经在Win10上装完CubeMX,打开后界面一片空白。后来发现是Java环境没装对。CubeMX依赖Java Runtime,如果你电脑上没有,它会自动帮你装。但有时候自动安装会失败。解决办法:手动装一个JDK 11或更高版本,再重启CubeMX。

装好之后,你可以先随便选一个芯片,比如STM32F407VGT6,试试能不能正常打开配置界面。能正常显示管脚图、时钟树,那就说明安装成功了。

2.2 STM32CubeIDE配置——从安装到第一次编译

STM32CubeIDE,说白了就是ST官方基于Eclipse打造的集成开发环境。它把CubeMX的配置功能和IDE的编译调试功能合二为一了。我个人觉得,对于AI集成开发来说,用这个比Keil顺手。

安装要点:

  • 同样去官网下载,同样注意路径不要有中文。
  • 安装过程中会提示安装驱动,建议全部勾上。尤其是ST-Link驱动,后面调试全靠它。
  • 安装完成后,第一次启动会初始化工作空间。我习惯把工作空间设在CubeMX的workspace同一个目录下,方便管理。

配置调试器:

我第一次用CubeIDE时,写完代码点调试,结果提示找不到调试器。后来才发现,默认的调试配置没设对。你按这个步骤来:

  1. 点击菜单栏 RunDebug Configurations
  2. 选择你的工程,在 Debugger 选项卡里,把 Debug probe 选成 ST-LINK (OpenOCD)
  3. 接口选 SWD,速度建议先选 4 MHz,稳定后再往上调
💡 小技巧: 如果你用的是第三方的J-Link,也可以在这里切换。不过我个人建议,做AI项目时尽量用ST-Link,兼容性最好,省得折腾。

2.3 X-CUBE-AI扩展包安装——让STM32学会“思考”

X-CUBE-AI,这才是咱们课程的核心。它能把训练好的神经网络模型,转换成能在STM32上跑的C代码。说白了,就是给单片机装上“AI大脑”。

安装方式有两种:

方式 操作步骤 适用场景
通过CubeMX安装 打开CubeMX → Help → Manage embedded software packages → 搜索X-CUBE-AI → 勾选安装 推荐,自动匹配版本
手动下载安装 官网下载压缩包 → 解压到CubeMX的Repository目录 网络不好时备用

我建议你用第一种方式。为什么呢?因为版本匹配问题。我曾经手动装过一个旧版X-CUBE-AI,结果跟CubeMX版本不兼容,折腾了一下午才找到原因。自动安装能避免这种坑。

验证安装是否成功:

装完之后,新建一个工程,在 Pinout & Configuration 标签页里,左侧 Software Packs 下面应该能看到 X-CUBE-AI 的选项。点开它,如果能正常显示 AI 配置界面,那就说明装好了。

📌 重点: X-CUBE-AI 目前支持 TensorFlow Lite、Keras、ONNX、PyTorch 等主流框架。但要注意,不是所有算子都支持。比如某些自定义层,转换时会报错。我的经验是:先用官方支持的算子搭模型,等跑通了再优化。

2.4 Python环境准备——AI模型训练的基石

Python环境,说白了就是咱们训练AI模型的地方。虽然X-CUBE-AI能转换模型,但模型本身还得靠Python来训练。所以这一步不能省。

我的推荐配置:

  • Python版本: 3.8 或 3.9。别追新,3.10以上有些库还不兼容。
  • 包管理器: Anaconda 或 Miniconda。我习惯用Miniconda,轻量,够用。
  • 核心库: TensorFlow 2.x 或 PyTorch 1.x,加上 numpy、matplotlib、scikit-learn

安装步骤:

  1. 下载Miniconda安装包,一路默认安装。
  2. 打开Anaconda Prompt(Windows)或终端(Linux/Mac)。
  3. 创建一个新环境:conda create -n stm32_ai python=3.9
  4. 激活环境:conda activate stm32_ai
  5. 安装TensorFlow:pip install tensorflow==2.10(注意,2.10是最后一个支持GPU的版本,如果你有NVIDIA显卡,建议用这个)
⚠️ 避坑指南: 我曾经在装TensorFlow时,直接用了 pip install tensorflow,结果装了个2.15版本,跟X-CUBE-AI不兼容,转换模型时报了一堆错。后来查文档才发现,X-CUBE-AI 7.0版本最高只支持到TensorFlow 2.12。所以,装之前一定先去ST官网查一下兼容性列表。

验证环境:

装完之后,在终端里输入 python 进入交互模式,然后输入:

import tensorflow as tf
print(tf.__version__)

如果能正常打印出版本号,那就说明环境搭好了。如果报错,多半是依赖没装全,用 pip list 检查一下缺什么。

2.5 整体环境验证——跑通第一个AI示例

所有工具都装好了,咱们来验证一下整个链路通不通。我建议你跑一下X-CUBE-AI自带的示例工程。

操作步骤:

  1. 打开CubeMX,新建一个工程,选你手头的开发板型号(比如NUCLEO-F767ZI)。
  2. Software Packs 里启用X-CUBE-AI,选择 AI 功能。
  3. 导入一个预训练模型。X-CUBE-AI自带了一些示例模型,比如 image_classificationmobilenet_v1
  4. 配置好串口,用于输出推理结果。
  5. 生成代码,用CubeIDE打开,编译下载。

我第一次跑通这个示例时,看到开发板串口输出 Class: coffee mug, Confidence: 0.95,说实话,挺激动的。一个单片机,居然能识别出咖啡杯。这就是AI集成的魅力。

💡 小技巧: 如果编译时提示内存不够,可以在CubeMX里调整 Project ManagerLinker Settings,把堆栈空间改大一点。我一般设成 0x1000 起步。

好了,环境搭建就到这里。下一章咱们开始讲怎么用Python训练一个简单的模型,然后把它部署到STM32上。到时候你会发现,前面这些准备工作,都是值得的。