在上一篇博文中,使用了USB轉串口的方式通過串口燒錄了程序。但是在實際調試程序過程中,從調試效率的角度考慮,往往會用到JTAG接口在線燒錄和調試程序。
一、首先,我們安裝一下J-LINK v8的驅動,並設置好MDK中使用J-LINK的選項
1.下載並安裝j-link 4.34版本的驅動程序,4.5以上版本在淘寶上買到的“兼容版”j-link上無法使用。
2.下面這篇文章詳細描述了,在MDK中使用J-LINK燒錄程序和debug設置哪些必要的選項。在這里不復述了
http://blog.csdn.net/zhzht19861011/article/details/5924218
3.連接J-LINK與開發板后,上電,在MDK中單擊LOAD按鈕燒錄程序

4.出現了下載失敗的問題,提示是:"No Cortex-M Device found in JTAG chain"或“Emulator has been changed or re-enumerated!”
根據關鍵詞找到這篇文章:
http://no001.blog.51cto.com/1142339/857117
發現有可能是程序中關閉了JTAG管腳,賣家在說明文檔中也提到了這個問題

在程序中屏蔽了這句后,先使用串口將程序燒進芯片。再用JTAG燒錄程序就成功了。

為什么會這樣呢?我們一起看一下改動過的這句:
// AFIO->MAPR = (0x00FFFFFF & AFIO->MAPR)|0x04000000; //關閉JTAG
在stm32f103的器件手冊中第83頁查到AFIO->MAPR為復用重映射和調試I/O配置寄存器,

賦值0x040000000后即為100 關閉二者
而屏蔽這句之后,系統復位后默認可以開啟JTAG模式
下一篇博文將會嘗試控制的I/O管腳和stm32庫文件等,繼續熟悉器件
