解決STM32禁用SWD調試接口后不能下載程序的問題 速度一定要快


解決STM32禁用SWD調試接口后不能下載程序的問題

小劉同學啊 2020-11-09 22:39:06 1319 收藏 8
文章標簽: stm32 keil mdk
版權
STM32的PA13(SWDIO)、PA14(SWCLK)這兩個引腳為SWD調試接口,因為STM32默認把這兩個接口當作了下載接口,所以如果程序中有用到這兩個接口的任意一個(比如用來作為普通I/O口),STM32內部運行程序時,該接口就會被屏蔽掉,因此當我們接上SWD下載器下載程序,KEIL會提示無法連接到STM32。
解決方法:這其實非常簡單,因為STM32在內部運行了程序,所以才導致下載接口被屏蔽了,那我只需要把程序停下來不就好了?是的!!!
如下圖:
STM32運行時,NRST復位引腳需要接高電平,當該引腳接低電平時,STM32會進入復位狀態,此時不會運行程序。

 

 


具體做法:
1、針對只有VCC、GND、SWCLK、SWDIO四線的下載器(無單獨NRST引腳)
用鑷子或者跳線把STM32的NRST引腳拉低,並一直使STM32處於復位狀態,然后單擊KEIL的DOWNLOAD按鈕,因為這時候MCU一直處於復位,所以當我們DOWNLOAD下載代碼時,立刻松手讓MCU的NRST引腳拉高,這就可以成功下載了,如果松手太慢則會下載失敗!!!

2、針對有單獨NRST引腳的下載器(其實就是為了解決做法一需要手動拉低電平的問題)
在KEIL工具里打開魔術棒-DEBUG-Setting-Connect&Reset Options-下拉選中with Pre-reset選項(其實就是先拉低使MCU復位),然后點擊確定就可以了。

 

 

 

 


把帶有獨立NRST引腳的下載器連接好,下載過程中示波器捕捉到的NRST引腳信號如下:
NRST引腳由高電平變為低電平,MCU進入復位狀態,SWD相關接口能正常使用,持續10ms后正常拉高電平,下載器正常下載程序。

 

 

————————————————
版權聲明:本文為CSDN博主「小劉同學啊」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_42518229/article/details/109587792


免責聲明!

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



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