跳到主要内容

使用 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 引脚编号。

您需要它来将固件烧录到开发板。您可以以低于 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

快速入门​

  1. 将 BlackPill STM32 板连接到 ST-LINK V2 编程器。

    ST-LINK V2 Clone
    按照上图连接 ST-LINK V2 编程器和 BlackPill STM32 开发板。

  2. 将 ST-LINK V2 编程器连接到计算机。

  3. 在 VSCode 中打开项目文件夹。

  4. 单击左侧栏上的 PlatformIO 选项卡,然后单击 Upload 按钮将固件上传到开发板。

    PlatformIO tab

现在您应该看到 BlackPill STM32 板上的 LED 闪烁。

备注

蓝色 LED 通过电阻连接到 3.3V,另一端连接到 PC13。因此,将 PC13 设为低电平时 LED 点亮,设为高电平时 LED 熄灭。

BlackPill LED

原理图

代码​

GitHub

以下是 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串口通信​

  1. 通过 USB 将 BlackPill STM32 板连接到您的计算机。
  2. 按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

参考​