stm32烧录时报错Eror Flash Download failed - Target DLL has been cancelled
·
一、解决办法
-
设置 BOOT0 = 1 (接到 3.3V)。
-
按一下板子上的 RESET 键。
-
点击烧录代码
-
将 BOOT0 拨回 0 (接到 GND)。
-
再次尝试正常下载。
例子:
stm32f103c8可以直接用跳线帽,把boot0接1,再烧录。
不行的话再摁复位键烧录
左边丝印写的是0,右边丝印写着是1,上面是boot0

STM32 有几种不同的启动模式,取决于 BOOT0 和 BOOT1 引脚的状态:
| BOOT0 | BOOT1 | 启动模式 | 说明 |
| 0 | X | Main Flash | 从你编写的用户代码启动(出问题的代码就在这里)。 |
| 1 | 0 | System Memory | 启动内置的 Bootloader(厂家固化的 ROM)。 |
| 1 | 1 | Embedded SRAM | 从内置 SRAM 启动。 |
二、为什么芯片会被“锁住”?
在正常的开发过程中,以下几种常见操作会导致你无法再次烧录程序:
-
禁用了 SWD/JTAG 引脚:为了节省 GPIO 资源,有些开发者在代码中将调试引脚(比如PA13, PA14 等)配置成了普通 IO 或模拟输入。一旦程序运行,调试通道就断开了。
-
进入了低功耗模式:如果芯片执行了
Stop或Standby模式,内核时钟会停止,调试器自然也就连不上了。 -
看门狗复位:程序中开启了独立看门狗且没有及时喂狗,导致芯片不断重启,调试器很难在重启的瞬间抓住连接机会。
-
代码逻辑错误:比如一上电就进入了一个死循环,或者配置了错误的时钟(HSE 配置错误导致系统崩溃)。
更多推荐
所有评论(0)