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即可。如下图。