3. 开发环境搭建:安装STM32CubeIDE、配置ESP-IDF环境、搭建TensorFlow Lite Micro工具链、串口驱动安装与验证
好,咱们进入第三章。这一章说白了就是「磨刀」——把开发环境搭好。我见过太多初学者,代码写了一半发现环境没配好,折腾半天心态崩了。所以咱们一步到位,把四个核心环境搞定。
3.1 安装STM32CubeIDE
STM32CubeIDE是ST官方的一体化开发工具。它集成了编辑器、编译器、调试器,甚至还有图形化配置工具。我个人习惯用它来做MCU端的开发,因为省事。
安装步骤:
- 去ST官网下载STM32CubeIDE安装包(注意选对操作系统版本)
- 双击安装,一路默认即可。但有个坑——安装路径不要带中文和空格
- 安装过程中会提示安装驱动,选「是」
- 安装完成后,首次启动会提示创建工作空间(workspace),建议单独建一个文件夹
注意:我曾经遇到过安装后无法启动的问题,后来发现是Java环境冲突。如果你电脑上装了多个JDK,建议先卸载旧的,或者设置环境变量指向CubeIDE自带的JRE。
安装完成后,你可以新建一个STM32项目试试。选一个你手头有的开发板型号,比如STM32F103C8T6。嗯,这里要注意,第一次编译会下载一些依赖包,网速慢的话可能要等一会儿。
3.2 配置ESP-IDF环境
ESP-IDF是乐鑫官方的物联网开发框架。说实话,它的环境配置比STM32要复杂一些,因为涉及Python、CMake、Git等多个工具链。我建议你按以下步骤来:
我的经验:ESP-IDF的安装方式有两种——离线安装器和命令行安装。我个人推荐离线安装器,因为它会自动帮你装好Python和Git,省去很多麻烦。
具体步骤:
- 下载ESP-IDF离线安装器(v4.4或v5.0版本都可以)
- 双击安装,选择安装路径(同样不要有中文)
- 安装完成后,打开ESP-IDF Command Prompt(开始菜单里能找到)
- 输入
idf.py --version验证安装是否成功
为什么会这样?因为ESP-IDF依赖很多Python包,如果手动装很容易出现版本冲突。离线安装器把这些都打包好了,你想想看,是不是省心很多?
验证环境:
idf.py --version
# 输出类似:ESP-IDF v4.4.2
python --version
# 输出类似:Python 3.8.7
如果你用的是ESP32-C3或ESP32-S3,记得在项目配置里选对芯片型号。我刚开始用的时候忘了改,编译出来的固件烧进去直接跑不起来……
3.3 搭建TensorFlow Lite Micro工具链
TensorFlow Lite Micro(简称TFLM)是谷歌推出的轻量级推理引擎。它可以在MCU上跑机器学习模型。说白了,就是让单片机学会「思考」。
搭建步骤:
- 克隆TFLM仓库:
git clone https://github.com/tensorflow/tflite-micro.git - 安装Python依赖:
pip install tensorflow numpy pillow - 编译测试用例:进入tflite-micro目录,运行
make -f tensorflow/lite/micro/tools/make/Makefile test
避坑指南:我曾经在Windows上编译TFLM时卡了很久,因为Makefile默认用的是Linux路径。解决方案有两个:一是用WSL(Windows Subsystem for Linux),二是用CMake替代Make。我个人推荐WSL,因为更接近实际部署环境。
编译成功后,你会看到类似这样的输出:
Testing hello_world_test
PASS
Testing micro_speech_test
PASS
...
嗯,看到PASS就说明环境搭好了。这里要注意,TFLM的编译时间比较长,第一次可能要十几分钟。你可以趁这个时间去泡杯咖啡。
3.4 串口驱动安装与验证
串口是嵌入式开发的生命线。没有它,你连板子输出的调试信息都看不到。我见过有人折腾了半天代码,结果发现是串口驱动没装好……
驱动安装:
- CH340驱动:大多数国产开发板都用这个芯片,比如ESP32、STM32最小系统板
- CP210x驱动:一些高端开发板用这个,比如某些官方评估板
- FT232驱动:老牌芯片,稳定但贵
| 芯片型号 | 常见设备 | 驱动下载 |
|---|---|---|
| CH340 | ESP32开发板、STM32最小系统板 | 官网或驱动精灵 |
| CP2102 | 某些官方评估板 | Silicon Labs官网 |
| FT232 | FTDI调试器 | FTDI官网 |
验证方法:
- 插上开发板,打开设备管理器(Windows)
- 在「端口(COM和LPT)」下应该能看到新设备
- 如果显示黄色感叹号,说明驱动没装好
- 用串口助手(比如Putty、sscom)打开对应COM口,波特率设115200
- 给板子重新上电,应该能看到启动信息
我记得有一次,客户说他的板子没输出。我远程一看,原来是USB线只能充电不能传数据。你想想看,这种低级错误是不是很坑?所以建议你用质量好一点的USB线。
3.5 环境验证综合测试
四个环境都搭好后,我们来做个综合测试。写一个简单的LED闪烁程序,分别用STM32CubeIDE和ESP-IDF编译,然后通过串口输出调试信息。
测试流程:
- STM32CubeIDE:新建项目,配置GPIO,写一个500ms翻转的LED程序
- ESP-IDF:用
idf.py create-project新建项目,添加串口打印代码 - 分别编译、烧录、运行
- 观察串口输出是否正常
如果一切顺利,你会看到串口每隔500ms打印一次「Hello from STM32」或「Hello from ESP32」。嗯,看到这个输出,就说明你的开发环境彻底搭好了。
最后提醒:环境搭建是嵌入式开发的第一步,也是最容易出问题的一步。我建议你把每个步骤的截图保存下来,方便以后复盘。另外,不同版本的软件可能会有兼容性问题,建议使用我上面提到的版本号。
好了,环境搭好了,下一章咱们就开始写真正的AI代码了。到时候你会觉得,现在这些折腾都是值得的。