怎样用单片机C语言控制GPRS模块发AT指令

AT指令我知道,手机模块与单片机分别与电脑连接时均通信正常,但是单片机连手机模块后,AT指令怎么发送呢?直接发好像手机模块又识别不了,而且貌似首次发AT时必须先回车再发送... AT指令我知道,手机模块与单片机分别与电脑连接时均通信正常,但是单片机连手机模块后,AT指令怎么发送呢?直接发好像手机模块又识别不了,而且貌似首次发AT时必须先回车再发送才能返回OK,这个回车符要怎么样写在单片机里才能被手机模块识别呢?最好能有源程序......
就是单片机发送“AT”后手机模块返回"OK",单片机接收到这个后再发出一个使手机模块发送短信的指令(知道是AT+CMGS但是具体怎么写在C程序里边)希望程序全!谢谢大家!
展开
 我来答
lchl6666
推荐于2018-02-12
知道答主
回答量:11
采纳率:0%
帮助的人:1.5万
展开全部
我也在玩gprs,这个问题我也碰到,现已解决,
做法是:
把命令字符对应的ASC||值依次向串口发送
如at+cmgf=1<CR>这个命令,就应向串口依次发送“at+cmgf=1”这个字符串中每个字符对应的ASC||值的16进制数,<CR>是回车键,对应ASC||值是13,十六进制是0D

须要注意的是,每发一条指令后要有一定的延时。
如不明白
tattackor
推荐于2016-04-28 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:878万
展开全部
1、方法:
把命令字符对应的ASC||值依次向串口发送
如at+cmgf=1<CR>这个命令,就应向串口依次发送“at+cmgf=1”这个字符串中每个字符对应的ASC||值的16进制数,<CR>是回车键,对应ASC||值是13,十六进制是0D。每发一条指令后要有一定的延时。
2、需要注意的是:
AT命令都是有固定格式的字符串;
通过模块连接服务器时,你需要一张注册过GPRS功能的SIM卡;
不论是移动还是联通,GPRS方式都是动态IP,且在一定时间没有数据传送的情况下连接会断开,所以要维持发送心跳包;
注意模块的工作电压;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
鹏飞19910214
2016-12-04
知道答主
回答量:2
采纳率:0%
帮助的人:2739
展开全部
AT指令不就是一组格式化了的字符串吗?这个很简单,就是根据时序图来,开中断总允许,关中断之类的,你手上应该有一个手册吧?根据手册的提示来,然后写一个ASCII码对应的映射关系数组诸如字母表char table Aphernumeric [128]={'@','A'.....'del'}以及对应的十六进制表char AskIIHex[128]={'00','01'....'127'},使得两张表建立映射关系(用C++则直接用HashMap了),然后可以得到每个指令码对应的数组下标,根据下标找到十六进制码,将这串十六字符串用strcat连接起来,并通过atohex将字符串转换成十六进制,然后写入Buffer就Ok了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
启岩
2009-07-25 · TA获得超过1851个赞
知道小有建树答主
回答量:809
采纳率:0%
帮助的人:638万
展开全部
网上搜一下AT指令集。发送的时候跟串口发数是一样的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式