发布网友 发布时间:2022-04-22 23:01
共4个回答
热心网友 时间:2023-07-07 07:52
我也在玩gprs,这个问题我也碰到,现已解决,
做法是:
把命令字符对应的ASC||值依次向串口发送
如at+cmgf=1<CR>这个命令,就应向串口依次发送“at+cmgf=1”这个字符串中每个字符对应的ASC||值的16进制数,<CR>是回车键,对应ASC||值是13,十六进制是0D
须要注意的是,每发一条指令后要有一定的延时。
如不明白
热心网友 时间:2023-07-07 07:53
1、方法:
把命令字符对应的ASC||值依次向串口发送
如at+cmgf=1<CR>这个命令,就应向串口依次发送“at+cmgf=1”这个字符串中每个字符对应的ASC||值的16进制数,<CR>是回车键,对应ASC||值是13,十六进制是0D。每发一条指令后要有一定的延时。
2、需要注意的是:
AT命令都是有固定格式的字符串;
通过模块连接服务器时,你需要一张注册过GPRS功能的SIM卡;
不论是移动还是联通,GPRS方式都是动态IP,且在一定时间没有数据传送的情况下连接会断开,所以要维持发送心跳包;
注意模块的工作电压;
热心网友 时间:2023-07-07 07:53
AT指令不就是一组格式化了的字符串吗?这个很简单,就是根据时序图来,开中断总允许,关中断之类的,你手上应该有一个手册吧?根据手册的提示来,然后写一个ASCII码对应的映射关系数组诸如字母表char table Aphernumeric [128]={'@','A'.....'del'}以及对应的十六进制表char AskIIHex[128]={'00','01'....'127'},使得两张表建立映射关系(用C++则直接用HashMap了),然后可以得到每个指令码对应的数组下标,根据下标找到十六进制码,将这串十六字符串用strcat连接起来,并通过atohex将字符串转换成十六进制,然后写入Buffer就Ok了。
热心网友 时间:2023-07-07 07:54
网上搜一下AT指令集。发送的时候跟串口发数是一样的。