最近更新于 2024-05-05 12:31
前言
花相同的钱买 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
如果还在同时使用其它开发版,地址之间使用英文逗号隔开,填写后确认
然后打开开发板管理器
搜索STM32 MCU based boards
并安装,如果有魔法上网代理,可以在首选项的网络中配置,否则下载会很慢
如果要使用 ST-Link、串口、DFU 来下载程序的话还要安装 STM32CubeProgrammer:https://www.st.com/zh/development-tools/stm32cubeprog.html#get-software
再把路径配置到系统的 PATH 环境变量里
测试程序编译下载
我这个最小系统板上有一个和 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 选择好开发板
板号选好
注:我这个 STM32 芯片型号不支持 DFU 下载,这里也就不说了,这个是部分芯片才支持的。
引脚定义
ST-Link
下载安装 ST-Link 驱动:https://www.st.com/zh/development-tools/st-link-v2.html#tools-software
然后按照下表接线
\begin{array}{|c|c|}
\hline
STM32 & ST-Link \\
\hline
3v3 & 3.3V \\
\hline
SWIO & SWDIO \\
\hline
SWCLK & SWCLK \\
\hline
GND & GND \\
\hline
\end{array}
STM32 上 BOOT0 和 BOOT1 都接 0
下载方式选 SWD
然后按 Ctrl
+U
编译上传,或者点上传按钮
串口
最小系统板并没有集成串口芯片(板载的 micro-USB 口只能用于供电),所以这里需要使用 USB 转串口模块,根据模块的串口芯片下载安装驱动:https://blog.iyatt.com/?p=11016
另外板子上 BOOT0 短接 1,BOOT1 短接 0,在下载程序前需要手动按一下复位键(使用 ST-Link 就不用)
Arduino IDE 里下载方式选 Serial
接线如下表
\begin{array}{|c|c|}
\hline
STM32 & 串口模块 \\
\hline
3v3 & 3.3 \\
\hline
TX & A10 \\
\hline
RX & A9 \\
\hline
GND & GND \\
\hline
\end{array}
然后一样上传就行