当前位置: 代码迷 >> Wireless >> SIM300 IP包发送失败,该如何解决
  详细解决方案

SIM300 IP包发送失败,该如何解决

热度:2754   发布时间:2013-02-26 00:00:00.0
SIM300 IP包发送失败
关键程序简化后如下:
int TCP_Send (char *src_buf, unsigned int buf_len)
{
  int i;
  char AtCMD[64] = {0};

  if ( !QuickQuit ) {
  LCDDisLable ("正在发送数据...");
  }

  GSM_ClearVariable();

  sprintf (AtCMD, "AT+CIPSEND=%d\r\n", buf_len);
  for (i = 0;i < strlen (AtCMD);i++) {//发送AT命令:AT+CIPSEND=20\r\n
  GSM_DATA_SEND (AtCMD[i]);
  }
  Delay(30);
  for (i = 0;i < buf_len;i++) {
  GSM_DATA_SEND (* (src_buf + i));
  }
  if(wait_atReturn("SEND OK\r\n",50)!=0){//等待module(SIM300)返回“SEND OK”
  LCDDisLable ("数据发送失败2");
  return -1;  
  }else{
  LCDDisLable ("数据发送成功");
  } 
  return 1;
}

经调试,问题就出在wait_atReturn("SEND OK\r\n",50)
调试时,发现(查看存储器)SIM300返回情况如下:
1.什么都不返回 
  存储器:“00 00 00 00 ...”
2.返回:“/r”  
  存储器:“0D 00 00 00 ...”
3.返回:“/r/nSEND OK/r/n+IPD20:01 30 30 31 35 55 55 55 55 55 55 55 55 ff 84 03 00 C0 00 B9”
  存储器“0D 0A 53 45 5E 44 20 4F 4B 0D 0A 2B 49 50 44 32 30 3A 01 30 30 31 35 55 55 55 55 55 55 55 55 ff 84 03 00 C0 00 B9”

请问各位大侠,为什么会出现这么多情况?是SIM300出问题了,还是我程序有bug?


------解决方案--------------------------------------------------------
。。。学习了。