本人通过以下步骤直接使用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的朋友可以发表一下自己的看法,非常感谢!
打赏帖 | |
---|---|
【Zephyr】MCXN947 Zephyr 开发入门适配shell被打赏20分 | |
【我要开发板】6.联合MATLAB记录数据被打赏50分 | |
【瑞萨RA2E1开发板】:使用ADC功能实现位移传感器采集方案被打赏20分 | |
【nRF7002DK】基于sht30的温湿度计被打赏20分 | |
【nRF7002DK】日志打印被打赏20分 | |
rtthread硬件加密-5hash加密分析被打赏10分 | |
【STM32F769】SD卡驱动及其调试经验分享被打赏32分 | |
【分享开发笔记,赚取电动螺丝刀】使用看门狗降低系统隐藏bug触发概率被打赏18分 | |
【STM32F769】调试SD驱动,由于其时钟配置不对引起的错误以及排查记录被打赏35分 | |
【分享开发笔记,赚取电动螺丝刀】MCUXpressoConfigTools配置外设时的异常解决被打赏24分 |