一、問題描述
- 開發板型號:STM32F103C8T6
- IDE: Keil5
- 仿真器:ST-LINK/V2(使用用SWJ調試)
- 出現問題:燒錄程序時,出現No target connected的提示,具體如下圖所示:
二、問題分析及解決辦法
出現這種問題有兩種可能:
1.最簡單的情況:SWJ接口連線出現問題
你SWJ調試的4根線接錯了或接觸不良,電源線、GND、SWCLK、SWIO這四根線要按順序對應的相接。如果你反復檢查,確保線序正確,接觸良好后還是出現No target connected的錯誤,那么你可能就是第二種情況。
2.情況:SWJ功能在代碼中被關閉了
這種情況的特點往往是:之前燒錄都好好的,某次燒錄后突然就不行。並且當你一直按着開發板的reset鍵時,你會發現又能識別設備了(根據這個現象,網上有給出先按住reset鍵,在點燒錄按鈕后立刻松開reset的笨辦法,這個方法看手速和人品,有概率解決)。
出現這種情況的原因是,你燒錄的代碼里把芯片的SWJ調試功能給屏蔽了。這部分的代碼在stm32f1xx_hal_msp.c這個文件的HAL_MspInit()函數里,
如圖:正是__HAL_AFIO_REMAP_SWJ_DISABLE()這個函數把SWJ調試功能屏蔽了,所以你連接swj沒反應。
解決辦法是:把這句代碼刪了,編譯后用上面的笨辦法燒錄進去,以后只點燒錄按鈕即可!(如果是JTAG調試,道理類似)