STM32使用J-LINK的SWD仿真问题总结

1、连接上J-Link仿真器,出现数组显示为变量,只要在此处设置断点,再仿真到相应的数组位置即可解决此问题。

2、点变量或数组右键可快速添加到Watch中。

3、J-LINK的SWD仿真时,对单片机口线的设置

void KEY_Init(void)

{

  GPIO_InitTypeDef GPIO_InitStructure;

  GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE); //关闭JTAG,否则“增加”PBin(3)键失效

//GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable,ENABLE);

//设置为GPIO_Remap_SWJ_Disable,表现为程序执行到KEY_Init()函数会停住,有时会报“CPU_REG_SET():Register 0 is already marked as valid.”

//设置为GPIO_Remap_SWJ_JTAGDisable即可解决此问题。

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOD, ENABLE);

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_15;

  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;

  GPIO_Init(GPIOB, &GPIO_InitStructure);

 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;

  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;

  GPIO_Init(GPIOD, &GPIO_InitStructure);

}

4、程序下载完成后,J-LINK使单片机处于复位状态,只要start debug,然后再stop debug即可。如下图。

永不止步步 发表于12-17 10:02 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67417个|学分:382741个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号