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。
當晶片處於休眠狀態,是無法下載的。按照以上第一次的配置即可實現。
按著復位鍵,點選下載,鬆開復位。三步,我一次就成功了。網上也有需要多試幾次的說法。這個是做法是晶片休眠情況喚醒下載哦。