http://zhyong319.blog.163.com/blog/static/6857205201276105311857/
KEIL提示“No target connected”的解決方法(原創)
在用STM32F051Disconvery學習時,配置GPIOA時,不小心將連接SWD總線上的兩個端口都配置為了輸出,這下慘了,就再也不能用SWD仿真或者下載程序了,解決方法如下:
1、先確認目標板上電。
2、先長按住目標板上的復位鍵,再點擊 Settings,再松開目標板上的復位鍵。

3、此時KEIL打開Settings的設置對話框,請確認有紅框圈中的內容后,再進行下一步。

4、將STM32F051Disconvery板斷電,重新上電。
5、先長按STM32F051Disconvery的復位鍵,再點擊仿真或者下載按鈕,再松開復位鍵。
注:這里點仿真到松開復位鍵不是每一次都能成功,每次點了仿真鍵到松開復位鍵的時間每次都不同,在某一個點時,就可以進入仿真或者下載程序了。板子就恢復正常了。但需要注意的是,在程序里一定要避開對GPIO13\GPIO14的配置。
注:這里點仿真到松開復位鍵不是每一次都能成功,每次點了仿真鍵到松開復位鍵的時間每次都不同,在某一個點時,就可以進入仿真或者下載程序了。板子就恢復正常了。但需要注意的是,在程序里一定要避開對GPIO13\GPIO14的配置。
總結:
在程序中配置了GPIO13\GPIO14。
我用萬用表測量目標板上的STM32F051R8T6的復位腳,在點擊仿真時,有瞬間的電平變化,我分析應該是對目標板有復位的動作,但為什么GPIOA的配置狀態沒有復位呢?有一點沒有搞懂。手冊寫有GPIOA_MODER復位后的值為:0x2800 0000,即將GPIO13\14配置為復用模式,但為什么在程序配置了GPIO13\14為輸出,並且在目標芯片有復位的情況下也會引起SWD無法仿真、下載的問題。
