使用 Arduino 框架实现 LED 闪烁
让我们使用 Arduino 框架让 BlackPill STM32 板上的 LED 闪烁。
Arduino框架
本教程使用 Arduino 框架使 STM32 板上的 LED 闪烁。 Arduino 框架是初学者的热门选择,因为它提供了简单易用的 API。 Arduino 框架抽象了 STM32 硬件的底层细节,使得为 STM32 微控制器编写代码变得更加容易。
准备工作
本教程使用以下硬件:
BlackPill STM32 板
单片机:STM32F411CEU6 开发板:WeAct Black Pill V2.0 原理图
您可以以低于 4 美元的价格购买廉价的 BlackPill STM32 克隆板。您可以使用其他STM32板,但需要修改platformio.ini文件和LED 引脚编号。
ST-LINK V2编程器
您需要它来将固件烧录到开发板。您可以以低于 5 美元的价格购买廉价的 ST-LINK V2 克隆版。
配置开发环境
VSCode 与 PlatformIO
您可以从 VSCode 扩展市场安装 PlatformIO。
STM32CubeProgrammer
您需要它来将固件烧录到开发板。
克隆代码仓库
git clone --branch blackpill-led-blink-arduino https://github.com/yuichiroaoki/stm32-tutorial.git
cd stm32-tutorial
快速入门
-
将 BlackPill STM32 板连接到 ST-LINK V2 编程器。

按照上图连接 ST-LINK V2 编程器和 BlackPill STM32 开发板。 -
将 ST-LINK V2 编程器连接到计算机。
-
在 VSCode 中打开项目文件夹。
-
单击左侧栏上的 PlatformIO 选项卡,然后单击
Upload按钮将固件上传到开发板。
现在您应该看到 BlackPill STM32 板上的 LED 闪烁。
备注
代码
以下是 STM32 板上 LED 闪烁的完整代码:
main.cpp
#include <Arduino.h>
#include <WSerial.h>
#define LED_PIN PC13
void setup() {
Serial.begin(115200);
pinMode(LED_PIN, OUTPUT);
delay(3000);
Serial.println("Start!");
}
void loop() {
Serial.println("LED off!");
digitalWrite(LED_PIN, HIGH);
delay(1000);
Serial.println("LED on!");
digitalWrite(LED_PIN, LOW);
delay(1000);
}
对于 BlackPill STM32 板,LED 引脚为 PC13。您应该根据您的开发板调整引脚。
USB串口通信
- 通过 USB 将 BlackPill STM32 板连接到您的计算机。
- 按
Ctrl+Shift+P并选择PlatformIO: Monitor打开串口监视器。
您应该看到以下消息:
Start
LED off!
LED on!
LED off!
为了通过 USB 与开发板通信,请将以下行添加到 platformio.ini 文件中:
platformio.ini
[env:genericSTM32F411CE]
platform = ststm32
board = genericSTM32F411CE
lib_archive = false
framework = arduino
upload_protocol = stlink
monitor_speed = 115200
build_flags =
-D PIO_FRAMEWORK_ARDUINO_ENABLE_CDC
-D PIO_FRAMEWORK_ARDUINO_SERIAL_WITHOUT_GENERIC