LED 闪烁与 Arduino 框架
让我们使用 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 编程器。

Connect the ST-LINK V2 programmer to the Blackpill STM32 board as shown in the image above. -
将 ST-LINK V2 编程器连接到计算机。
-
在 VSCode 中打开项目文件夹。
-
单击左侧栏上的 PlatformIO 选项卡,然后单击
Upload按钮将固件上传到开发板。
现在您应该看到 Blackpill STM32 板上的 LED 闪烁。
代码
以下是 STM32 板上 LED 闪烁的完整代码:
#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 文件中:
[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