本人通过以下步骤直接使用M23内置的TCP/IP协议栈来实现对目标服务的访问:
AT+CGDCONT=1,"IP","cmnet"<CR>
OK
AT%CGPCO=1,"PAP,,",1<CR>
OK
AT$NOSLEEP=1<CR>
OK
AT$DESTINFO="xxx.xxx.xxx.xxx",1,xx,0<CR>
$DESTINFO: "xxx.xxx.xxx.xxx", 1, xx
OK
ATD*97#<CR>
Wait Socket Open
OK
<== 输入 +++ 返回到 指令模式
OK
CONNECT
OK
ATH<CR>
OK
NO CARRIER
以上步骤完成一次完整的GPRS连接以及TCP呼叫的过程,
其中 AT$DESTINFO="xxx.xxx.xxx.xxx",1,xx,0 中的
xxx.xxx.xxx.xxx 表示具体的公网IP,xx 表示应用的
端口,但是当再次执行以上步骤时M23就复位了,复位后
再次执行以上步骤可以成功,但下一次又复位了,周而
复始。
但是当把 AT+CGDCONT=1,"IP","cmnet"<CR> 中的 cid
参数改为2后,即命令为AT+CGDCONT=2,"IP","cmnet"<CR>
时(以下步骤照旧),第一次可以GPRS连接成功,第二次
也还是失败,但是如果此时第二次把是把cid参数改为1后,
则第二次也可以成功,但是以后无论怎样,只要再次执行
命令 ATD*97#<CR> 后,M23复位,查看M23的AT指令文档后
发现M23支持的cid只有1和2,执行以下命令查看:
AT+CGDCONT=?<CR>
+CGDCONT:(1-2),"IP",,,(0,1),(0,1)
OK
现在的问题是再不重启模块的情况下如何多次连接GPRS并断开?
希望使用过M23的朋友可以发表一下自己的看法,非常感谢!
关键词:
使用
模块
指令
遇到
问题