用AT指令集玩转Motorola l6

 

一年前花了50元从朋友那里买了一台二手的motorola L6,虽然别人已经用了几年了,但外观和手感都很好,在这一年多的时间内,我摔过它,拆过它,刷过它(俗称刷机), 到现在都还很好,不愧为品牌机。

   最近正在学ARM, 即将做基于ARM平台的GPRS方面应用。在网上查了许多资料,得知ARMGPRS模块之间的通信是通过串口来实现的,接口是AT指令,就像linux中的shell命令一样。呵呵,说了这么多,大家也许会问,这与L6有什么关系呢?

谈到AT指令集,相信大多数人应该很陌生,我刚开始也是,通过“孤狗”搜索了一下,得知AT指令应用很广。例如,大家也许用过手机电脑终端软件,如motorlaMPT工具,其实它和手机通信的大多是通过AT命令实现的。下图为L6MPT界面,功能还是很强大的。

 

谈到这里,我突然想到以前用过一个什么软件,好像有AT这个模式。查看了一下motorla工具,原来是P2Ktools这个工具。这个工具不知道有朋友用过没有,它可以修改手机的设置和读取手机系统内容,举个例子吧,它可以把手机按键顺序给改变,如原来按”1”键显示1,通过它改后,可以按“1键显示9,强大吧!不过它还有个模式,AT模式,当时不知道怎么用,现在知道呢,该开工呢…….

 

在做之前,先了解一下一些名词吧

名词术语

       TETerminal Equipment 终端设备

    TATerminal Adapter 终端适配器

    DCEData Circuit termination Equipment数据电路终按设备

    DTEData Terminal Equipment 数据终端设备

    MEMobile Equipment 移动设备

    MSMobile Station移动台

 

 第一步,把手机线和电脑连接好,会提示你安装驱动,安装好的驱动如下图所示

  

第二步,打开P2Ktools工具,如下图所示


         第三步,选择AT模式。

                   

         第四步,切换到终端页面,

 

下面就开始我们的AT指令学习之旅吧(我们以读取SIM卡内的一条短信为目的)

 

  首先直接点运行。在AT指令中,每条指令都有反回值。

          

接着输入“AT+CMGF=1点击“运行” 设置消息内容为什么文本模式

           

接着输入“AT+CSCS=”UCS@”,点击“运行”设置TE字符格式为Ucs2(unicode编码),这样做的目的是我们要读取中文,如果设置“GSM”格式,则读不出中文。

            

接着输入”AT+CMGL=”REC READ””,点击“运行”读取所有已经接收且已读的短信消息

           

 

读出的来内容都是unicode编程,于是在网上找了一下转换工具

我把其中的一条短信的unicode编码按格式输入,如下图所示

   

转换后的内容如下图

   

有兴趣朋友可以自己试试,学习一下AT命令,

  下面为短信常用AT指令

  1. 测试命令(Test Command)

    AT指令后面加上"=?"即构成测试命令。例如"AT+CSCS=?"会列举出所有支持的字符集。

    2. 读取命令(Read Command)

    AT指令后面加上"?"即构成读取命令。例如"AT+CSCS?"会列举出当前设置。

    3. 执行命令(Execute Command

    一般而言在AT指令后加上"="及命令参数即可。有些命令例如AT+CMGR命令没有参数,直接就可以执行。

    AT 测试连接是否正确,正确返回OK

    ATE0 关闭回显。程序初始化AT部分首先关闭回显。

    ATE1 打开回显。使用超级终端测试命令时打开。

    ATZ 在超级终端中输入可见。

    AT+CGMI 得到厂商信息

    AT+CGMR 得到版本号

    AT+CGSN 得到序列号(IMEI)

    AT+CIMI 得到手机IMSI号码

    AT+CSCS 获取、设置当前字符集。可设置为GSMUCS2

    AT+CBC 获取电量

    AT+CCLK 获取设置手机时钟

    AT+CNUM 机身号码。分为线路一和线路二

    AT+CSQ 当前信号

    AT+COPS 网络营运商

    AT+CSCA 短信中心号码

    AT+CPMS 选择短信储存地点。可选择MESIM卡)和MT(机身)

    AT+CMGL 列出指定状态的短信息的PDU代码

    AT+CMGR 列出指定序号的短信息PDU代码

    AT+CMGS 发送短信

    AT+CMGD 删除指定的短信

    AT+CMGF 短信格式。分为Text模式和PDU模式

    AT+CNMI 设置新短消息通知电脑端

    AT+CSCA 短信中心

    AT+IPR? 显示串口波特率

    AT+IPR=19200更改串口波特率为19200

    ATD打电话

    ATA接电话

    ATH挂电话

    at+cnmi=2,1,0,0,0 //短信存入SIM

    at+cnmi=2,2,0,0,0 //短信直接串口输出,不存SIM

    "AT+CNMI"指令语法为

    AT+CNMI=[[,[,[,[,]]]]]

    mode - 通知方式:

    0  不通知TE

    1  只在数据线空闲的情况下,通知TE;否则不通知TE

    2  通知TE。在数据线被占用的情况下,先缓冲起来,待数据线空闲,再行通知。

    3  通知TE。在数据线被占用的情况下,通知混合在数据中一起传输。

    mt - 消息储存或直接转发到TE

    0  储存到默认的内存位置(包括class 3)

    1  储存到默认的内存位置,并且向TE发出通知(包括class 3)

    2  对于class 2,储存到SIM卡,并且向TE发出通知;对于其它class,直接将消息转发到 TE

    3  对于class 3,直接将消息转发到 TE;对于其它class,同mt=1

    bm, ds, bfr的含义,请参考相关标准文档。一般不需要去关心它们。

    在程序中具体实现时,使用mode=2, mt=1,比较简单。对所有类型的短消息,只要在收到ME送来的"+CMTI"通知后,用"AT+CMGR"指令读取消息内容就行了。

 

    AT&W 保存设置

 

你可能感兴趣的:(command,Class,手机,Terminal,终端,Motorola)