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

SIM300 IP包发送失败,该怎么解决

热度:525   发布时间:2016-04-28 09:34:58.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?

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