Error: Flash Download failed - Target DLL has been cancelled

在写程序时候突然遇到这个下载失败问题,不是第一次遇到,所以总结一下。

分享本人遇到的下载失败的情况用的是 ST-lINK V2下载

第一次:第一块板子,自己画的板子下载失败原因:STM32F10X芯片四个VCC漏接了一个。就是我画板子时候没有认真检查,连接线少了一条。

这个也是后面反复检查才发现的,因为确实不是和显眼的连接线,被背景栅格线重叠了。

验证过程:查询网上的各种资料汇总一下:

1、确保晶振起振。换晶振,加22pf 或者加1M欧的电阻,便于起振。

2、BOOT0/1配置,先把boot0:1boot1:0;下载成功后再换回换来的。

3、按着复位键,然后下载程序再松开复位,需要不断的试。

以上三种方法都试过了,还是不行,于是我换了一个小系统来下载也是自己新画,一下子就成功了。这个时候不得不怀疑是板子问题。反复检查才发现是漏画了芯片vcc,使用跳线接上后成功烧录。

第二次:板子,程序一直在调试,下载,下载之后就不行了。是因为程序改动了芯片的默认调试口。

即: GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable,ENABLE);   //

STM32F10X芯片有专门的调试口:

调试引脚:
PA15:JTDI 处于上拉状态
PA14:JTCK/SWCLK处于下拉状态
PA13:JTMS/SWDAT处于下拉状态
PB4:NJTRST处于上拉状态
PB3:JTDO处于浮空状态

默认情况是作为调试口使用。当我们要作为普通IO口使用,需要设置相关寄存器,库函数就调用GPIO_PinRemapConfig函数,就是以上的程序使能禁止JTAG模式;

修改使用调试IO,会出现芯片休眠情况,IO充足情况下,尽量避免使用调试IO。

当芯片处于休眠状态,是无法下载的。按照以上第一次的配置即可实现。

按着复位键,点击下载,松开复位。三步,我一次就成功了。网上也有需要多试几次的说法。这个是做法是芯片休眠情况唤醒下载哦。目前,因为修改占用了PB3,PB4所以导致每次下载程序都需要按下复位键,点击LOAD下载,松才能烧录成功,不知道其他芯片是否如此。

猜你喜欢

转载自blog.csdn.net/cherry_blossom1/article/details/83009550