2. 开发环境搭建:STM32CubeMX 安装、STM32CubeIDE 安装、X-CUBE-AI 扩展包安装、Python 与 TensorFlow Lite 环境配置

说实话,做嵌入式AI开发,最怕的不是算法难,而是环境搭到一半卡住了。我见过太多人卡在安装这一步,然后就开始怀疑人生。别急,这一章我带你一步步把工具链捋顺。

咱们要装的东西其实就四块:STM32CubeMX(芯片配置工具)、STM32CubeIDE(集成开发环境)、X-CUBE-AI(AI模型转换扩展包)、以及Python + TensorFlow Lite(模型训练与量化环境)。

整体流程速览:CubeMX生成初始化代码 → CubeIDE编译调试 → X-CUBE-AI把模型转成C代码 → Python环境训练模型并导出.tflite。四者缺一不可。

开发环境四件套 STM32CubeMX 芯片配置 / 引脚分配 STM32CubeIDE 编译 / 调试 / 下载 X-CUBE-AI 模型转C代码 Python + TFLite 训练 / 量化 / 导出 数据流向:Python训练 → .tflite → X-CUBE-AI转换 → CubeMX集成 → CubeIDE编译 推荐版本组合(2024年稳定版) CubeMX 6.12 + CubeIDE 1.16 + X-CUBE-AI 9.1 + Python 3.10 + TensorFlow 2.15 注意:X-CUBE-AI 9.x 不再支持 TensorFlow 1.x 模型

2.1 STM32CubeMX 安装

CubeMX 是 ST 官方出品的芯片配置工具。说白了,它就是帮你省掉手写初始化代码的苦力活。你点点鼠标,它就把 GPIO、时钟、外设全给你配好,还能生成 Makefile 或 IDE 工程。

安装步骤:

  1. 去 ST 官网搜 "STM32CubeMX",下载最新版安装包(需要注册账号,免费)。
  2. Windows 直接双击 .exe,Linux 用 .sh 脚本。我建议装到默认路径,省得后面找不着。
  3. 安装完成后,第一次启动会提示下载固件包。别急,先关掉,后面用到哪个芯片再下哪个。

我的经验:CubeMX 的固件包下载速度有时候很慢。我习惯在 "Help → Manage embedded software packages" 里只勾选自己用的系列,比如 STM32F4、STM32L4,别一股脑全下,硬盘受不了。

2.2 STM32CubeIDE 安装

CubeIDE 是 ST 基于 Eclipse 魔改的 IDE,集成了编译器、调试器、FreeRTOS 插件等等。我个人觉得它比 Keil 清爽,比 IAR 便宜(免费),而且跟 CubeMX 无缝衔接。

安装要点:

  • 同样从 ST 官网下载,注意区分 Windows/Linux/macOS 版本。
  • 安装过程中会提示安装驱动,务必勾选,否则后面连不上调试器。
  • 安装路径不要有中文,不要有空格。我见过有人装在 "D:\程序\STM32" 然后编译报错,折腾半天才发现是路径问题。

注意:CubeIDE 自带 GCC 编译器,不需要额外装 ARM GCC。但如果你之前装过其他版本的 GCC,注意环境变量别冲突了。我曾经被这个坑过——两个 GCC 版本打架,编译出来的代码跑飞了。

2.3 X-CUBE-AI 扩展包安装

X-CUBE-AI 是 ST 的 AI 模型转换工具。它能把 TensorFlow Lite、Keras、ONNX 等格式的模型,转成能在 STM32 上跑的 C 代码。说白了,它就是 AI 模型和嵌入式之间的翻译官。

安装方式有两种:

方式 操作 适用场景
CubeMX 内安装 Help → Manage embedded software packages → X-CUBE-AI → 勾选版本 → Install 最推荐,版本自动匹配
手动下载安装 官网下载 .pack 文件 → CubeMX 中 File → Import → 选择 .pack 网络不好或需要特定旧版本

关键点:X-CUBE-AI 安装完成后,在 CubeMX 的 "Pinout & Configuration" 选项卡里会出现 "Software Packs" 分类,点进去就能看到 X-CUBE-AI 的配置界面。如果看不到,说明没装成功。

2.4 Python 与 TensorFlow Lite 环境配置

这部分是很多嵌入式工程师的短板。别怕,咱们只装必要的,不搞花里胡哨的。

我推荐的 Python 环境:

  • Python 3.10(别用 3.12,有些库还没适配)
  • 建议用虚拟环境,避免跟系统 Python 打架

安装命令(在终端里逐条执行):

# 创建虚拟环境(可选但强烈推荐)
python -m venv stm32ai_env
# Windows 激活
stm32ai_env\Scripts\activate
# Linux/macOS 激活
source stm32ai_env/bin/activate

# 安装核心库
pip install tensorflow==2.15.0
pip install numpy matplotlib
pip install pillow  # 图像处理,后面做视觉模型会用

避坑指南:我曾经在 Windows 上装 TensorFlow 2.16 时遇到 DLL 加载失败,折腾了两天。后来发现 2.15 是最稳的版本,跟 X-CUBE-AI 9.1 配合完美。所以别追新,稳定第一。

验证安装:

python -c "import tensorflow as tf; print(tf.__version__)"
# 输出应为 2.15.0

python -c "import tflite_runtime; print('TFLite Runtime OK')"
# 如果报错,说明 tflite_runtime 没装,但没关系,TensorFlow 自带 TFLite 转换器

2.5 环境验证:跑一个最小测试

装完别急着关电脑。咱们跑个最小测试,确保所有工具能串起来。

测试流程:

  1. 打开 CubeMX,选一个 STM32F407VGT6 芯片(我习惯用这个,资料多)。
  2. 配一个串口 USART1,时钟配到 168MHz。
  3. 在 Software Packs 里勾选 X-CUBE-AI,随便导入一个 .tflite 模型(没有的话用下面代码生成一个假的)。
  4. 生成代码,用 CubeIDE 打开,编译。如果零错误零警告,说明环境通了。

生成一个测试用的 .tflite 模型:

import tensorflow as tf
import numpy as np

# 创建一个极简模型:输入 10 个特征,输出 3 个分类
model = tf.keras.Sequential([
    tf.keras.layers.Dense(16, activation='relu', input_shape=(10,)),
    tf.keras.layers.Dense(3, activation='softmax')
])

# 转成 TFLite
converter = tf.lite.TFLiteConverter.from_keras_model(model)
tflite_model = converter.convert()

# 保存
with open('test_model.tflite', 'wb') as f:
    f.write(tflite_model)

print("测试模型已生成:test_model.tflite")
print(f"模型大小:{len(tflite_model)} 字节")

到这里,你的开发环境就齐活了。后面每一章都会基于这套环境展开。如果安装过程中遇到问题,别硬扛——大概率是版本不匹配或者路径有中文。退一步,重新来一遍,往往就通了。