本人通过以下步骤直接使用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的朋友可以发表一下自己的看法,非常感谢!
有奖活动 | |
---|---|
“我踩过的那些坑”主题活动——第002期 | |
【EEPW电子工程师创研计划】技术变现通道已开启~ | |
发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
【EEPW在线】E起听工程师的声音! | |
高校联络员开始招募啦!有惊喜!! | |
【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
送您一块开发板,2025年“我要开发板活动”又开始了! | |
打赏了!打赏了!打赏了! |