×
单片机 > 单片机程序设计 > 详情

STM32 BOOT0与BOOT1 的应用原理

发布时间:2020-06-02 发布时间:
|

很多网友在用 keil 下载 程序时,明明下载线连接正常,偏偏程序就是无法下载,还提示芯片未连接。此时可能出错的原因就在BOOT0上。

首先对BOOT0与BOOT1如何连接及连接方式介绍一下。

STM32 单片机的BOOT0 和BOOT1 应用原理
STM32 三种启动模式对应的存储介质均是芯片内置的,它们是:
1)主闪存存储器= 芯片内置的Flash。这也是正常工作模式
2)SRAM = 芯片内置的RAM 区,就是内存啦。
3)系统存储器= 芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段Bootloader,就是通常说
的ISP 程序。这个区域的内容在芯片出厂后没有人能够修改或擦除,即它是一个ROM 区。
在每个STM32 的芯片上都有两个管脚BOOT0 和BOOT1,这两个管脚在芯片复位时的电平状态决定了芯片复

位后从哪个区域开始执行程序,见下表:


要注意的是,一般不使用内置SRAM 启动(BOOT1=1 BOOT0=1),因为SRAM 掉电后数据就丢失。多数情况下
SRAM 只是在调试时使用,也可以做其他一些用途。如做故障的局部诊断,写一段小程序加载到SRAM 中诊断板上的其他电
路,或用此方法读写板上的Flash 或EEPROM 等。还可以通过这种方法解除内部Flash 的读写保护,当然解除读写保护的同时
Flash 的内容也被自动清除,以防止恶意的软件拷贝。
一般BOOT0 和BOOT1 跳线都跳到0(地)。只是在ISP 下载的情况下,BOOT0=1,BOOT1=0 ,下载完成后,把

BOOT0 的跳线接回0,也即BOOT0=0,BOOT1=0 。

STM32F103 配置BOOT0 和BOOT1 直接接地还是经过电阻接地?
问:我的STM32F103RET6 挂了,原因是BOOT0 和BOOT1 直接接地导致的,很是奇怪,大家有没有遇到啊?
答:STM32 的硬件设计指导也是建议BOOT0、1 接电阻再接地的。
BOOT0 和BOOT1 分别通过10k 电阻接地,方便串口下载,下载器控制BOOT0 为高电平,下完后又将BOOT0
恢复为低,STM32 复位即可进入用户程序。平常上电直接进入用户程序。
boot0 接10k 电阻接地或者直接接地,都不会引起芯片损毁。

注意:如果JTAG 相关的引脚被用作普通IO,将无法下载(BOOT0 为低电平的情况下)。解决办法是用串口下载一次程序后再用JLINK 下载,或者将BOOT0 配置成高电平后下载。


关键字:STM32  BOOT0  BOOT1 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
51单片机CO2检测显示程序解析