STM32PB2(BOOT1)使用注意

本文详细解析STM32微控制器中PB2(BOOT1)引脚的功能及其在不同启动模式下的作用。介绍了如何通过配置PB2与其他引脚组合实现用户闪存、系统存储器及内嵌SRAM的启动选择,特别强调了在ISP编程模式下PB2必须保持低电平的要求,以及在实际应用中如何正确使用PB2引脚避免潜在问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
### STM32F1 Boot电路的功能与作用 #### 一、Boot电路概述 STM32F1系列微控制器的启动过程由两个关键引脚控制:`BOOT0` 和 `BOOT1 (PB2)`。这两个引脚的状态决定了设备上电或复位后的启动模式[^1]。 - **BOOT0**: 这是一个硬件输入引脚,通常连接到外部电阻网络或者跳线帽,用于决定是否进入系统存储器启动模式。 - **BOOT1 (PB2)**: 此引脚既可以作为普通的GPIO使用,也可以参与启动配置的选择。其状态影响具体的启动路径[^2]。 #### 二、启动模式解析 根据上述两引脚的不同组合,STM32F1可以有三种主要的启动模式: 1. **Main Flash Memory 启动** 当 `BOOT1 = 0` 并且 `BOOT0 = 0` 或者 `BOOT0 = 1` 时,MCU将从主Flash存储器中加载并执行程序。这是最常见的启动方式,适用于正常运行的应用场景。 2. **System Memory 启动** 如果设置 `BOOT1 = 0` 并且 `BOOT0 = 1`,则器件会从系统存储器中启动。此区域内包含了厂商预先写入的Bootloader代码,主要用于支持通过UART接口实现在线编程功能。需要注意的是,在完成程序烧录之后,应重新调整BOOT引脚至默认状态以便恢复正常操作流程[^3]。 3. **SRAM 启动** 设置条件为 `BOOT1 = 1` 和 `BOOT0 = 1` 的时候,处理器会选择从内部SRAM开始执行指令序列。不过由于易失性的特性——即断电后内容消失的缘故,该选项较少被实际采用除非是在特定测试环境下需要用到临时驻留型算法的情况之下。 #### 三、具体应用场景分析 对于大多数工程项目而言,默认推荐使用 Main Flash Mode 来部署最终产品固件;而 System Memory Mode 则更多地服务于开发阶段中的调试需求以及量产前的大规模刷机作业之中。至于 SRAM mode,则仅限于一些特殊的实验场合或者是故障诊断过程中才会偶尔涉及到了解和运用它。 ```c // 示例代码展示如何初始化 GPIOs 配置 BOOT 引脚逻辑水平 void configure_boot_pins(void){ // 假设这里已经完成了 RCC 初始化工作... // 设定 BOOT1(PB2) 输出方向, 默认拉低 GPIO_InitTypeDef GPIO_InitStruct; __HAL_RCC_GPIOB_CLK_ENABLE(); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_2, GPIO_PIN_RESET); } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值