发送字符串导致死循环:(
一个无线Zigbee网络的两个设备对传,发射端有一串比较长的字符串需要发送,我的方法是:把它分割成适合长度的字符串,先发送第一个小字符串,接着进入一个循环,等待接收机返回的确认信号后再发下一串字符串
k =StringLength/SuitLength; //k定义需要循环的次数
for(n=0;n<k;n++)
{
MemCpy(SendMsg, WanttoSend+SuitLength*n, SuitLength); //每次复制一串适合长度的小字符串给SendMsg
Cnfreceived = 0; //全局变量
SendMessage(); //发送SendMsg字符串
do{
__asm nop;
__asm nop;
__asm nop;
}
while(Cnfreceived != 1); //若收到接收端返回的确认信号,Cnfreceived会置1
}
为什么每次都会死在do while循环那里?如果把do while屏蔽掉,接收端就能收到分割后的最后一个小字符串,并且发送端也会收到一个接收端返回的确认。
实在不知道是哪里出了问题,请各位大侠指教!