wangxiaozhen

启动方式

img

BOOT1:接0

BOOT0:接1:可以下载程序; 接0:从用户程序运行

当烧写程序时,我们希望BOOT0=1,BOOT1=0。当烧写完成后我们希望BOOT0=0BOOT1=0(这个模式BOOT1可以是0可以是1,这里我们让BOOT1拉低,即整个过程BOOT1都为L接地,简化电路设计)。

只需考虑BOOT0的高低。

STM32的启动配置

image-20201215102952799

“在系统复位后,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存。”

我们可以得到:

1、系统上电,BOOT0需为L,进入模式一。上电复位后,在SYSCLK的第4个上升沿,BOOT引脚的值将被锁存,进入主闪存存储器,执行我们烧写的代码。

2、当我们编译好程序,生成HEX文件。在烧写HEX文件时,BOOT0需为H,进入模式二。然后,系统必须复位一次(因为由1知道,系统上电后默认执行代码,即模式一),让系统重新锁存BOOT引脚。系统进入模式二,开始烧写HEX文件。

3、烧写完成后,我们希望系统再次进入模式一,执行代码。但“一键下载电路”并没有让系统完成烧写程序后再次复位重新锁存BOOT引脚进入模式一。这个原因应该是MCU ISP软件帮我们配置好了,在烧写完成后会有报告:“成功从08000000开始运行”。

  • 主闪存存储器从地址(0x0800 0000)访问,不管是系统自动的还是软件配置的,只要系统指针跳到主闪存存储器的地址(0x0800 0000)处开始执行代码,就可以了,结果是我们想要的。

一键下载电路

image-20201215132205682

我们需要注意一点:

CH340G上电后 “DTR#” 和 “RTS#” 都为高电平,在用 “MCU ISP” 烧写软件时,我们在软件下方选择

“DTR的低电平复位,RTS高电平进BootLoader”

“CH340G” IC在实际操作时引脚的变化为 “DTR#拉高,RTS#拉低”,即 “软件设置和实际情况“ 是取非的,相反的。

时序图:

image-20201215132814170

分类:

技术点:

相关文章:

  • 2021-07-15
  • 2021-12-23
  • 2021-08-05
  • 2021-09-12
  • 2018-01-14
  • 2021-12-13
  • 2021-11-18
  • 2021-11-30
猜你喜欢
  • 2021-12-08
  • 2021-05-16
  • 2021-05-19
  • 2021-10-09
  • 2021-11-05
  • 2021-12-08
  • 2021-12-15
相关资源
相似解决方案