STM32开发首先的了解STM32的启动过程,否则你会云里雾里,半天程序在板子上跑不起来。

STM32  三种启动模式对应的存储介质均为芯片内置的,他们是:

1)用户闪存 = 芯片内置的Flash,这个应该就是在Keil中选择那个,每个芯片的flash不一样,具体可以在建立工程时查看内置flash的大小。

2)SRAM = 芯片内置的RAM区,就是内存啦。

3)系统存储器 = 芯片内部一块特定的区域,芯片出厂时在这个区域预设了一段Bootloader,就是通常说的ISP程序。这个区域的内容在芯片出厂后没有人能够修改或者擦出,即它是一个ROM区。

在每个STM32的芯片上都有两个管脚BOOT0和BOOT1,这两个管脚在芯片复位时的电平状态决定了芯片复位后从那个区域开始执行程序,见下表:

BOOT1 = 1 BOOT0 = 1 从内置的SRAM启动,这种模式可以用于调试
BOOT1 = 0 BOOT0 = 1 从系统存储器启动,这种模式启动的程序功能由厂家设置
BOOT1 = x BOOT0 = 0 从用户闪存启动,这是正常工作模式

从上面三种工作模式的配置可以看出:只要BOOT0 = 0 (拉低),这样才能从闪存启动。

所以一般会将BOOT0和一个接地的信号线在一起。这样直接短接就可以 实现正常工作模式。

注意:一般不使用内置的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。

BOOT0 和 BOOT1相关推荐

  1. stm32 Boot0,Boot1引脚设置

    Boot0,Boot1引脚设置? (1) Boot0设置为0后,代码将从主Flash当中启动,就我们目前所编程的地方启动,只要程序正常,上电之后都是可以正常工作.这一般作为ISP 程序下载仿真烧写.一 ...

  2. STM32关于BOOT0和BOOT1设置,去掉Debug后完成硬件独立运行。

    BOOT0和BOOT1 STM32三种启动模式对应的存储介质均是芯片内置的,它们是: 1)用户闪存 = 芯片内置的 Flash. 2)SRAM = 芯片内置的 RAM区,就是内存啦. 3)系统存储器= ...

  3. stm32数据手册boot_STM32问题集之BOOT0和BOOT1的作用

    一.功能及目的 在每个STM32的芯片上都有两个管脚BOOT0和BOOT1,这两个管脚在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执行程序. BOOT1=x BOOT0=0 // 从用户闪存启 ...

  4. 启动模式,BOOT0和BOOT1详解

    在画STM32的电路图的时候,关于STM32的启动方式纠结了一下,现有的参考设计都是在STM32的启动选择引脚BOOT0和BOOT1上使用了跳帽,用以人工选择STM32的启动方式,但是在实际应用中这种 ...

  5. 关于单片机上的BOOT0和BOOT1

    STM32一共有三种启动模式,在ST官网上下载的RM0008中 对应的中文翻译如下: 所谓启动,一般来说就是指我们下好程序后,重启芯片时,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存.用户可以 ...

  6. STM32 BOOT0与BOOT1 的应用原理

    很多网友在用 keil 下载 程序时,明明下载线连接正常,偏偏程序就是无法下载,还提示芯片未连接.此时可能出错的原因就在BOOT0上. 首先对BOOT0与BOOT1如何连接及连接方式介绍一下. STM ...

  7. boot0和boot1

    对于stm32的启动,涉及到boot0和boot1的取值如下图所示.(所谓启动,一般来说就是指我们下好程序后,重启芯片时,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存.用户可以通过设置BOOT ...

  8. STM32三种启动模式 boot0 boot1

    STM32三种启动模式对应的存储介质均是芯片内置的,它们是: 1)用户闪存=芯片内置的Flash. 2)SRAM=芯片内置的RAM区,就是内存啦. 3)系统存储器=芯片内部一块特定的区域,芯片出厂时在 ...

  9. STM32 BOOT0连接不当造成死机

    一下内容转自:http://www.360doc.com/content/14/0326/10/6624919_363817465.shtml STM32的三种启动方式依靠BOOT0和BOOT1两个引 ...

最新文章

  1. Oracle分析函数入门
  2. java postdelayed_你真的懂Handler.postDelayed()的原理吗?
  3. RabbitMQ的安装及集群搭建方法
  4. python常用异常处理
  5. 成功解决linear_model\stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been ad
  6. Python 33(1) UDP协议 数据报协议 socketsever模块
  7. 多态的实现(重载,虚方法,抽象类,接口)
  8. 用隐马尔可夫模型(HMM)做命名实体识别——NER系列(二)
  9. gsonformat安装怎么使用_IDEA中使用GsonFormat
  10. vba 数组赋值_VBA数组与字典解决方案第18讲:VBA中静态数组的定义及创建
  11. 消息推送与同步协议的思考
  12. vue中style的scoped属性的设计方式
  13. c# rar解压大小_C#利用WinRAR实现压缩和解压缩
  14. [译]聊聊C#中的泛型的使用
  15. C#LeetCode刷题之#496-下一个更大元素 I(Next Greater Element I)
  16. 以下各节已定义,但尚未为布局页“~/Views/_LayoutHome.cshtml”呈现:“mainContent; jsSrc”。...
  17. gpg: verify signatures failed: 文件打开错误
  18. Java Jad 反编译class文件
  19. Lodash兼容IE6~IE8
  20. 唱歌腹式呼吸法的运用技巧

热门文章

  1. 弹出层控件popup
  2. 输入多个城市名字,按升序排列输出
  3. 2019寒假纪中happy之旅
  4. 内网渗透(十)之内网信息收集-编写自动化脚本收集本地信息
  5. 微日志:交互体验中的情境感代入
  6. HOG+SVM进行行人检测(github代码解读)
  7. 【camx】 backtrace 报错信息的简单筛选方式
  8. 并查集leetcode.1697
  9. 【避坑】初次接项目的血与泪,扎坑了老铁
  10. 【SSH】订单编号类型引发的小问题