Stm32烧写程序一般有两种方式:一种是基于JTAG(SWD)的程序下载方式,这种方式需要仿真器才能高效与快捷地调试STM32单片机系统,例如,J-LINK与U-LINK等均是很好的仿真器,这种方式的好处是能够在线调试,直接用源代码下载。

另外一种基于串口的程序下载方式,STM32全系列均支持这种方式,这种方式一般通过一个USB线和相应的ISP下载软件就可以将HEX文件下载到STM32芯片,这样有个好处是不会暴露源代码,随便找个人教一下就可以去操作,比如去客户现场升级代码等。

下面我们重点介绍一下这种方式是怎么实现的:
每个STM32芯片上都有两个引脚BOOT0和BOOT1,这两个引脚在芯片复位时的电平决定了复位后从那个区域开始执行程序:

(1)BOOT1=x,BOOT0=0,从用户的闪存(Flash)启动,这是正常的工作模式;

(2)BOOT1=0,BOOT0=1,从系统储存器启动,这种启动的方式有原厂设置的一个ROM,这个区域专门设置了一段BootLoader,就是通常说的ISP程序,用户无法擦除和修改。

(3)BOOT1=1,BOOT0=1,从内置的SRAM启动,这种模式可以用于调试,一般不会使用这种模式启动,因为掉电后SARM数据会丢失,一般只在调试时使用。

下面进行原理图分析,此电路只能链接串口1。BOOT1一般默认为低电平,在电路上电后RTS#、DTR#为高电平,在用烧写软件时,我们在软件下方选择“DTR的低电平复位,RTS高电平进BootLoader”。

电路中Q2为pnp三极管,RTS输出低电平时,导通,BOOT0才为高电平;

电路中Q1为npn三极管,DTR输出高电平时,导通,RST才为低电平;

首先,烧写软件控制DTR#引脚输出高,RTS#引脚输出低,这样Q2导通了,BOOT0被拉高,即实现设置BOOT0为1,同时Q1也会导通,STM32的复位脚被拉低,实现复位。

然后,延时100ms后,烧写软件控制DTR#引脚输出低电平,RTS#引脚继续为低电平,此时STM32的复位引脚,由于Q1不再导通,变为高电平,STM32结束复位,但是BOOT0还是维持为1,从而进入ISP模式,接着烧写软件就可以开始连接STM32,下载代码了,ISP下载完毕后,自动复位运行。


USB接口一键下载程序电路解析相关推荐

  1. 51单片机usb烧录电路_STC51单片机自动ISP下载电路设计 - ch340g单片机下载程序电路原理...

    STC51单片机自动ISP下载电路设计 1.51单片机程序下载原理 51单片机程序烧写接口为RXD和TXD,即UART口,这两个接口是通信口,配合不同的芯片可以实现不同的通讯方式.如果连接MAX232 ...

  2. 通过手动添加id从云音乐接口一键下载音乐(Python3实现)

    首先,谈论下思路和准备工作. 思路是,先去网易云音乐平台试试水,看看各大音乐库是否"有机可乘".当然这过程是用谷歌Network监控浏览器与服务器交互请求,如下图: 结果发现,果然 ...

  3. 如何脱离USB给ESP8266下载程序?

    基于贝壳物联的ESP8266在线升级程序 饱饱眼福 贝壳物联网介绍 贝壳物联网注册 贝壳物联平台接入 ESP8266程序升级方案 微信小程序控制LED以及升级程序 饱饱眼福 微信小程序控制8266无线 ...

  4. EP4CE6E22C8N FPGA的JTAG接口无法下载程序的问题解决

    使用环境(蓝色粗体字为特别注意内容) 1.软件环境:Win7 32 bit,Quartus II. 2.硬件环境:EP4CE6E22C8N开发板 3.参考文献:1.https://zhidao.bai ...

  5. c# Ftp下载程序源代码解析

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  6. NUCLEO下载程序报错+调试经验

    目录 打开工程报错"Loading PDSC Debug Description failed..." 报错原因 解决办法1 解决办法2 ''Internal command er ...

  7. STM32F103ZET6程序移植为C8T6+C8T6下载程序flash timeout的解决方案

    文章目录 一.程序移植 :程序移植还是蛮简单的 二.程序下载 : 会出现问题 (一)BOOT0和BOOT1 (二)程序下载 1.代码通用 2.状况不断 3.解决办法 (三)STM32F103C8T6下 ...

  8. STM32学习笔记——CH340一键下载电路

    今天看了一下STM32板子的一键下载功能,对电路理解了一下,做个说明. 1.启动模式 STM32上电后的BOOT1/0的电平状态会决定它的运行模式.很明显,我们如果上电后要进入自己写的程序并运行,那么 ...

  9. 基于CH340的一键下载电路

    阅读目录 一.CH340简介 二.CH340G在Arduino上的下载电路应用 三.CH340G在STM32上的下载电路应用 四.CH340驱动程序下载 回到顶部 一.CH340简介 CH340 是一 ...

最新文章

  1. python commands_python commands模块在python3.x被subprocess取代
  2. 【渝粤题库】国家开放大学2021春1018国际公法题目
  3. vue 组件 props配置
  4. Mybatis+Oracle批处理
  5. Spring 多线程
  6. 无法创建ssis数据流任务_SSIS中的数据分析任务概述
  7. Vcenter5.5+vmwarePowercli6.5+powershell5批量创建虚拟机
  8. android 学习随笔二十三(动画:Fragment )
  9. SharePoint Online 自定义Modern UI表单
  10. c语言在头文件后int a,C语言头文件 实现文件 工程文件组织
  11. 随笔记--深浅拷贝问题
  12. 网络安全工程师面试分享
  13. 产权:使用权、收益权和转让权
  14. [转]在计算机领域做研究的一些想法
  15. DRM驱动(六)之atomic_check
  16. ios iPhone的 自带输入法emoji编程
  17. Nokia Open MSS 学习个人笔记
  18. CEA-861-D infoframe
  19. safari 扩展_为什么构建Safari应用扩展程序是2020年的噩梦
  20. [ XJTUSE ]JAVA语言基础知识——7.12 JTable实现表格

热门文章

  1. 手机网站和电脑网站设计是需注意的区别
  2. 如何在cmd下查询mongodb数据库
  3. 目录删除-C语言实现
  4. Vue3子组件向父组件传值
  5. Rtools安装方法
  6. Python之字典添加元素
  7. 上传文件提示 413 Request Entity Too Large 错误
  8. 串口异或校验字C++代码实现
  9. MySQL 字符串拼接 concat、concat_ws、lpad、rpad、group_concat
  10. k8s入门教程详解(一)