STM32程序下载和启动方式

news/2025/1/12 16:04:33/

目录

  • 1 BOOT引脚配置和下载说明
  • 2 关于串口下载方式
  • 3 关于一按复位就跑代码
  • 4 关于下载调试速度
  • 5 关于三种启动方式
    • 5.1 FLASH启动
    • 5.2 系统存储器器启动
    • 5.3 SRAM启动
  • 6 关于程序的三种下载方式

1 BOOT引脚配置和下载说明

BOOT0BOOT1程序运行ST-Link下载串口下载启动说明
xx×××
0x×用户闪存存储器,也就是FLASH启动
10××系统存储器启动,用于串口下载
11×1×SRAM启动,用于在SRAM中调试代码

在这里插入图片描述

2 关于串口下载方式

一般情况下如果我们想用用串口下载代码,则必须配置BOOT0为 1,BOOT1为 0

3 关于一按复位就跑代码

如果想让 STM32 一按复位键就开始跑代码,则需要配置BOOT0为 0,BOOT1为 x(即BOOT1 随便设置)。

4 关于下载调试速度

如果USB数据线比较差,或者使用了杜邦线来连接单片机和下载器,那么可能会出问题,此时,可以通过降低这里的速率来试试。
在这里插入图片描述

5 关于三种启动方式

//本章说明2

5.1 FLASH启动

  就是不用出厂自带的bootloader,直接运行flash里的程序,将flash分为两部分,第一部分充当第二部分的bootloader,第一部分干嘛的呢?第一部分用来接收bin文件并将其写到第二部分中,第二部分才是我们MCU真正要运行的代码。

5.2 系统存储器器启动

  最常用的一种就是系统存储器启动,STM32芯片出厂的时候系统内部存储器自带bootloader程序,负责下载程序的时候对芯片内部的flash进行擦除与编写,ISP下载就是通过串口与bootloader将程序烧写到flash中(科普:MCU的代码是存储在flash当中的,所以一般芯片说有多少k的flash就代表能存储多少代码)。

5.3 SRAM启动

  SRAM叫做静态随机存取存储器,SRAM启动一般是编写一些小程序用来扫描所有I/O口,然后再板上测量信号,借此检测所有的焊接是否正常。这样不必触动Flash中的程序。有一个案例是说买了个板子用ISP下不了程序,发现flash锁了,就使用SRAM启动将flash解锁。

如果还想更细致了解,可以参考这片博文;一探究竟STM32的三种启动模式

6 关于程序的三种下载方式

//本章说明2

一般程序的下载有三种方法:ISP(In System Programing)、ICP(In Circuit Programing)、IAP(In applicating Programing)。

  • ISP一般是通过串口(USB线)下载程序。
  • ICP是通过SWD(几根线)下载程序。
  • IAP是让你的MCU可以通过所有的MCU支持的通讯接口或者方式(TTL、RS232、RS485、I2C,SPI,CAN等等)下载程序。

  1. 该下载方式下,不可以勾选Reset and Run,参见上图。 ↩︎

  2. 该章节照抄了CSDN博主「CRUD搬砖党的神」的原创文章,遵循CC 4.0 BY-SA版权协
    原文链接:https://blog.csdn.net/weixin_43593698/article/details/108303376 ↩︎ ↩︎


http://www.ppmy.cn/news/31000.html

相关文章

English Learning - L2-5 英音地道语音语调 弹力双元音 [ɪə] [ʊə] [eə] 2023.03.6 周一

English Learning - L2-5 英音地道语音语调 弹力双元音 [ɪə] [ʊə] [eə] 2023.03.6 周一朗读节奏元音的长度元音发音在清辅音和浊辅音前的区别元音发音跟后面浊辅音节数的区别元音在重读音节中复习大小元音发音对比/ʌ/ 舌中音/ɒ/ 舌后音/ʊ/ 舌后音/ɪ/ 舌前音[ɑ:] VS […

Linux 学习笔记

一、 概述 1. 操作系统 ① 计算机由硬件和软件组成 ② 操作系统属于软件范畴,主要作用是协助用户调度硬件工作,充当用户和计算机硬件之间的桥梁 ③ 常见的操作系统 🤠 PC端:Windows、Linux、MacOS🤠 移动端&#…

python之dataclasses

一、场景 dataclasses模块提供了一种方便的方法来创建和管理数据对象 它可以帮助开发者更容易地创建简单的类,同时提供了一些实用的功能,例如自动实现__init__()、repr()、eq()等方法。 数据容器:如果您需要一个简单的类来存储一些数据&…

深入分析@Configuration源码

文章目录一、源码时序图1. 注册ConfigurationClassPostProcessor流程源码时序图2. 注册ConfigurationAnnotationConfig流程源码时序图3. 实例化流程源码时序图二、源码解析1. 注册ConfigurationClassPostProcessor流程源码解析(1)运行案例程序启动类Conf…

Vue键盘事件的使用

前言 在vue中,我们经常会用到键盘事件,不管是我们按下某个键,其实都是一次键盘事件的调用,下面就介绍下Vue中的键盘事件 先写一段代码,这里我选择的键盘事件是keyup,当然用keydown也是没问题的 问题来了,…

如果读了我2011年求职前端开发的酸爽经历,希望你可以鼓起勇气继续向前

今年是2023年,如果你觉得今年找工作很难,狗哥回忆了一下2011年求职前端开发工作的酸爽经历,希望你读了以后可以鼓起勇气,不要迷茫,简历投出去石沉大海的,需要改简历的就赶紧改,刷题不到位的就赶…

网络:TCP与UDP相关知识(详细)

目录:1、UDP 和 TCP 的特点与区别2、UDP 、TCP 首部格式3、TCP 的三次握手和四次挥手4、TCP 的三次握手(为什么三次?)5、TCP 的四次挥手(为什么四次?)6、TCP 长连接和短连接的区别7、TCP粘包、拆…

电子签名?玩具罢了!

需要的前置知识:简单的canvas绘制线路过程 let canvas document.getElementById(id); //id为canvas标签元素的id,或通过其它方法获取标签 let ctx canvas.getContext(2d); //规定为2d绘制图片,即确定为2d画笔 ctx.strokeStyle "whit…