STM32 USB接口 一键下载电路详解与过程分析

2023-11-07

要想了解一键下载电路的工作过程,首先要了解STM32的几种启动模式。​

STM32的几种启动模式如下表所示:​

 

从表中可知,我们想用串口下载代码,就要配置BOOT0为1,BOOT1为0,但是如果想让STM32一复位就运行代码,就要配置BOOT0为0,BOOT1配置为什么都可以,为了解决这个问题,我们可以设计一个电路,通过串口转USB芯片CH340G的DTR#和RTS#引脚的信号来控制一键下载电路,从而间接控制STM32的RESET和BOOT0引脚的信号,来达到通过串口一键下载和运行的效果,省去了购买仿真器的费用,下载程序也变得简单方便,一键下载电路如下图所示:​​

 

串口下载软件选用的是MCUISP,通过串口的DTR和RTS信号来自动配置BOOT0和RESET信号,不需要用户手动切换它们的状态,直接串口软件自动控制,可以方便的下载代码。

打开 MCUISP,点击搜索串口,将自动找到电路板板载串口,在bps中选择波特率为460800,左下角选择:DTR的低电平复位,RTS 高电平进 BootLoader。再加载烧写文件。​​

在烧写程序以前,点击读器件信息将出现如下图所示的信息,说明电路板串口连接成功。

点击开始编程,程序开始烧写,烧写成功后会出现如下图所示信息,表明程序烧写成功。

 

接下来我们对整个过程作一个详细的分析:​

首先,mcuisp控制DTR输出低电平,则DTR#输出高,然后RTS置高,则RTS#输出低,这样Q3导通了,BOOT0被拉高,即实现设置BOOT0为1,同时Q2也会导通,STM32的复位脚被拉低,实现复位。然后,延时100ms后,mcuisp控制DTR为高电平,则DTR#输出低电平,RTS维持高电平,则RTS#继续为低电平,此时STM32的复位引脚,由于Q2不再导通,变为高电平,STM32结束复位,但是BOOT0还是维持为1,从而进入ISP模式,接着mcuisp就可以开始连接STM32,下载代码了,从而实现一键下载。​

DTR#和RTS#信号的时序图如下图所示:​

 

程序下载完毕后,如果设置了编程后执行,STM32会再次被复位,此时DTR#为高,RTS#为低,STM32复位后,DTR#设置为低,RTS#设置为高,那么Q2和Q3都不导通,此时,STM32重新开始启动后,检测到BOOT0为0,程序开始正常运行,一键下载至此就完成了。

 

另外一篇网络文章:

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STM32 USB接口 一键下载电路详解与过程分析 的相关文章

  • 面试准备:Java常见面试题汇总(二)

    面试准备 Java常见面试题汇总 一 面试准备 Java常见面试题汇总 二 面试准备 Java常见面试题汇总 三 文章目录 43 java 中的 Math round 1 5 等于多少 44 String str abc 与 String

随机推荐

  • CAP简述-一致性、可用性、分区容忍性

    一致性 Consistency 是指在同一时刻 分布式系统中的所有数据备份为相同值 可用性 Availability 指集群中的某一个节点故障宕机后 集群还能响应客户端请求 即假设一个节点挂 另一个备份节点要顶上 分区容忍性 Partiti
  • 保姆级教程!将 Vim 打造一个 IDE (Python 篇)

    从上周开始我就开始折腾 搞了一下 Vim IDE for Python Go 我将整个搭建的过程整理成本篇文章分享出来 本篇是 Python 版本的保姆级教程 实际上我还写了 Go 版本的 有想看的可以本篇文章点个赞 我下篇就发 一说到 I
  • Linux环境安装Jenkins(详细,亲测可行)

    1 基础环境 Linux java环境 linux安装java1 8 拒绝 emo的博客 CSDN博客 rpm下载 Index of jenkins redhat stable 清华大学开源软件镜像站 Tsinghua Open Sourc
  • 总结一些小细节 ---- Android

    1 Null pointer dereference of parent getItemAtPosition where null comes from constant This error always happened in the
  • Vue注册全局方法,全局组件,全局过滤器,全局自定义指令的方法

    1 添加全局方法 1 使用Vue prototype 在main js中写 Vue prototype getData params gt 2 使用install Vue prototype 在你的全局函数文件fun js中写 export
  • 邻接矩阵的存储方式实现图的广度和深度优先遍历

    在做图的邻接矩阵之前 先做好准备工作 定义存储类型 声明队列的操作 在广度优先遍历中使用 include
  • CSS之定位属性

    一定位介绍 定位的基本思想很简单 它允许你定义元素出现在页面的任何位置 是通过position属性配合left right 等来实 现的 二定位类别 1 相对定位 相对定位就是相对于自己以前在标准流中的位置来移动 语法 position r
  • 初识 TVM

    如有图像或公式显示错误 可以访问我的个人博客 https www wanglichun tech 2019 11 15 tvm 笔者也是最近偶然的机会才开始接触TVM 使用过后发现 经过auto tuning后的TVM模型在速度是竟然超过了
  • 知识图谱02

    知识图谱2 一 引言 二 运行环境 三 搭建知识图谱 四 启动问答测试 五 踩坑 1 关于路径 2 报错 一 引言 主要将项目跑起来 对项目有一个宏观的认识 搭建知识图谱 启动问答测试 构建一个简单的基于知识图谱的对话系统 二 运行环境 p
  • table标签-移动端适配

    封装一个组件 该组件需要根据不同设备屏幕宽度自适应调整展示方式 对于 PC 端 以类似 el table 的形式展示数据 而移动端则以一个类似 item 的形式展示每行数据 可以先在组件中判断设备类型 如以下示例代码所示
  • 杀linux进程的几种命令详解

    之前只知道kill killall命令 能杀死进程就行 有些进程杀不死的也不知道为何 今天看书发现出来kill killall命令 还有一个pkill命令 详细看了下他们的介绍和使用 kill杀进程的工作原理 首先了解下kill为何能杀死进
  • STM32学习笔记:ESP8266模块(1)

    由于项目要求要涉及到物联网 公司要采用wifi 于是就采购了一块串口wifi模块 ESP8266 开始拿到后首先应该掌握的就是测试 熟悉AT指令 因为串口wifi通信是采用AT指令进行通信的 在这里需要注意一点的就是 在编写程序的时候 一个
  • 数字图像处理-基于opencv和kreas的手势(手语)识别

    基于opencv和kreas的手势 手语 识别 代码为实验需要 具体使用需要修改 tensorflow教程 推荐看这个 内容一 裁剪视频 获取手势 import cv2 import numpy as np import os import
  • 华为Verilog入门教程

    对于初学者 可大致了解Verolog HDL所提供的能力 掌握Verilog HDL语言的核心子集 1 Verilog HDL语言具有 设计的行为特性 设计的数据流特性 设计的结构组成以及包括响应监控和设计验证方面的时延和波形产生机制 2
  • Linux常用命令--文件搜索命令:用户管理命令

    1 命令名称 useradd 命令所在路径 usr sbin useradd 执行权限 root 语法 useradd 用户名 功能描述 添加新用户 范例 useradd shenchao 2 命令名称 passwd 命令所在路径 usr
  • SpringBoot 如何使用 JProfiler 进行性能测试

    SpringBoot 如何使用 JProfiler 进行性能测试 在 SpringBoot 应用程序中 我们可以使用 JProfiler 进行性能测试 JProfiler 是一款专业的 Java 性能分析工具 可以帮助我们识别和解决应用程序
  • 01 认识数据分析

    数据分析全貌 分析数据的目的是什么 及时发现异常 找到数据之间的因果关系 观测 采集数据 解析系统日志 埋点获取新数据 通过传感器采集 爬虫 API 存储数据 各种类型的数据库 展示数据 可视化高效传达信息 研究关系 可视化 建模 实验 提
  • 在Linux/Ubuntu18.04上给VSCode配置C++调试环境

    本文参考Get Started with C on Linux in Visual Studio Code 来源微软官方教程 为了便于大家快速上手掌握VSCode配置C 的过程 用中文展开来具体说说 在使用C 之前 需要先配置C 调试环境
  • 记一次CentOS+Docker+Nginx+uWSGI+MongoDB的单机并发量提升过程

    无人机拍的广州南站 最近在做小程序后端开发 使用Docker Nginx uWSGI MongoDB的架构 最终部署图如下 最开始在对新增订单的接口进行压测时出现100并发就有大量失败的情况 日志显示 WriteConflict error
  • STM32 USB接口 一键下载电路详解与过程分析

    要想了解一键下载电路的工作过程 首先要了解STM32的几种启动模式 STM32的几种启动模式如下表所示 从表中可知 我们想用串口下载代码 就要配置BOOT0为1 BOOT1为0 但是如果想让STM32一复位就运行代码 就要配置BOOT0为0