我在这一步设置一个断点,此时我画出来的IP数组为一串数字。
我现在点击next statement,跑到绿色的地方,发现这个IP没有变化。
我重新运行程序,再次跑到断点处,IP还是这个IP
我在刚才单步的地方再次设置个断点,直接运行过去,发现IP变化了,这是为什么?
我单步点的是这个:
单步调试和直接运行最大的区别就是时间不同,单步调试时你可以把每个步骤的时间拉伸到无限久,而直接运行时间会很短。
看不出你的程序是怎么写的,感觉是在某处延时不够。
这个IP改变后的内容是我第一个断点处发送的内容“ SendString1("AT%IPOPEN=\"TCP\","); ”,但是我的ip获取代码是这样的:
void Get_ip(uchar *a,uchar *ip)
{
int i;
k=0;
for(i=39;i<54;i++)
{
if((i-39)<15)
{
if((a=='.')||((a<58)&&(a>47)))
*ip=a;
//Delay_Nms(100);
ip++;//ip推进
k++;//长度推进
}
}
}
调用起来是这样的:
Get_ip(RxBuf1,IP);
而且这条调用程序执行完后(IP都已经获得了)才执行我图上的那条SendString1("AT%IPOPEN=\"TCP\",");,里面的数据怎么会又跑进去?
我把图上两个断点之间的延时去掉居然就正常了。。。。。。。。。。