STM32 ST-LINK驅動安裝成功卻出現識別不到ST-LINK的辦法


最近在學習STM32,但是調試和下載程序過程中,成功了N次,但是就突然出現找不到ST-LINK的問題。

上網查了許多資料,都沒用,耗費了1個小時的時間,終於找到了解決辦法,我就覺得為什么不早點推給我這篇文章。感謝這位大佬,在此搬運您的文章僅做學習與記錄使用,末尾已附上連接,如有侵權,會立即刪除。

情況描述:ST-LINK能被電腦識別,驅動是好的。但是在keil中的Debug-setting中的SW Device找不到。無論是下載還是調試,都提示“flash download failed target dll has been cancelled”。(注:如果一按setting ST-LINK的指示燈就滅了,請重新升級一下ST-LINK的固件,可以在keil 5安裝文件夾下的ST-LINK子文件夾下的ST-LinkUpgrade.exe自動升級)

顯示“NO target connected“ 但是驅動沒有問題 在設備管理器中顯示出有stlink
原因是配置了GPIOA的 14 13這兩個口了

GPIOA_MODER復位后的值為:0x2800 0000,即將GPIO13\14配置為復用模式,但為什么在程序配置了GPIO13\14為輸出,並且在目標芯片有復位的情況下也會引起SWD無法仿真、下載的問題。

解決辦法:

1、先確認目標板上電。
2、先長按住目標板上的復位鍵,再點擊 Settings,再松開目標板上的復位鍵。
3、此時KEIL打開Settings的設置對話框,請確認有SWD的內容后,再進行下一步。
4、將目標板斷電,重新上電。
5、先長按目標板的復位鍵,再點擊仿真或者下載按鈕,再松開復位鍵。
注:這里點仿真到松開復位鍵不是每一次都能成功,每次點了仿真鍵到松開復位鍵的時間每次都不同,在某一個點時,就可以進入仿真或者下載程序了。板子就恢復正常了。但需要注意的是,在程序里一定要避開對GPIO13\GPIO14的配置。

但是還有一個問題,我按照上述方法成功以后,第二次下載程序我還是沒識別到ST-LINK,那我豈不是每燒一次就要把上面步驟重復一遍?

我想了想,看了一下程序,學習的是待機喚醒程序,我就想是不是程序的事啊,我就換了個跑馬燈的程序按照上面步驟燒進去,發現能識別到ST-LINK了。

可能原因還是GPIOA 13 14被配置了。俺也沒找出具體的原因。

轉載至CSDN博主「qq_42041980」的原創文章

原文鏈接:https://blog.csdn.net/qq_42041980/article/details/92015997 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM