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

在前面的文章中,我们介绍了使用“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开发板了,即不再需要更改跳线的位置或使用外部硬件来上传(烧录)和测试程序。

STM32 如何通过 USB 烧录程序相关推荐

  1. STM32用SWD口烧录程序导致锁死

    STM32用SWD口烧录程序导致锁死 SWD接口是四根线VCC,GND,SCK,DIO SCK是PA14 DIO是PA13 我在程序中用到了PA13,导致程序第一次能烧录进去,第二次就不可以烧录. 解 ...

  2. STM32休眠后不能烧录程序

    STM32 原因:程序逻辑有误导致休眠后不能唤醒,不能烧录程序. 解决: 通常的解决办法是:一般的开发板或单片机最小系统都会有复位键,按住复位键,点下载,然后松开复位键即可. 1.可以将单片机的NRS ...

  3. STM32系列单片机USB下载程序(ISP编程)

    一. 准备 1. FlyMcu 软件,选择DTR高电平复位,RTS低电平进入BootLoader 2. 原理图增加USB转串口芯片(CH340G) 二.说明 STM32三种启动模式对应的存储介质均是芯 ...

  4. stm32烧录软件_stm32怎么烧录程序

    STM32烧录程序目前笔者知道的有三种:JLink ,Ulink和串口烧录,使用工具分别为:JLink,ULink以及USB转TTL线. ULink 烧录程序 在安装MDK过程中,会有提示是否安装驱动 ...

  5. Arduino通过USB转TTL无BootLoader烧录程序的两种办法

    Arduino通过USB转TTL无BootLoader(引导程序)烧录程序的两种办法 注意 (这个实验室基于stm32duino的,avr单片机并不直接通用,不过如果你准备尝试使用串口来给avr单片机 ...

  6. 51单片机usb烧录电路_51单片机怎么用usb烧写程序 - 全文

    单片机怎样用usb烧写程序 首先,需要安装keil软件和STC_ISP程序下载软件. 先对你想要实现对单片机的功能用keil编程,然后用STC_ISP下载软件下载到单片机上,最后打开给单片机提供电源就 ...

  7. STM32在线烧录程序的开发

    STM32在线烧录程序的开发 2013年03月10日 17:07:38 vishtvro 阅读数 2515 STM32在线烧录程序的开发<梅川酷子原创> STM32在芯片生产的阶段固化了一 ...

  8. STM32 烧录程序后上电不工作,但调试模式下可正常工作的解决办法

    学习STM32的时候遇到的小问题: 用CubeMX生成初始代码,程序内容只包括呼吸灯工作和一个中断调用printf重定向函数向串口发送内容: 在STM32F103C8T6最小系统板烧录程序后上电不工作 ...

  9. STM32 烧录程序后无法在内部FLASH保存数据问题解决

    STM32 烧录程序后无法在内部FLASH保存数据问题解决 新接手一套代码,要求在Flash特定区域保存数据.硬件为STM32F030C6,有32k Flash. 原代码中已经将数据打包成一个结构体, ...

最新文章

  1. custom configuration DB and creation logic
  2. SAP License:PM常用表和字段
  3. js数组常用方法总结(包括ES6)
  4. 清华大学829电磁场考研资料
  5. 怎样备份计算机里的驱动程序,怎么备份电脑的驱动 驱动人生备份驱动方法
  6. python长度转换代码尺和米_尺,寸,跟米,厘米的换算??
  7. 吴式太极大师战波简介
  8. java中12 5.0f等于多少_F_____
  9. AGV运行数据显示系统----工业物流
  10. Java工程师 Java基础面试题集合类(Day06)
  11. Latex 论文 简单常用命令例子记录
  12. 为什么尽量不要使用全局变量?
  13. 安搭Share爱情人生
  14. 重走Android路 之 Android系统架构图以及开发工具了解
  15. Java 虚拟机(JVM)运行时内存结构
  16. 那些提升开发人员工作效率的在线工具
  17. android动态调试七种武器,安卓动态调试七种武器之长生剑 - Smali Instrumentation
  18. 【OpenCV学习】(九)目标识别之车辆检测与计数
  19. 自己对杨一夫创业心得的感悟。
  20. # 云收呗聚合码稳定d0秒到账

热门文章

  1. 西门子博途HMI监控1200或1500的IO状态时做成一页,IO监控画面做在一页显示
  2. 2021年PC电脑网站接入微信登陆支付精讲--1小时自已就可动手接入功能,--所有流程一目了然
  3. 【RPA之家转载】财务机器人真的会代替财务人员所有工作吗?
  4. wifi 中间人攻击_什么是中间人攻击?该如何防止?
  5. DEMO程序连接到域控服务器( C#开发AD域控自动工具之二)
  6. python实战笔记之(9):TKinter制作知乎视频下载器
  7. nginx 常见状态码源码分析
  8. CentOS7重置root密码
  9. 【机智】Android 微信6.2以上版本 转移聊天记录到ios,当前Wi-Fi环境复杂,无法传输 问题
  10. 红米k20pro鸿蒙系统,小米红米K20 Pro没信号怎么办?