上次发了个帖子关于GPRS模块用LM317做稳压电源的问题(想自己搭建开发平台)问题已经解决,感谢大虾们的指点。现在平台已经搭起来了(语音部分没接)。测试发现能正常发送和接受短信。但是不能打电话。我用的是SIM300的模块。打电话的指令是这样发的:ATD15835421234 可是返回ERROR 打固定电话也不行,是不是指令不正确。我换 ATD"15835421234"
ATD "15835421234" ATD"15835421234"; ATD "15835421234"; 都不行返回的是+CME ERROR: 27我查了错误代码表意思应该是无效字符。这是怎么回事。是不是是我没接语音部分的关系。
还有一个最大的疑问就是上网的问题。AT指令的资料上面只说明的每条指令的用法并没说明实现上网功能的具体步骤。我在网上搜了一下后试了试。现在把问题描述一下。
打开模块返回call ready后输入
AT+CGDCONT=1,"IP","CMNET"
OK
AT+CGATT=1
OK
(因为我发送AT+CGACT=1,1就会死机,网上也有人提出这种问题说可以直接跳过,所以就没写)
AT+CIPSTART="TCP","220.181.6.18","80"
OK
CONNECT OK
AT+CIPSEND
>123
SEND OK
不知道是不是这样就说明已经连接成功并成功发送数据了。但是没返回任何数据,资料上说服务器上有数据会自动接收,可是没有上面的IP和端口都是百度的(ping百度查的)这算一个疑问
还有问题就是我没创建移动场景就是上面两条指令没写,直接发AT+CIPSTART也能成功和上面的一样这是怎么回事啊(我是在模块重启之后才重新写的)。还有就是拨号,上网要不要拨号啊就是ATD*99***1#指令。我看网上有人这么写的,我现在是彻底糊涂了。上网是不是分好几种啊,一种是用AT指令上网一种是用拨号指令上网啊。到底上网分几种啊,具体的步骤又是那些,谁能告诉我啊!!!
还有就是我想把自己的电脑作为SERVER让模块连接可是要怎么做呢,要不要装什么软件,怎样设置可侦听端口
还有问题就是我没创建移动场景就是上面两条指令没写,直接发AT+CIPSTART也能成功和上面的一样这是怎么回事啊(我是在模块重启之后才重新写的)。
AT+CGDCONT指令参数默认为AT+CGDCONT=1,"IP","CMNET
AT+CGATT,模块可能是自动附着网络的,所以不需要强行附着.连接前查询一下附着状态就可以了。
一种是用AT指令上网一种是用拨号指令上网啊。
内嵌协议栈的可以使用AT命令连接网络,如果没有内部协议栈,就得用拨号的方式了。
还有就是我想把自己的电脑作为SERVER让模块连接可是要怎么做呢,要不要装什么软件,怎样设置可侦听端口
在路由器上添加一个针对本机的端口映射,在本机上打开一个SERVER(网上有得下),将模块的IP地址和端口设置为本机的外网地址和刚刚映射的端口,就可以建立连接了。
的确是这样的,我擦。其他的都试了就那条没试,晕倒。
还有其他问题谁能解惑一下,刚又听说AT+CIPSTART只是和SERVER建立一个连接然后互传数据,要是想通过GPRS联上互联网不能用AT指令要用其它的办法,是不是这样的?那具体方法又是什么谁能解惑下。
要是在这里不方便的话加我QQ也行359946867加的时候注明一下。问题解决一样给分。
如果通过GPRS联互联网,就是拿模块当MODEM用了,得使用拨号的方式上网,使用ATD拨号.
你还是加我QQ吧,我还有好多问题不是太清楚。问题要是解决了分立刻送上
具体的方法是什么。
怎么拨号,拨号完成后又该怎么访问。。。。。。。。。。
描述 该指令用于发起语音、数据和传真呼叫。
格式: ATD;
ATD>;
ATD>;
示例:
AT+CPBS="SM" 选择SIM卡电话本为当前使用的电话本
ATD13024540756; 在SIM卡电话本中查找该号码并呼叫
AT+CPBS="SM"
ATD>2;
OK
选择SIM卡电话本为当前使用的电话本
拨打当前电话本中的第2个电话号码
ATD>SM1; 拨打SIM卡电话本中的第1个电话号码
参数
:电话本
“SM”:SIM卡中电话本。
“LD”:电话本中最近拨出电话。
“MC”:未接电话电话本。
“ME”:本机电话本。
:电话本的第n项。
:被叫方的号码,如*99#等
GPRS建链流程:
AT+ZPPPOPEN //建立GPRS链接
+ZPPPOPEN:CONNECTED //建立GPRS成功
OK
AT+ZIPSETUP=1,88.60.135.42,端口号 //建立TCP链接
+ZIPSETUP: CONNECTED OK //建立TCP成功
其实AT+CIPSTART或者AT+ZIPSTART,都是使用模块内部的tcp/ip协议栈建立socket连接。
(模块作为tcp client,而对方(一般是台电脑)作为tcp server.)
模块返回CONNECT OK或者CONNECTED OK,就表示socket连接已经建立成功了。
就可以进行数据收发了。比如用AT+ZIPSEND发送数据,对方的tcp server就可以接收到数据。
一般不需要通过atd拨号命令去拨号,通过atd拨号命令的方式从技术上也可以做,但是这种方式就不适用模块内部协议栈了,那你必须自己去实现PPP协议以及TCP/IP协议了,相对来说,开发工作量就太大了。
您可以加入GPRS/CDMA模块技术交流QQ群:112931489