1. 程式人生 > 其它 >解決STM32禁用SWD除錯介面後不能下載程式的問題 速度一定要快

解決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