毛驴 发表于 2014-7-24 18:10:35

关于arduino mega 2560连sim900a用TCP协议收发数据的问题

首先,我按照网上的示例用at+cipstart的指令连淘宝网什么的都能连上,发数据也是可以发送出去的,然后我连接我一个服务器(用的是公网ip),我发送了at+cipstart之后只返回了一个ok,没有返回connect ok,但是服务器端显示有连接请求,我用at+cipsend发送数据没显示 >,数据也发不出去。这是怎么回事。

毛驴 发表于 2014-7-24 18:13:27

下面是写的接收的代码,用串口调试工具也连不上。void setup() {
Serial.begin(9600);
Serial3.begin(9600);
}

void loop() {
delay(4000);
int i = 0;
String ip = "219.245.68.1";
String port = "9999";
String temp = "";
String tcpsend = "";
unsigned char datasend = {11, 31, 4, 91, 64, 225, 201, 75, 0, 50, 0};
unsigned char dataxy = {0};
unsigned char dataip = {0};
unsigned char datanoise = {0};
for (i = 0; i < 10; i++)
    datasend = datasend + datasend;
datasend = datasend ^ 169;
// for(i = 0;i < 11;i++)
// Serial.println(datasend);
// delay(2000);
Serial3.print("AT+CIPSTART=");
Serial3.print('"');
Serial3.print("TCP");
Serial3.print('"');
Serial3.print(',');
Serial3.print('"');
Serial3.print(ip);
Serial3.print('"');
Serial3.print(',');
Serial3.print(port);
Serial3.print("\r\n");
/* while(1)
   {
   while(!Serial3.available())
{
}
   while (Serial3.available() > 0)
   {
       temp +=char(Serial3.read());
       delay(2);
   }
   Serial.println(temp);
   temp = "";
   }*/
   for(i = 0;i < 11;i++)
   tcpsend +=datasend;
delay(5000);
Serial3.print("AT+CIPSEND=1\r\n");
delay(50);
Serial3.print(tcpsend);
//for (i = 0; i < 11; i++)
//    Serial3.print(datasend);
while (1)
{
    while (!Serial3.available())
    {
    }
    while (Serial3.available() > 0)
    {
      temp += char(Serial3.read());
      delay(2);
    }
   
    Serial.println(temp);
    temp = "";
   
}
}

毛驴 发表于 2014-7-24 20:57:23

。。自己解决了,原来是网络配置出错了

楼小主 发表于 2014-8-2 16:07:23

毛驴 发表于 2014-7-24 18:13 static/image/common/back.gif
下面是写的接收的代码,用串口调试工具也连不上。void setup() {
Serial.begin(9600);
Serial3.begin ...

你好,我想问下为什么用Serial3去通信
页: [1]
查看完整版本: 关于arduino mega 2560连sim900a用TCP协议收发数据的问题