极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10491|回复: 3

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

[复制链接]
发表于 2014-7-24 18:10:35 | 显示全部楼层 |阅读模式
首先,我按照网上的示例用at+cipstart的指令连淘宝网什么的都能连上,发数据也是可以发送出去的,然后我连接我一个服务器(用的是公网ip),我发送了at+cipstart之后只返回了一个ok,没有返回connect ok,但是服务器端显示有连接请求,我用at+cipsend发送数据没显示 >,数据也发不出去。这是怎么回事。
回复

使用道具 举报

 楼主| 发表于 2014-7-24 18:13:27 | 显示全部楼层
下面是写的接收的代码,用串口调试工具也连不上。
  1. void setup() {
  2.   Serial.begin(9600);
  3.   Serial3.begin(9600);
  4. }

  5. void loop() {
  6.   delay(4000);
  7.   int i = 0;
  8.   String ip = "219.245.68.1";
  9.   String port = "9999";
  10.   String temp = "";
  11.   String tcpsend = "";
  12.   unsigned char datasend[11] = {11, 31, 4, 91, 64, 225, 201, 75, 0, 50, 0};
  13.   unsigned char dataxy[2] = {0};
  14.   unsigned char dataip[8] = {0};
  15.   unsigned char datanoise[4] = {0};
  16.   for (i = 0; i < 10; i++)
  17.     datasend[10] = datasend[i] + datasend[10];
  18.   datasend[10] = datasend[10] ^ 169;
  19.   // for(i = 0;i < 11;i++)
  20.   // Serial.println(datasend[i]);
  21.   // delay(2000);
  22.   Serial3.print("AT+CIPSTART=");
  23.   Serial3.print('"');
  24.   Serial3.print("TCP");
  25.   Serial3.print('"');
  26.   Serial3.print(',');
  27.   Serial3.print('"');
  28.   Serial3.print(ip);
  29.   Serial3.print('"');
  30.   Serial3.print(',');
  31.   Serial3.print(port);
  32.   Serial3.print("\r\n");
  33.   /* while(1)
  34.    {
  35.    while(!Serial3.available())
  36.   {
  37.   }
  38.    while (Serial3.available() > 0)
  39.      {
  40.        temp +=char(Serial3.read());
  41.        delay(2);
  42.      }
  43.      Serial.println(temp);
  44.      temp = "";
  45.    }*/
  46.    for(i = 0;i < 11;i++)
  47.    tcpsend +=datasend[i];
  48. delay(5000);
  49.   Serial3.print("AT+CIPSEND=1\r\n");
  50.   delay(50);
  51.   Serial3.print(tcpsend);
  52. //  for (i = 0; i < 11; i++)
  53. //    Serial3.print(datasend[i]);
  54.   while (1)
  55.   {
  56.     while (!Serial3.available())
  57.     {
  58.     }
  59.     while (Serial3.available() > 0)
  60.     {
  61.       temp += char(Serial3.read());
  62.       delay(2);
  63.     }
  64.    
  65.     Serial.println(temp);
  66.     temp = "";
  67.    
  68.   }
  69. }
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-7-24 20:57:23 | 显示全部楼层
。。自己解决了,原来是网络配置出错了
回复 支持 反对

使用道具 举报

发表于 2014-8-2 16:07:23 | 显示全部楼层
毛驴 发表于 2014-7-24 18:13
下面是写的接收的代码,用串口调试工具也连不上。void setup() {
  Serial.begin(9600);
  Serial3.begin ...

你好,我想问下为什么用Serial3去通信
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-9 23:05 , Processed in 0.035642 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表