STM32三种启动模式对应的存储介质均是芯片内置的,它们是:
1. 用户闪存:芯片内置的Flash。
2. SRAM:芯片内置的RAM 区,就是内存啦。
3. 系统存储器:芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段Bootloader,就是通常说的ISP程序。这个区域的内容在芯片出厂后没有人能够修改或擦除,即它是一个ROM 区。
在每个STM32的芯片上都有两个管脚BOOT0和BOOT1,这两个管脚在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执行程序,
见下表:
BOOT1=x BOOT0=0 从用户闪存启动,这是正常的工作模式。
BOOT1=0 BOOT0=1 从系统存储器启动,这种模式启动的程序功能由厂家设置。
BOOT1=1 BOOT0=1 从内置SRAM 启动,这种模式可以用于调试。
要注意的是,一般不使用内置SRAM 启动(BOOT1=1 BOOT0=1),因为SRAM 掉电后数据就丢失。多数情况下SRAM 只是在调试时使用,也可以做其他一些用途。如做故障的局部诊断,写一段小程序加载到SRAM 中诊断板上的其他电路,或用此方法读写板上的Flash 或EEPROM 等。还可以通过这种方法解除内部Flash 的读写保护,当然解除读写保护的同时Flash 的内容也被自动清除,以防止恶意的软件拷贝。
STM32 PB2(BOOT1)使用注意 由于STM32 PB2脚是复用引脚,而且该复用功能是用于启动选择,使用时就要小心了。
-------------------------------------------------------------------------
BOOT1 BOOT0 启动模式 说明
X 0 用户闪存存储器 用户闪存存储器被选为启动区域
0 1 系统存储器 系统存储器被选为启动区域(进入ISP模式)
1 1 内嵌SRAM 内嵌SRAM被选为启动区域
-------------------------------------------------------------------------
一般来讲我们正常使用是模式1(用户闪存存储器),我相信很多人使用STM32时是直接 焊PCB板上然后再编程,估计使用ISP编程的不在少数,如果这样就需要用到两种启动模式 BOOT1=0 BOOT0=1 要进入ISP编程,那么PB2就必须保持低电平。PB2如果做普通IO用, 那么建议不作为输入用,因为输入状态是外部决定的,除非你有跳线设置,强行拉低 即使做输出用也需要注意,我使用时一般下拉10K~100K电阻,这样只需要改变BOOT0 1根线就可以改变启动模式了。下拉电阻选10K~100K是由PB2接的外设决定,不同的外设 下拉不同,有的100K是拉不低的。 如果你的IO足够用建议PB2还是只用做BOOT1 。请注意:BOOT0/BOOT1的状态只是在CPU复位之后的4个周期内,被用作启动的依据,系统启动之后,或是取得了复位向量之后,BOOT0/BOOT1的状态可以任意变化,而不影响CPU的运行。
所以只需要保证在复位时,BOOT0/BOOT1处于正确的启动状态即可,启动之后则随便什么电平都可以了。
一般BOOT0 和BOOT1 跳线都跳到0(GND)。只是在ISP下载的情况下,BOOT0=1,BOOT1=0 ,下载完成后,把BOOT0 的跳线接回0,也即BOOT0=0,BOOT1=0 。
对于一般的应用来说,直接把BOOT0 和BOOT1 引脚接地即可,不用设置跳线,使用IAR 调试程序时可以选择RAM 调试还是Flash 调试,与BOOT0 和BOOT1 的配置无关。芯片只在启动的第四个周期对BOOT1进行采样,采样完毕后,该引脚就被释放,用户可以像初始化其他IO口一样,把该引脚用作任一功能。在STM32的参考手册上有说明。
关键字:STM32 启动模式
引用地址:
STM32 的三种不同启动模式
推荐阅读最新更新时间:2024-03-16 14:30
【实验一】跑马灯实验
一、实验目的 通过控制战舰STM32开发板上的两个LED灯:DS0和DS1交替闪烁,实现类似跑马灯的效果。 二、STM32 IO简介 STM32 的每个 IO 端口都有 7 个寄存器来控制。他们分别是:配置模式的 2 个 32 位的端口配置寄存器 CRL 和 CRH; 2 个 32 位的数据寄存器 IDR 和 ODR; 1 个 32 位的置位/复位寄存器BSRR;一个 16 位的复位寄存器 BRR; 1 个 32 位的锁存寄存器 LCKR。 8种模式: 1、 输入浮空 2、 输入上拉 3、 输入下拉 4、 模拟输入 5、 开漏输出 6、 推挽输出 7、 推挽式复用功能 8、 开漏复用功能 IO 操作步骤:
[单片机]
嵌入式stm32学习:SPI-读写串行FLASH
bsp_spi_flash.h #ifndef __SPI_FLASH_H #define __SPI_FLASH_H #include stm32f4xx.h #include stdio.h /* Private typedef -----------------------------------------------------------*/ //#define sFLASH_ID 0xEF3015 //W25X16 //#define sFLASH_ID 0xEF4015 //W25Q16 //#define sFLASH_ID
[单片机]
STM32外接DHT11温湿度传感器并通过OLED进行数据显示的设计电路与程序
本篇介绍STM32如何外接温湿度传感器实现当前环境温湿度的读取,并显示到OLED屏幕上。 1 DTH11温湿度传感器 DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,包括一个电阻式感湿元件和一个NTC测温元件。 1.1 数据读取协议 微控制器MCU与 DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右。 用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据。 从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT1
[单片机]
STM32之 IP ICMP ETHERNET的实现
1.前言 嵌入式以太网开发是一个很有挑战性的工作。通过几个月的学习,个人觉得大致有两条途径。第一条途径,通过高级语言熟悉socket编程,例如C#或C++,熟悉bind,listen,connect,accept等函数,在嵌入式系统中应用 lwIP协议栈。第二种途径,通过分析嵌入式以太网代码,结合TCPIP协议栈规范逐步实践协议栈代码。第一种途径效率高,开发周期短,编写出来的代码性能稳定,第二种途径花的时间长,开发出来的代码功能不完善,但是由于紧紧结合TCPIP规范,可以了解的内容较多,适合学习。本文通过分析和修改AVRNET源码并移植到STM32平台,逐步实现TCPIP协议栈的各个子部分,包括ETHERNET部分,ARP部分,I
[单片机]
ST助力构建赛-课-证一体化嵌入式应用人才培养生态圈
——获奖作品回顾及2023年嵌入式大赛学习资源分享 近日,第六届(2023)全国大学生嵌入式芯片与系统设计竞赛应用赛道启动报名,大赛连续3年入选全国普通高校大学生竞赛目录 。大赛自2014创办以来,意法半导体(ST)一直作为主要的协办厂商参与其中,STM32产品及开发板作为大赛使用率最高的开发平台,也受到来自国内外高校电子电气类相关专业同学及高职高专学校学生的广泛推崇。我们意识到,与下一代创新者合作的重要意义,并力争为他们释放全部创新力提供所需工具、专业知识和解决方案。ST还与上百所高等院校合作开发精品课程、师资培训,建立联合实验室,实施嵌入式人才培养计划,甚至举办教育联盟会议及校内比赛,以增加我们与师生的沟通交流,这一切都
[嵌入式]
STM32原子哥的故事
提到广州星翼电子,STM32圈中的人可能会觉得陌生,但是提到正点原子和《原子教你玩stm32》,所有接触过STM32或者Arm MCU的爱好者几乎都知道。近日广州星翼电子技术总监原子哥作为意法半导体战略合作伙伴,和意法半导体中国区微控制器事业部市场及应用总监曹锦东共同接受了媒体采访。 正点原子的故事就此展开。 正点原子的介绍 原子哥本名刘军,是正点原子(广州星翼电子)的技术总监。 从公司简介中我们可以看到,广州市星翼电子是一家从事嵌入式开发平台、IOT物联网、四轴飞行器、仪器仪表和企业服务等软硬件研发、销售一体化的国家高新技术企业。公司成立于2012年,是国内知名度极高的嵌入式开发平台供应商,产品远销东南亚欧美各国,国内数百家
[单片机]
STM32的GPIO输入输出模式配置
最近在看数据手册的时候,发现STM32的GPIO输入输出模式的配置种类有8种之多(输入和输入各4种): (1)GPIO_Mode_AIN模拟输入 (2)GPIO_Mode_IN_FLOATING浮空输入 (3)GPIO_Mode_IPD下拉输入 (4)GPIO_Mode_IPU上拉输入 (5)GPIO_Mode_Out_OD开漏输出 (6)GPIO_Mode_Out_PP推挽输出 (7)GPIO_Mode_AF_OD复用开漏输出 (8)GPIO_Mode_AF_PP复用推挽输出 我们平时接触的最多的也就是推挽输出、开漏输出、上拉输入这三种,但对于各种模式下IO口的内部电路和典型应用,STM32的数据手册中也未曾做过详细的说明和归纳
[单片机]
SD NAND在STM32应用上的保姆级教程
SD NAND与正点原子精英板的连接 由于正点原子精英板没有SD NAND接口,只有TF卡接口,所以SD NAND需要用到转接板来连接。 SD NAND正常运行现象 本次实验的程序是正点原子的SD卡实验例程,先用读卡器把SD NAND接到电脑上,并复制一个文件进去,再插到开发板上; 用送的数据线连接USB UART接口,下载好程序,打开电脑上的串口助手,按下KEY0,即可读取到数据, 具体实验步骤和现象可以看例程文件夹中的readme, 另外LED-DS0闪烁也表示SD NAND芯片在正常运行, SD NAND芯片用的是MK-米客方德的工业级芯片MKDV1GIL-AS;MK-米客方德家还有其他各种型号的SD NAN
[单片机]