野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11801|回复: 14

SIM900A TCP数据发送失败

[复制链接]
发表于 2015-5-18 15:26:16 | 显示全部楼层 |阅读模式
可以连接上TCP服务器,但数据一直发送不成功。情况如下:
CONNECT OK
AT+CIPSEND

> 8888888888888888
26
CLOSED

ERROR



不知道Ctrl+Z/0x1A(26)到底是什么意思。
回复

使用道具 举报

发表于 2015-5-18 15:56:39 | 显示全部楼层
建立GPRS通讯,要先发送 4 个指令:
  AT+CGCLASS="B"
  AT+CGDCONT=1,"IP","CMNET"
  AT+CGATT=1
  AT+CIPCSGP=1,"CMNET"

用于设置移动台类别、连接方式、接入点和附着 GPRS

然后发送:
AT+CLPORT="TCP","2000",设置本地 TCP 连接端口为 2000,
然后发送:
AT+CIPSTART="TCP","xxx.xxx.xxx.xxx","8086",建立 TCP 连接,连接到 IP:xxx.xxx.xxx.xxx(要通讯的IP地址),
连接端口为:8086。
等待 TCP 连接成功建立,模块返回:CONNECT OK

然后就可以进行TCP数据发送了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-18 16:06:05 | 显示全部楼层
本帖最后由 ck1994 于 2015-5-18 16:10 编辑
flyleaf 发表于 2015-5-18 15:56
建立GPRS通讯,要先发送 4 个指令:
  AT+CGCLASS="B"
  AT+CGDCONT=1,"IP","CMNET"

上面我已说明: 已经 CONNECT OK
我的问题是,不知道怎么发送数据?
回复 支持 反对

使用道具 举报

发表于 2015-5-18 16:26:56 | 显示全部楼层
AT+CIPSEND命令,等待到“>”后,
发送数据,加一段延时
然后发送0x1a(这就是你说的ctrl+z)表示数据发送完毕
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-18 16:29:40 | 显示全部楼层
flyleaf 发表于 2015-5-18 16:26
AT+CIPSEND命令,等待到“>”后,
发送数据,加一段延时
然后发送0x1a(这就是你说的ctrl+z)表示数据发 ...

> 8888888888888888
26
CLOSED

ERROR
我上面这样不对吗?0x1A应该就是发生26吧。
回复 支持 反对

使用道具 举报

发表于 2015-5-18 16:40:43 | 显示全部楼层
ck1994 发表于 2015-5-18 16:29
> 8888888888888888
26
CLOSED

这个0x1a你要用hex格式发送,不要用ASCII码发送
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-18 16:44:08 | 显示全部楼层
flyleaf 发表于 2015-5-18 16:40
这个0x1a你要用hex格式发送,不要用ASCII码发送

能给个示范吗?就用野火串口GSM调试助手的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-18 16:49:59 | 显示全部楼层
flyleaf 发表于 2015-5-18 16:40
这个0x1a你要用hex格式发送,不要用ASCII码发送

我这样
CONNECT OK
AT+CIPSEND

> 8888888888888888
1a

CLOSED

ERROR
还是不行
回复 支持 反对

使用道具 举报

发表于 2015-5-18 16:51:49 | 显示全部楼层
ck1994 发表于 2015-5-18 16:49
我这样
CONNECT OK
AT+CIPSEND

就是这样,最后准备发送0x1A之前,把串口调试助手的十六进制发送勾上,再在输入框输入1a,然后发送:

UJKY[DE`_(SZJ5~8RZ[9Z36.png
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-18 16:57:50 | 显示全部楼层
flyleaf 发表于 2015-5-18 16:51
就是这样,最后准备发送0x1A之前,把串口调试助手的十六进制发送勾上,再在输入框输入1a,然后发送:

...

可以了,多谢。
回复 支持 反对

使用道具 举报

发表于 2015-5-18 17:53:49 | 显示全部楼层
ck1994 发表于 2015-5-18 16:57
可以了,多谢。

互相学习,我也没试过真正做这样的数据收发实验,只是大概知道流程,你算是帮我验证了
回复 支持 反对

使用道具 举报

发表于 2015-5-25 11:58:12 | 显示全部楼层
ck1994 发表于 2015-5-18 16:57
可以了,多谢。

大神,能把你的程序发一份给我吗?我的总是数据发不出去,到AT+CIPSTART="TCP","192.168.191.3",8088 指令就出错了,我邮箱769251825@qq.com,感激不尽
回复 支持 反对

使用道具 举报

发表于 2015-6-18 22:47:00 | 显示全部楼层
我的也出问题了,能否发一份给我,最近在调试。我邮箱1165852429@qq.com,感激不尽
回复 支持 反对

使用道具 举报

发表于 2015-11-11 12:44:49 | 显示全部楼层
最近在调GSM模块,还没有头绪。。。哎,大神在哪里
回复 支持 反对

使用道具 举报

发表于 2015-12-18 09:59:04 | 显示全部楼层
Tacey 发表于 2015-5-25 11:58
大神,能把你的程序发一份给我吗?我的总是数据发不出去,到AT+CIPSTART="TCP","192.168.191.3",8088 指 ...

首先,GPRS连接的对方,即AT+CIPSTART="TCP","192.168.191.3",8088 ,这里,必须保证192.168.191.3是公网地址!
192.168.191.3显然是局域网IP,当然不行的。现在想要有公网地址不容易的,就算家里报宽带,还有公司网络,多数都不是公网IP!!都是有中转的。
可以百度搜IP地址,然后再登陆路由器查看IP地址,如果不一样的就是中转的,中转的地址,无论你设置百度搜的还是输路由器的,貌似都不行。
解决办法有二:第一,公司级别有钱的,在电信之类的办理独立IP的宽带服务。第二,下载花生壳(这一类的软件),注册使用IP中转,这种中转是固定的,把自己机器的某端口映射为外网分配的某IP的某端口,用GPRS通讯的时候设置IP和端口为映射的外网IP和端口就可以把报文发送到你本机的端口上来。当然,花生壳客户端软件必须开启着,才能维持这种映射。花生壳好像可以免费注册使用1个IP(IP地址是它分配给你的,不能自己设,其原理就是它把现在空闲的域名IP哪来给你映射用)。
GPRS通讯失败多数是因为这个问题~
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-30 06:45 , Processed in 0.037008 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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