STM32的BOOT0和BOOT1引脚决定芯片上电后的启动源,配置需结合硬件和烧录需求。
**标准配置(以STM32F1为例)**:
- **BOOT0=0,BOOT1任意**:从主Flash启动(正常模式,推荐)。
- **BOOT0=1,BOOT1=0**:从系统存储器启动(用于串口ISP下载,如UART1)。
- **BOOT0=1,BOOT1=1**:从SRAM启动(调试用,掉电丢失)。
**实操建议**:
1. 开发板通常有跳线帽,默认BOOT0接GND(0),BOOT1悬空或接GND。
2. 若需串口下载,将BOOT0拉高(接3.3V),BOOT1拉低,复位后进入ISP模式,下载完再恢复BOOT0=0并复位。
3. 注意:BOOT1仅在BOOT0=1时有效,平时可悬空(内部下拉)。
4. 使用SWD/JTAG调试时,无需改BOOT,直接烧录Flash。
```c
// 示例:代码中无需配置,硬件决定启动源
int main(void) {
// 正常从Flash启动后执行
while(1);
}
```
**关键点**:BOOT配置只在复位时采样,运行中修改无效。若量产,建议BOOT0固定接GND,用SWD烧录。
mcuku 阿沐 · 2026-08-20