在前面的文章中,我们先容了利用“Arduino IDE + FTDI ”对STM32F103C8 开拓板进行了编程使板载 LED 闪烁。但它有一个小小的缺陷,须要对其烧录时,我们须要利用FTDI模块,并且在烧录和测试代码时还必须在跳线0和 1 之间来回切换,有点麻烦。开拓板上的 mini-USB 端口也完备未利用。而我们把USB插上电脑时,是识别不到该板的,由于它没有 Arduino bootloader。接下来我们就把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.bat 和 install_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开拓板了,即不再须要变动跳线的位置或利用外部硬件来上传(烧录)和测试程序。