先说一下结论:SYS的配置和BOOT0、BOOT1引脚的配置会影响程序调制、下载和执行
下表是BOOT0和BOOT1启动配置说明,一般默认在00模式
| BOOT1 | BOOTO | 启动模式 | 描述 |
| 0 | 0 | 主闪存存储器启动模式 | 从 Flash 启动,运行用户程序(默认模式 |
| 0 | 1 | 系统存储器启动模式 | 从系统存储器启动,运行内置Bootloader,支持串口烧录程序 |
| 1 | 0 | 嵌入式 SRAM 启动模式 | 从 SRAM 启动,通常用于调试 |
| 1 | 1 | 保留 | 通常不使用 |
如果我们没有定义STM32的SYS模式,并且BOOT启动配置是00,那么我们用ST-Link调试的时候,只能下载一次程序,下一次下载将无法识别ST-Link设备。这个时候我们需要在IDE里面配置SYS的模式,改为调试模式,如果是ST-LINK就是serial wire模式,如果是J-LINK ,就是J-LINK模式,总之改为对应的调试模式,即可实现程序的不断下载调试,切记!!
如果此时STM32中已经有程序,并且无法下载进去,需要手动将BOOT0调整为高电平,将程序通过IDE下载进去,随后再将BOOT0引脚拉低电平即可!💕😁😁😁😁