STM32F103C8T6 的 BOOT0 设置主要决定芯片上电后的启动模式。日常正常运行程序时,将 BOOT0 接地(设为 0)即可;仅在需要通过串口下载程序时,才需将 BOOT0 接高电平(设为 1)。
启动模式对照表
STM32F103C8T6 的启动模式由 BOOT0 和 BOOT1 共同决定,具体如下:
| BOOT0 | BOOT1 | 启动模式 | 典型用途 |
|---|---|---|---|
| 0 | X(0或1) | 主闪存存储器 | 正常运行程序(最常用) |
| 1 | 0 | 系统存储器 | 串口下载程序(ISP) |
| 1 | 1 | 内置 SRAM | 调试用,掉电丢失(极少用) |
实际设置场景
场景一:正常运行与 SWD 调试
如果你使用 ST-Link 等工具通过 SWD 接口下载调试,或者程序已经烧录完毕准备运行,必须将 BOOT0 接到 GND(即设为 0)。此时 BOOT1 的状态无所谓,芯片会从 Flash 中启动你编写的程序。
场景二:串口下载程序
如果你手头没有 ST-Link,想用 USB 转 TTL 模块通过串口(USART1,PA9/PA10)给芯片烧录程序,需要:
-
将 BOOT0 设为 1 (接 3.3V),BOOT1 设为 0(接 GND)。
-
复位或重新上电,芯片会进入系统存储器中预置的 Bootloader 模式。
-
下载完成后,务必将 BOOT0 改回 0,再次复位,新程序才会开始运行。
关键注意点
-
复位生效 :在通电状态下直接拨动跳线帽切换 BOOT0 通常不会立即生效,必须按下复位键或重新上电,芯片才会根据新的引脚电平重新选择启动区域。
-
硬件连接 :在 Blue Pill 等常见核心板上,通常用跳线帽将 BOOT0 引脚与旁边的
0(GND)或1(3.3V)标注端短接来实现设置。