织梦CMS - 轻松建站从此开始!

罗索

当前位置: 主页>老古董>『SMS』>

基于SIM300和S3C2410的短信收发问题-3

jackyhwei 发布于 2010-10-30 12:34 点击:次 
对AT指令组织应用的小小认识,最关键的地方其实不在这个指令,而是对串口的操作,串口真的是挺伟大的东西。。。我认为。。。
TAG:

接着上篇的AT指令,下面列一张我整理的表格:

执行指令

描述

反馈

ATD

拨号命令。这个命令用来设置通话、数据或传真呼叫。

如果没有拨号音,NO DIALTONE;

如果线路忙,BUSY;

如果连接无法被建立,NO CARRIER;

如果连接成功,OK+拨通的手机号码。

ATH

挂机命令。

如果初始是ON状态,成功挂机后返回OK.

ATA

电话

如果连接成功,OK;

如果无连接,NO CARRIER。

AT+CSMS=

选择消息服务。=0使用GSM;=128表示选择SMS PDU模式。

返回+CSMS:0(或者1)OK

AT+CMGF=

设置信息格式。=0代表PDU模式;=1代表text模式。

返回+CMGF:0(或者1)OK

AT+CMGS

发送信息。(和CMGF配套使用)

如果+CMGF=1且发送成功,返回+CMGS:<mr> OK;

如果+CMGF=0且发送成功,返回+CMGS:<mr> OK;(两者返回mr不一样);

如果出错,返回+CMS ERROR:<err>

AT+CMEE=1

报告移动设备错误

返回+CMEE:(list of supported<n>s)OK

AT+CMGL=<stat>

从指定的存储区中罗列信息。其中<stat>根据mode不同执行的参数也不一样。

返回+CMGL:list of supported<stat>sOK

 

AT+CNMI=[<mode>

[,<mt>[,<bm>

[,<ds>[,<bfr>]]]

]]

新信息指示。这个命令选择如何从网络上接收短信息。前面各项参数可以对照表查,这里不一一罗列了。

如果设置正确,返回OK;

如果出错,返回+CMS ERROR: <err>。

AT+CMGR

读短信。信息从+CPMS命令设定的存储器读取。

返回OK。

AT+IPR=<rate>

设置波特率,可选为300,1200,2400,4800,9600,115200等。

返回OK。

AT+CMGS

发送信息。(和CMGF配套使用)

如果+CMGF=1且发送成功,返回+CMGS:<mr> OK;

如果+CMGF=0且发送成功,返回+CMGS:<mr> OK;(两者返回mr不一样);

如果出错,返回+CMS ERROR:<err>

AT+CMGD=<i

ndex>

删除短信息。

如果成功从指定地点删除短信,返回OK;

如果出错,返回+CMS ERROR <err>。

AT+CSCA=

<sca>[,<tosca>]

设置短信服务中心地址。一般发送短信的时候需要设置一下。<sca>可以认为是需要连接的对方的手机号码。

返回值也简单,如果成功就返回OK。

有几点要说明一下:

1.ATD指令可有多种书写方式,要看你选择要连接的号码的性质,SIMCOM公司给出的AT命令集文档分了以下几种(我没翻译,想对比一下):

ATD[<n>][<mgsm][;] Mobile originated call to dialable number

ATD><mem><n>[<I>][<G>][;] Originate call to phone number in memory <mem>

ATD><n>[<I>][<G>][;] Originate call to phone number in current memory

ATD><str>[I][G][;] Originate call to phone number in memory which corresponding alphanum.

 

2.<err>使用的同样的一组数字,代表不同的意思,比如13表示SIM failure;14表示SIM busy。

 

3.这里我罗列的只是一些关于短信的AT指令,比较少还有我认为比较重要,当然AT指令集的作用远远不只这些,要知道它之所以会出现是要满足网络功能的,在SIMCOM的《AT指令集》中对关于TCP/IP、猫的设置讲的很详细,希望有条件的话可以都尝试一下。。。

 

恩,暂时能想到的就这些了。。。

接下来会针对收发短信描述下AT指令具体是怎么使用的。。。不急!

 

因为学习的是简单的AT指令,我想只从打电话和收发短信的方面来讲下AT指令的使用:

前提1、这是在所有的接口都打通的情况下,其中包括串口的初始化以及GPRS模块都已经驱动完成了。

前提2、要明确项目中是ARM传送指令给GPRS模块来执行,这里的指令传送是通过串口的,所以,要输入指令执行就是对串口进行写操作,写的内容就是“AT指令”。

前提3、基于前者,现已写好了一个对串口写指令的函数tty_writecmd(char *buf,int nbytes),我们可以直接来操作了。

前提4、我只描述下用这些指令的组合过程。

 

一.设置(修改)波特率

作用:通过对ARM的控制间接操控GPRS模块使它能够直接修改波特率,当然也可以在minicom的时候对波特率进行修改。

tty_writecmd("at", strlen("at "));

tty_writecmd("at+ipr=", strlen("at+ipr="));

tty_writecmd(baud, strlen(baud) ); //band宏定义为B115200。

 

二.打电话

作用:通过对ARM的控制间接操控GPRS模块使之能对外打电话,只限手机。

tty_writecmd("at", strlen("at"));

tty_write("atd", strlen("atd"));

tty_write(number, num);  //number就是电话号码。

tty_write(";\r", strlen(";\r")); //之所以加这么一句,是因为串口数据单个输入输出都是“10”或“13”结尾的。

 

三.接电话

作用:发现GPRS模块有新电话进来时候通过对ARM的控制间接操控GPRS模块使之能接电话。

tty_writecmd("at", strlen("at"));

tty_writecmd("ata", strlen("ata"));

 

四.挂断电话

作用:发现GPRS模块接电话或者有新电话进来时通过对ARM的控制间接操控GPRS模块使之能挂断电话。

tty_writecmd("at", strlen("at"));

tty_writecmd("ath", strlen("ath"));

 

五.发短信

作用:通过对ARM的控制间接操控GPRS模块使之能够发送短信给远端手机。

tty_writecmd("at", strlen("at"));

tty_writecmd("at+cmgf=1", strlen("at+cmgf=1"));

tty_write("at+cmgs=", strlen("at+cmgs="));

tty_writecmd ("\"", strlen("\""));

tty_writecmd (number, strlen(number));

tty_writecmd ("\"", strlen("\""));

tty_writecmd (";\r", strlen(";\r"));

 

六.收短信

作用:远端手机发送一条短信给GPRS模块,GPRS模块能够接受这条短信并且能够读取这条短信。

tty_writecmd("AT+CNMI=2,2,0,0,0", strlen( "AT+CNMI=2,2,0,0,0"));

tty_writecmd("AT+CMEE=1", strlen("AT+CMEE=1"));

tty_writecmd("AT+CSMS=0", strlen("AT+CSMS=0"));

tty_writecmd("AT+CMGF=1", strlen("AT+CMGF=1"));    

tty_writecmd("AT+CMGL=0", strlen("AT+CMGL=1"));

ty_writecmd("AT+CMGR=1", strlen("AT+CMGR=1"));

对于这最后一句AT+CMGR=1,表示从预先定义的存储区中读取短信,但是仅凭这么一条指令,而不正儿八经对串口读,还是无法在PC上显示出刚刚发送的信息的。

以上就是对AT指令组织应用的小小认识,最关键的地方其实不在这个指令,而是对串口的操作,串口真的是挺伟大的东西。。。我认为。。。

(hl3196)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201010/10380.html]
本文出处:hi.chinaunix.net 作者:hl3196
顶一下
(5)
100%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容