2、开发环境搭建:STM32CubeIDE安装与配置、ARM CMSIS库介绍、串口调试工具准备

好,咱们正式开始动手了。

这一章,说白了就是“把家伙事儿备齐”。你想想看,一个木匠干活前得先磨斧子,咱们搞嵌入式AI部署,也得先把开发环境收拾利索。我见过太多新手,代码写得挺溜,结果卡在环境配置上,一卡就是半天,特别影响心情。

咱们的目标很明确:装好IDE、配好库、准备好调试工具。这三样齐了,后面咱们才能专心搞神经网络。

2.1 STM32CubeIDE:咱们的主战场

我个人习惯用STM32CubeIDE。为什么选它?因为它免费、官方、而且集成了CubeMX图形化配置工具。你不需要在多个软件之间切来切去,一个IDE全搞定。

安装步骤其实很简单:

  1. 去ST官网下载最新版STM32CubeIDE。注意选对操作系统版本。
  2. 双击安装,一路默认就行。但有个坑——安装路径不要有中文。我曾经帮一个学员远程调试,折腾半天发现是他路径里带了个“项目”两个字,编译器直接罢工了。
  3. 安装完成后,第一次启动会提示你选择工作空间(Workspace)。我建议单独建一个文件夹,比如 D:\STM32_Workspace,别放C盘,免得系统盘满了哭都来不及。
⚠️ 避坑指南: 安装过程中如果遇到“缺少JRE”之类的提示,别慌。STM32CubeIDE自带Java运行环境,你只需要确保网络畅通,它会自动下载。我曾经在离线环境下装过一次,那叫一个痛苦...

装好之后,咱们验证一下。新建一个工程,选你的芯片型号——咱们课程用的是STM32F407系列,当然你用F4系列其他型号也行,差别不大。能正常编译通过,就说明环境OK了。

2.2 ARM CMSIS库:别重复造轮子

ARM CMSIS库,全称是Cortex Microcontroller Software Interface Standard。名字挺长,但说白了就是ARM官方给你写好的一套底层驱动和中间件。

为什么咱们要用它?

  • 统一接口:不管你是ST、NXP还是GD的芯片,CMSIS的API写法基本一样。你学会了,换芯片也能快速上手。
  • 性能优化:CMSIS-DSP库里有大量用汇编优化的数学函数,比如矩阵运算、FFT。咱们做神经网络,卷积运算本质上就是矩阵运算,直接用CMSIS-DSP能快不少。
  • 神经网络专用包:CMSIS-NN,这是专门为Cortex-M系列优化的神经网络推理库。后面咱们部署模型,主要就靠它。

在STM32CubeIDE里怎么用?很简单。新建工程时,在“Software Packs”里勾选上CMSIS就行。或者你手动把CMSIS的源码文件夹拖到工程里,也可以。

💡 我的小经验: 刚开始别贪多,只勾选你需要的组件。比如咱们做AI部署,主要用CMSIS-Core(内核)、CMSIS-DSP(数字信号处理)和CMSIS-NN(神经网络)。其他的像CMSIS-RTOS(实时操作系统),等后面需要了再加。

嗯,这里要注意一点。CMSIS库的版本很重要。我建议用最新的稳定版,因为ST官方会不断修复bug和优化性能。你可以在STM32CubeIDE的“Help”菜单里检查更新。

2.3 串口调试工具:你的第二双眼睛

做嵌入式开发,没有串口调试,就像开车没有仪表盘。你根本不知道程序跑到哪了,数据对不对。

常用的串口工具有这些:

工具名称 特点 推荐指数
SecureCRT 功能强大,支持脚本,但收费 ⭐⭐⭐⭐
Putty 免费轻量,够用 ⭐⭐⭐
MobaXterm 免费版功能就很全,还带SFTP ⭐⭐⭐⭐⭐
串口助手(各种国产) 简单易用,适合快速调试 ⭐⭐⭐

我个人推荐MobaXterm。为什么?因为它不仅能当串口终端,还能当SSH客户端、FTP客户端。你后面做项目,经常需要从电脑传文件到开发板,一个工具全搞定,省心。

配置串口时,这几个参数要记住:

  • 波特率:咱们统一用115200。别问我为什么,这是嵌入式界的“普通话”。
  • 数据位:8位
  • 停止位:1位
  • 校验位:无
  • 流控制:无

🔧 实战小技巧: 在STM32代码里,初始化串口时记得加上这样一段:

// 重定向printf到串口
int fputc(int ch, FILE *f) {
    HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF);
    return ch;
}

加上这段之后,你就可以直接用 printf() 打印调试信息了。我刚开始做项目时,傻傻地用 HAL_UART_Transmit() 一个一个字节发,后来发现这个技巧,效率直接翻倍。

好了,环境搭好了,工具也备齐了。下一章咱们就开始写第一个程序——点亮LED,顺便验证一下咱们的串口好不好使。别小看这一步,硬件调试就是从点灯开始的。