搭载STM32F103C8 核心的STM32开发板由于其ARM Cortex M3架构而越来越受欢迎,它具有较高的运行速度和更多的外设选项。此外,由于该板可以使用Arduino IDE轻松编程,因此它已成为许多爱好者和工程师快速原型设计的首选。

在前面的文章中,我们介绍了使用“Arduino IDE + FTDI”对STM32F103C8开发板进行了编程使板载LED闪烁。但它有一个小小的缺点,需要对其烧录时,我们需要使用FTDI模块,并且在烧录和测试代码时还必须在跳线0和1之间来回切换,有点麻烦。开发板上的mini-USB端口也完全未使用。而我们把USB插上电脑时,是识别不到该板的,因为它没有Arduinobootloader接下来我们就把Arduino bootloader烧写进STM32F103C8,实现USB烧录程序。目前尚不知道这种方式会不会出现不可预知的bug,不建议用于关键应用程序。

所需材料

§STM32开发板(STM32F103C8)

§FTDI模块

§面包板

§连接线

§一台联网的电脑

连接电路图

要直接通过USB端口对STM32进行烧录,我们需要先将引导加载程序刷入MCU。为此,我们需要使用FTDI板(也可以使用CH340这类模块)。该板连接到STM32的Rx和Tx引脚,如下所示。

FTDI板的Vcc管脚连接到板子供电的STM32 5V管脚。地连接到STM32的地。FTDI板的Rx和Tx引脚分别连接到STM32的A9和A10引脚。其中A9是STM32 MCU的Tx引脚,A10是Rx引脚。

在上传引导加载程序时,确保板上的引导0跳线针设置为1。上传(烧录)完成,该引脚更改回初始位置。

将Bootloader 上传到 STM32 开发板

完成上述连接后,将FTDI板连接到您的计算机,然后按照步骤将BootLoader刷入STM32。

1步:准备好BootLoader文件。

2步:接下来下载并安装STM Flash loader软件,将下BootLoader文件刷入STM32。

进入ST网站,滚动到底部点击Get latest

https://www.st.com/en/development-tools/flasher-stm32.html#get-software

3:下载前需要填写相关信息,主要是输入邮箱要正确,其他信息不重要,下载地址会发送到邮箱,从邮箱点击下载。

4:下载安装软件后,确保STM32板Boot 0跳线置于1位置,并已通过FTDI板连接到计算机,然后启动软件。软件会自动检测COM端口,但还是建议查看硬件管理以确保您选择了正确的COM口号。

第 5 步:点击Next按钮两次,软件会再次自动检测板子详细信息并显示如下图。我们使用的板子是STM32F1,带有128K闪存。

6步:在Next中,选择“Download to device”,浏览到我们在第1步中准备BootLoader文件的位置并选择它。点击Next。

7步:等待烧写完成。

8步:烧写成功后,我们将看到以下屏幕。单击关闭并退出应用程序。接着我们准备Arduino IDE并安装驱动程序,然后才能使用USB烧录STM32板。

准备 Arduino IDE 并安装驱动程序

按照以下步骤下载并准备与STM 32开发板一起使用的Arduino IDE。

1步:-安装步骤(略)

第2步:-安装Arduino IDE后,下载安装STM32开发板所需的包参考之前的文章

通过下面的网址安装STM32的开发库

http://dan.drown.org/stm32duino/package_STM32duino_index.json

3步:安装驱动文件(找不到网址了)

install_drivers.batinstall_STM_COM_drivers.bat

4步:单击两个bat文件并安装驱动程序。您将看到如下所示的DOS屏幕。

现在Arduino IDE已准备好对STM32开发板进行编程,并且驱动程序也已安装。

通过 USB 端口直接烧录STM32

从开发板上移除FTDI板及其他连接。只需使用STM32板上的micro-USB端口将其连接到计算机,如下图所示。确保跳线0引脚定位回0。此后,我们不再需要切换跳线来烧录和运行程序。

把开发板用USB线连上计算机,现在计算机应该能够发现开发板了。如果您看到正在安装任何其他驱动程序,请稍等片刻。然后进入“设备管理器”并检查是否发现了您的STM32板,如下所示。我的连接到COM6,名称为Maple。

打开Arduino IDE转到“工具”并向下滚动以找到通用STM32F103C系列,如下所示。然后确保变体为64k Flash类型,CPU速度为72MHz,并将“Upload method”更改为STM32duino Bootloader。还要根据“设备管理器”选择正确的COM端口。

完成所有更改后,检查Arduino IDE的右下角,您应该看到配置信息。我的STM32板连接到COM6,但你的可能不同。

现在Arduino IDE已准备好对STM32F103C8开发板进行编程。让我们将示例闪烁程序从Arduino IDE上传到STM32F103C8板,测试是否正常。示例程序可以通过如下步骤找到

在打开的示例程序中,我们必须做一点小改动。默认情况下,该示例是为PB1编写程序,但在我们的板载LED连接到PC13,因此将所有PB1替换为PC13。修改后的完整示例程序如下。

按下Arduino IDE上的“上传”按钮,您的程序应该被编译和上传。如果一切顺利,那么你应该在Arduino IDE控制台上看到以下内容。

接下来,您应该会看到蓝色LED以1秒的间隔闪烁,您还可以修改延时时间以增加或减少延迟,检验是否上传(烧录)成功。现在您可以像使用任何其他Arduino板一样开始使用STM32F103C8开发板了,即不再需要更改跳线的位置或使用外部硬件来上传(烧录)和测试程序。