最近更新于 2023-08-29 23:21

前言

花相同的钱买 STM32 比 Arduino 配置更高,但是 STM32 开发太复杂,可以借助这个项目实现用 Arduino IDE 开发 STM32:https://github.com/stm32duino/Arduino_Core_STM32

我这里采用的 STM32F103C8T6 最小系统板进行测试(STM32F103C6T6 也试过)

准备工作

首先保证安装了 Arduino IDE:https://www.arduino.cc/en/software (我这里基于 2.1.1 版本测试)

安装后打开它,点开文件-首选项,在其它开发板管理地址处填:

https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json

如果还在同时使用其它开发版,地址之间使用英文逗号隔开,填写后确认
file

然后打开开发板管理器
file

搜索STM32 MCU based boards并安装,如果有魔法上网代理,可以在首选项的网络中配置,否则下载会很慢
file
file

如果要使用 ST-Link、串口、DFU 来下载程序的话还要安装 STM32CubeProgrammer:https://www.st.com/zh/development-tools/stm32cubeprog.html#get-software

再把路径配置到系统的 PATH 环境变量里
file
file

测试程序编译下载

我这个最小系统板上有一个和 PC13 引脚关联的 LED 灯,就写了一个示例代码来控制这个 LED 闪烁,这个程序控制 LED 每间隔一秒交替亮息一次。不得不说用 Arduino IDE 写代码挺简单的,可以专注于创意而不是底层的电子技术基础。

void setup()
{
    pinMode(PC13, OUTPUT);
}

void loop()
{
    digitalWrite(PC13, HIGH);
    delay(1000);
    digitalWrite(PC13, LOW);
    delay(1000);
}

Arduino IDE 选择好开发板
file

板号选好
file

注:我这个 STM32 芯片型号不支持 DFU 下载,这里也就不说了,这个是部分芯片才支持的。

引脚定义
file

ST-Link

file

下载安装 ST-Link 驱动:https://www.st.com/zh/development-tools/st-link-v2.html#tools-software
file

然后按照下表接线

\begin{array}{|c|c|}
\hline
STM32 & ST-Link \\
\hline
3v3 & 3.3V \\
\hline
SWIO & SWDIO \\
\hline
SWCLK & SWCLK \\
\hline
GND & GND \\
\hline
\end{array}

file
file

STM32 上 BOOT0 和 BOOT1 都接 0
file

下载方式选 SWD
file

然后按 Ctrl+U 编译上传,或者点上传按钮
file

串口

最小系统板并没有集成串口芯片(板载的 micro-USB 口只能用于供电),所以这里需要使用 USB 转串口模块,根据模块的串口芯片下载安装驱动:https://blog.iyatt.com/?p=11016
file

另外板子上 BOOT0 短接 1,BOOT1 短接 0,在下载程序前需要手动按一下复位键(使用 ST-Link 就不用)

Arduino IDE 里下载方式选 Serial
file

接线如下表

\begin{array}{|c|c|}
\hline
STM32 & 串口模块 \\
\hline
3v3 & 3.3 \\
\hline
TX & A10 \\
\hline
RX & A9 \\
\hline
GND & GND \\
\hline
\end{array}

然后一样上传就行

作者 IYATT-yx