樓豬本來是用JTAG用來下載和調試stm32的程序的,由於JTAG是D版(你懂的),官方有升級時手賤點了升級,JTAG就變磚了。后來發現用於STM8下載調試用的STLink還可以用來調試stm32,樓豬買的是20多塊錢的STLINK,X寶買的,號稱可以使用官方固件,於是就有了這篇文章:
首先聲明,樓豬用的是win 10 64位,keil uvision是4.74版
1、當然是安裝stlink的驅動,樓豬的stlink雖然號稱是V2版,但實際上應該不是V2版,因為不能使用JTAG模式來調試,只能使用SW模式

插入硬件后設備管理器會有stlink顯示


2、keil uvision中的設置
4.7版本已經不需要將tools.ini覆蓋了,設置如下圖就可以了,下載器列表有兩個st link的話,選擇設置選項較多的一個吧;另外一個據說是D版專用的






3、stlink如何接入JTAG接口說明:
stlink接入stm32只要接入三根線就可以了
SWCLK SWDAT GND
接線如下圖所示:

圖中J1的左側就是有JTAG硬件接口中有缺口的位置

4、如果做完上述步驟還不能進行調試(例如可以下載,但程序不能斷點調試,不能跑進main函數等問題),你就要留意stm32的Boot0和Boot1管腳了
在每個STM32的芯片上都有兩個管腳BOOT0和BOOT1,
這兩個管腳在芯片復位時的電平狀態決定了芯片復位后從哪個區域開始執行程序,見下表:
BOOT1=x BOOT0=0 從用戶閃存啟動,這是正常的工作模式。
BOOT1=0 BOOT0=1 從系統存儲器啟動,這種模式啟動的程序功能由廠家設置。
BOOT1=1 BOOT0=1 從內置SRAM啟動,這種模式可以用於調試。
也就是說,如果要調試,要將BOOT1接地,BOOT0上拉,但樓豬自己測試的情況是只要將BOOT0上拉就行,如下圖:


如果以上步驟做完還是不行,那可能是樓豬使用的硬件,或者keil uvision的生成設置與你的不一致造成的,請大家再繼續鑽研了。
