STM32F103学习2:使用J-LINK在MDK中烧录程序 - 深深的河流

时间:2024-02-23 18:17:42

STM32F103学习2:使用J-LINK在MDK中烧录程序

在上一篇博文中,使用了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库文件等,继续熟悉器件