一. 准备

1. FlyMcu 软件,选择DTR高电平复位,RTS低电平进入BootLoader

2. 原理图增加USB转串口芯片(CH340G)

二.说明

STM32三种启动模式对应的存储介质均是芯片内置的,它们是:
1)主闪存存储器 = 芯片内置的Flash。
2)系统存储器 = 芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段Bootloader,就是通常说的ISP程序。这个区域的内容在芯片出厂后没有人能够修改或擦除,即它是一个ROM区。
3)内置SRAM = 芯片内置的RAM区,就是内存啦。

一般情况,BOOT0为0,MCU从flash启动。
ISP模式下,先使BOOT0为1,BOOT1为0,再给MCU一个复位信号,四个clk周期后,MCU锁存BOOT0引脚的状态,此时MCU将从系统存储器启动,通过执行MCU内部固化的ISP下载引导程序,实现串口在线编程(必须通过USART1接收数据)。

三. CH340G时序

1.  DTR #和 RTS#电平,使用万用表测量,在默认状态,DTR#和RTS#引脚均输出高电平,由上面的电路图可知,此时Q1截止,Q2截止,因此BOOT0为0,RST#为高电平,MCU可正常从系统存储器(主flash)启动。

2. 启动下载时,DTR#维持高,RST#拉低,此时Q1导通,Q2导通,此时BOOT0为1,MCU复位脚拉低(有效),使MCU复位;
   3. 100毫秒后,DTR拉低,释放复位,MCU将从系统存储器启动,自动进入ISP模式,执行MCU内部ISP引导程序,MCU和MCUISP上位机下载软件进行通信(代码下载);
   4. 等到代码下载结束时,RST#先变成高电平,DTR再变成高电平,Q1截止、Q2截止,下载结束。
   5. 如果在MCUISP软件上选择“编程后执行”,DTR先变成高电平,使MCU的RST脚变低(复位),RST#再变成高电平,使MCU的RST脚拉高(释放复位),BOOT0为0,此时MCU复位后执行主flash程序,实现“编程后执行”步骤。

附CH340G引脚说明

STM32系列单片机USB下载程序(ISP编程)相关推荐

  1. Stm32开发1-蓝牙实现STM32的无线烧写程序 ISP模式 串口1不受影响 无线下载

    最近研究如何实现Stm32的无线烧写程序.从CSDN上看到大部分的无线烧写方法,大都是采用ESP8266+CMSIS-DAP的方式,其能下载也能调试程序,也能通过虚拟串口通信.但是其串口应该是用软件实 ...

  2. **浅谈STM32系列单片机的零基础学习方法**

    浅谈STM32系列单片机的零基础学习方法 *很多朋友想必在零基础学习STM32F1这系列单片机时会感觉无从下手,或者不知道写程序时到底是用库函数好还是寄存器好.* 我个人认为一个零基础的朋友可以通过以 ...

  3. STM32系列单片机在进入main函数前都在干些什么?

    在刚开始学习单片机的时候,一直以为程序启动后就直接进入到了main函数,但是随着学习的深入才发现,程序在进入main函数前其实还要干好多事情.现在就来分析一下,STM32系列单片机程序在进入main函 ...

  4. c8051f c语言编程,C8051F系列单片机开发与C语言编程

    C8051F系列单片机开发与C语言编程 维普资讯 http://doc.xuehai.net 雎 A 21进行控制,这样可以选择不同的地址,进而控制的读写. S D1 5 E 6对应的内存和寄存器. ...

  5. STM32系列单片机SPI速度研究(flash读取写入速度提高,液晶显示屏刷新率提高)

    STM32系列单片机SPI速度研究(flash读取写入速度提高,液晶显示屏刷新率提高) 前言 设备参数 测试内容 1.软件模拟SPI 1). 程序代码 2). 示波器波形采集 2.HAL库SPI函数 ...

  6. STM32系列单片机向量表和向量表重新定位

    在使用STM32系列单片机的IAP升级功能时,第一行代码就是关于向量表重定位的设置. 那么这个向量表具体是什么东西?为什么可以重定位?关于这方面的资料在ARM Cortex-M3 与 Cortex-M ...

  7. 关于STM32系列单片机中断触发时间问题

    在使用STM32系列单片机的时候,经常要使用到中断,但是STM32参考手册上关于中断只说明了有哪些中断源和中断向量表相关问题.没有具体说明触发中断的信号至少需要多长时间?中断检测到中断源需要多长时间? ...

  8. S5PV210 USB下载程序

    S5PV210 USB下载程序: x210首先插上usb线,然后打到USB启动,上电就可以看到设备了.不然是看不到设备的. 1.我用的是win8 64位的电脑,先装好dnw的驱动,使用win7 64位 ...

  9. 利用Jlink给stm32系列单片机下载Hex和Bin文件

    多数时候我们下载程序都是在IDE里面,利用源码编译下载.可有时候我们手上只有别人给的已经编译好的文件,或者做一些IAP实验的时候,这种方法就不适用了.在这里介绍一下怎么利用Jlink驱动自带的软件Jf ...

最新文章

  1. 三层架构中ajax,基于mvc三层架构和ajax技术实现最简单的文件上传
  2. Mybatis-Plus 支持分库分表了?-官方神器发布!
  3. 如何挖掘网站的核心关键词?
  4. OpenGL创建多维数据集的多个实例
  5. linux和裸机的区别,操作系统与裸机的区别
  6. 图像识别(2)—验证码篇
  7. 机房重构(4)——触发器的使用
  8. 内网穿透软件NPS--客户端NPC SDK交叉编译ARM64位库
  9. 二级c语言vc2010下载,全国计算机等级考试二级C语言考试系统下载
  10. 纯css绘制斜线表头
  11. 计算机编程的双引号怎么打,计算机双引号怎么打出来
  12. js身份证号校验方法(转载我的请注明哈哈)
  13. 阿里云服务器的购买、基本配置、(xshell)远程连接、搭建环境、设置安全组、域名备案、申请ssl证书
  14. 场景,或许才是未来空间设计的关键词,可能是最接近元宇宙的空间体验? | 浅空间专栏...
  15. linux 常用命令 ln/cat/echo/grep/sed/tar/wc/find/ssh/scp/strace/strings/dd/chrt/iostat/rotatelogs/dstat
  16. WinForm DataGridView实时更新表格数据
  17. C#与.NET程序员面试宝典 封皮(非常重要的图)
  18. python:[[0 for i in range(L+1)]for j in range(K)]解析
  19. 戴尔服务器型号PPT,戴尔PPAP.ppt
  20. 分享BlueStacks蓝手指安卓模拟器

热门文章

  1. c语言字符串单词反序输出,字符串中的每个单词倒序输出问题
  2. WIFI基础入门--802.11--高速直接序列物理层(HR/DSSS)--13
  3. java基础 - 网上书城
  4. 【2021-11-21】【Kotlin】表达式同时包含算术与移位运算(shl / shr / ushr)时,注意运算符的优先级。
  5. volatile关键字对编译器优化的影响
  6. linux挂载实验箱闹钟,Linux/Ubuntu命令行下打造一个音乐闹钟
  7. 今年的敬业福很好得到,一招教你搞定
  8. Wx腾讯 微信生成二维码--->微信扫描后注册并登录
  9. 沉睡者IT - 什么是Web3.0?
  10. [USACO]1.2.2Milking Cows