使用 Arduino IDE 开发 STM32 完整教程


使用 Arduino IDE 开发 STM32 完整教程

前言

STM32 系列单片机性能强劲,但传统开发方式配置复杂、门槛较高。借助 Arduino_Core_STM32 项目,我们可以在 Arduino IDE 中轻松开发 STM32 程序,既能享受 Arduino 简洁的编程体验,又能使用 STM32 的强大性能和丰富的 Arduino 库资源。

本教程将详细介绍从环境配置到程序下载的完整流程。


一、Arduino_Core_STM32 简介

1.1 什么是 Arduino_Core_STM32

Arduino_Core_STM32 是 ST 官方推出的 STM32 Arduino 核心支持包,通过将 STM32 官方 HAL 库进行封装,使其能够适配 Arduino 开发框架。

STM32 支持系列

1.2 与其他固件的区别

网上流传的另一款固件 Arduino_STM32( GitHub: https://github.com/rogerclarkmelbourne/Arduino_STM32 )仅支持 F1 和 F4 系列,且已不再维护。强烈建议使用官方的 Arduino_Core_STM32


二、环境搭建

2.1 安装 Arduino IDE

首先从官网下载并安装 Arduino IDE(本教程基于 2.x 版本):
https://www.arduino.cc/en/software

2.2 添加 STM32 开发板支持

方法一:在线安装(推荐网络条件好的用户)

  1. 打开 Arduino IDE,进入 文件首选项
  2. 其他开发板管理器地址 栏中添加以下 URL:

    https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json

    如果同时使用其他开发板,多个地址之间用英文逗号分隔。


    首选项设置

  3. 打开 工具开发板开发板管理器


    开发板管理器入口

  4. 搜索 STM32 MCU based boards,找到 STM32 MCU based boards by STMicroelectronics,点击安装


    搜索 STM32


    安装 STM32 包

方法二:离线安装(推荐国内用户)

由于网络原因,在线下载可能失败,可采用离线安装方式:

步骤 1:下载 JSON 配置文件

访问 https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json
将文件保存到 C:\Users\用户名\AppData\Local\Arduino15 目录(将"用户名"替换为你的 Windows 用户名)

步骤 2:下载必要的支持包

根据 JSON 文件中的链接,下载以下 5 个文件:

组件下载链接
STM32 核心https://github.com/stm32duino/Arduino_Core_STM32/releases/download/2.7.1/STM32-2.7.1.tar.bz2
ARM GCC 编译器https://github.com/xpack-dev-tools/arm-none-eabi-gcc-xpack/releases/download/v12.2.1-1.2/xpack-arm-none-eabi-gcc-12.2.1-1.2-win32-x64.zip
OpenOCD 调试工具https://github.com/xpack-dev-tools/openocd-xpack/releases/download/v0.12.0-1/xpack-openocd-0.12.0-1-win32-x64.zip
CMSIShttps://github.com/stm32duino/ArduinoModule-CMSIS/releases/download/5.7.0/CMSIS-5.7.0.tar.bz2
STM32Toolshttps://github.com/stm32duino/Arduino_Tools/releases/download/2.2.1/STM32Tools-2.2.1-windows.tar.bz2
提示: 如果 GitHub 访问困难,可使用镜像站点下载。

步骤 3:放置支持包文件

将下载的 5 个文件放入 C:\Users\用户名\AppData\Local\Arduino15\staging\packages 目录


支持包文件位置

步骤 4:完成安装

  1. 在 Arduino IDE 首选项中添加开发板管理器地址(同方法一)
  2. 打开开发板管理器,搜索 stm32
  3. 找到 STM32 MCU based boards 并安装

三、下载工具配置

3.1 安装 STM32CubeProgrammer

如需使用 ST-Link 或串口下载程序,需要安装 ST 官方编程工具:


添加环境变量

3.2 安装 ST-Link 驱动


ST-Link 驱动下载


四、编写示例程序

以下是一个简单的 LED 闪烁程序,控制 PC13 引脚连接的 LED(多数 STM32 最小系统板载 LED 连接此引脚):

void setup() {
    pinMode(PC13, OUTPUT);
}

void loop() {
    digitalWrite(PC13, HIGH);
    delay(1000);
    digitalWrite(PC13, LOW);
    delay(1000);
}

五、程序下载

5.1 开发板选择

在 Arduino IDE 中选择对应的开发板型号:

  1. 工具开发板STM32 MCU based boards
  2. 选择与你的芯片匹配的开发板(如 Generic STM32F1 series → STM32F103C8T6)


选择开发板系列


选择具体型号

5.2 使用 ST-Link 下载(推荐)

硬件连接

STM32ST-Link V2
3V33.3V
SWIOSWDIO
SWCLKSWCLK
GNDGND


ST-Link V2


ST-Link 接线

配置步骤

  1. BOOT 跳线设置: BOOT0 和 BOOT1 均接 0(默认位置)


    BOOT 跳线设置为 0

  2. 下载方式选择: 工具 → Upload method → STLink


    选择 STLink 下载方式

  3. 编译上传: 按 Ctrl + U 或点击上传按钮


    上传按钮

5.3 使用串口下载

硬件连接

由于 STM32 最小系统板通常不带串口芯片(Micro-USB 口仅用于供电),需使用 USB 转串口模块:

STM32USB 转串口模块
3V33.3V
TXRX
RXTX
GNDGND
注意: 部分开发板 TX/RX 引脚为 A9/A10,请根据实际板型确认


USB 转串口模块

配置步骤

  1. BOOT 跳线设置: BOOT0 接 1,BOOT1 接 0
  2. 复位操作: 接线完成后,手动按下复位键
  3. 下载方式选择: 工具 → Upload method → Serial


    选择 Serial 下载方式

  4. 选择串口号: 工具 → 端口 → 选择对应的 COM 口
  5. 编译上传: 按 Ctrl + U 或点击上传按钮

六、常见问题

6.1 GitHub 访问问题

如无法访问 GitHub,可使用镜像站点下载资源。

6.2 驱动安装问题

如设备管理器中无法识别 ST-Link 或串口设备,请检查驱动是否正确安装。

6.3 上传失败

  • 检查 BOOT 跳线设置是否正确
  • 尝试按下复位键后重新上传
  • 确认开发板型号选择正确

七、引脚定义参考

不同型号 STM32 的引脚定义有所不同,可在 Arduino_Core_STM32 的文档中查询:
https://github.com/stm32duino/Arduino_Core_STM32/tree/master/docs

常用引脚类型:

  • 数字引脚: PA0~PA15, PB0~PB15, PC0~PC15 等
  • 模拟引脚: A0~A15(部分型号)
  • 特殊功能引脚: TX/RX(Serial), SDA/SCL(I2C), MOSI/MISO/SCK(SPI) 等

参考资料


祝你开发顺利!

声明:Grows towards sunlight |版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - 使用 Arduino IDE 开发 STM32 完整教程


Grows towards sunlight and Carpe Diem