跳到主要内容

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引脚数。

您需要它来将固件上传到主板。您可以以低于 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
    Connect the ST-LINK V2 programmer to the Blackpill STM32 board as shown in the image above.

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

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

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

    PlatformIO tab

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

备注

由于蓝色 LED 通过电阻连接到 3.3V,然后连接到 PC13,因此您需要将 PC13 设置为**低电平以打开 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

参考