使用 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 开发框架。
- GitHub 地址: https://github.com/stm32duino/Arduino_Core_STM32
- 支持范围: 涵盖 STM32 多个系列(F0/F1/F3/F4/F7/G0/G4/H7/L0/L4/L5 等)
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 开发板支持
方法一:在线安装(推荐网络条件好的用户)
- 打开 Arduino IDE,进入 文件 → 首选项
在 其他开发板管理器地址 栏中添加以下 URL:
https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json如果同时使用其他开发板,多个地址之间用英文逗号分隔。
打开 工具 → 开发板 → 开发板管理器
搜索
STM32 MCU based boards,找到 STM32 MCU based boards by STMicroelectronics,点击安装
方法二:离线安装(推荐国内用户)
由于网络原因,在线下载可能失败,可采用离线安装方式:
步骤 1:下载 JSON 配置文件
访问 https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json
将文件保存到 C:\Users\用户名\AppData\Local\Arduino15 目录(将"用户名"替换为你的 Windows 用户名)
步骤 2:下载必要的支持包
根据 JSON 文件中的链接,下载以下 5 个文件:
提示: 如果 GitHub 访问困难,可使用镜像站点下载。
步骤 3:放置支持包文件
将下载的 5 个文件放入 C:\Users\用户名\AppData\Local\Arduino15\staging\packages 目录
步骤 4:完成安装
- 在 Arduino IDE 首选项中添加开发板管理器地址(同方法一)
- 打开开发板管理器,搜索
stm32 - 找到 STM32 MCU based boards 并安装
三、下载工具配置
3.1 安装 STM32CubeProgrammer
如需使用 ST-Link 或串口下载程序,需要安装 ST 官方编程工具:
- 下载地址: https://www.st.com/zh/development-tools/stm32cubeprog.html#get-software
- 安装完成后,将安装路径添加到系统 PATH 环境变量中
3.2 安装 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 中选择对应的开发板型号:
- 工具 → 开发板 → STM32 MCU based boards
- 选择与你的芯片匹配的开发板(如 Generic STM32F1 series → STM32F103C8T6)
5.2 使用 ST-Link 下载(推荐)
硬件连接
| STM32 | ST-Link V2 |
|---|---|
| 3V3 | 3.3V |
| SWIO | SWDIO |
| SWCLK | SWCLK |
| GND | GND |
配置步骤
BOOT 跳线设置: BOOT0 和 BOOT1 均接 0(默认位置)
下载方式选择: 工具 → Upload method → STLink
编译上传: 按
Ctrl + U或点击上传按钮
5.3 使用串口下载
硬件连接
由于 STM32 最小系统板通常不带串口芯片(Micro-USB 口仅用于供电),需使用 USB 转串口模块:
| STM32 | USB 转串口模块 |
|---|---|
| 3V3 | 3.3V |
| TX | RX |
| RX | TX |
| GND | GND |
注意: 部分开发板 TX/RX 引脚为 A9/A10,请根据实际板型确认
配置步骤
- BOOT 跳线设置: BOOT0 接 1,BOOT1 接 0
- 复位操作: 接线完成后,手动按下复位键
下载方式选择: 工具 → Upload method → Serial
- 选择串口号: 工具 → 端口 → 选择对应的 COM 口
- 编译上传: 按
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) 等
参考资料
- Arduino_Core_STM32 官方仓库:https://github.com/stm32duino/Arduino_Core_STM32
- 官方 Wiki:https://github.com/stm32duino/Arduino_Core_STM32/wiki
- STM32CubeProgrammer 下载:https://www.st.com/zh/development-tools/stm32cubeprog.html
祝你开发顺利!



















Comments | NOTHING