AT命令详解

来源:互联网 发布:java截屏代码 编辑:程序博客网 时间:2024/04/28 03:47

首先说下AT命令执行格式,和返回字符格式是怎么样的?每条命令后面需要加回车符,返回的字符模式是回车符+换行符 +“回复内容”+回车符+换行符

就执行AT,测试模块是否能正常工作

输入命令 : 41 54 0D
返回字符 : 0D 0A 4F 4B 0D 0A

一般新卡收到时候可能需要设置一些配置,按照配置先后顺序来解释一些命令。

1 AT+CSCS 选择TE字符集

AT+CSCS = <chset> 设置模块使用的字符集<chset>.TA能够和ME的字符集之间正确的转换字符

<chset> :“GSM” GSM 7位缺省字符集(3GPP TS 23.038)

"UCS2" 16位通用8字节倍数编码字符集;UCS2字符串转换是从0000到FFFF的16位进制数,例如“004100620063”

表示三个16位字符,十进制值分别是65,98,99

text 模式下 一般选择"GSM", PDU模式下:"UCS2"

执行 :AT+CSCS = "GSM"

2 AT + CNMI 新消息指示

命令格式 AT+CNMI=<mode>,<mt>,<bm>,<ds>,<bfr>
<mode> 控制主动提供结果码的过程只支持<mode>=2, 对于值 013 只是接受并返回 OK 其执行的过程与值 2一样
0 结果代码缓冲区在 TA 如果 TA 的缓冲区满则提示信息存储在其他地方或者删除最旧的提示信息以新的代替
1 当 TA-TE 链接保留时拒绝新消息结果码否则直接将其传送给 TE
2 当 TA-TE 链接保留时结果代码缓存在 TA 预约后发送给 TE 否则直接将其传送给 TE
3 否则直接将结果码传送给 TE 当 TA 处于在线数据模式时特殊波段内的 TA-TE 链接用来嵌入结果码和数据
<mt> 为 SMS-DELIVERs 设置结果码提示发送路径缺省值为 0
0 SMS-DELIVER 提示不需要发送路径
1 SMS-DELIVER 由+CMTI : SM, <index> 来提示发送路径
2 SMS-DELIVER 除了 class 2 消息由 2 种结果码来发送
+CMT : [<alpha>,] <length>
<pdu> (PDU 方式)
+CMT : <oa>,[<alpha>,] <scts> [,<tooa>, <fo>, <pid>, <dcs>, <sca>, <tosca>,
<length>]
<data> TEXT 方式
3class 3 的 SMS-DELIVER 消息采用<mt>=2 中的结果码来发送其他类型的消息用<mt>=1 的格式
<bm> 设置存储接收的广播消息的规则
0 不向 TE 发送广播消息提示信息广播消息已存储缺省值
1 广播消息已存储并以格式+CBMI:BMl, <index>向用户显示存储位置
2 新的广播消息采用 2 种格式直接发送给 TE
+CBM : <length>
<pdu> PDU 方式
+CBM :<sn>,<mid>, <dcs>,<page>,<pages>
<data> Text 方式
3 对 class 3 的广播消息采用<bm>=2 的操作其他类型的消息采用<bm>=1 的操作
<ds> 用于 SMS_STATUS_REPORT, 缺省值为 0
0 不发送 SMS-STATUS-REPORT
1 采用如下格式发送 SMS-STATUS-REPORT
+CDS : <length>
<pdu> (PDU 方式)
+CDS : <fo>,<mr>, [<ra>] , [<tora>], <scts>,<dt>,<st> (Text 方式)
<bfr> 缺省值为 0
0 当<mode> 取值为 1-3 时 TA 缓冲区中的结果码发送给 TE
1 当<mode> 取值为 1-3 时清除 TA 缓冲区中的结果码

命令 AT+CNMI=2,2,0,1,0 <mt>=2 这种方式是不经过SIM卡的,直接通过串口发出,如果没及时接收的话,就没有了。
响应 OK
响应 +CMT: "18373559146","","14/04/12,22:37:02+32",
zhouli

命令 AT+CNMI=2,1,0,1,0 <mt>=21 这种方式是经过SIM卡的,保存在SIM卡中,响应返回短信存在SIM卡中 的index
响应 OK
响应 响应 +CMTI : "SM", 1 收到新消息的提示


3 AT+CPMS 命令,该命令时设置读写的默认存储器,

比如AT+CPMS="ME",就是设手机为默认存储器,这样再用AT+CMGL=4,就将列出手机中的全部短信了;

同样,AT+CPMS="SM",设SIM卡为默认,AT+CMGL=4,列出SIM中的所有短信。

3 AT+CMGF 选择短信消息格式

AT+CMGF = 1 选择text 格式

AT+CMGF =0 选择PDU格式

4 AT+ CLIP 设置指示来电号码

AT + CLIP =[<N>] 用户终端使能或者屏蔽TE上CLIP的显示,但对附加业务CLIP在网络中执行没有影响(感觉就是来电先生)

<N> 0 关闭 ; 1 开启

AT + CLIP = 1 ,1

5 AT+CSCA SMS服务中心地址

如果这个地址设置错了 ,短信会发不出去,这个是很重要的 ,每个地方都是不同 的。

命令 AT+CSCA="+8613800210500" 设置中心地址
响应 OK
命令 AT+CSCA? 查询短消息中心地址
响应 +CSCA: "+8613800210500",145
OK

6 AT+CSMP 设置短消息文本模式参数

该命令用来选择<vp>, <pid>, <dcs> 的值
命令格式 AT+CSMP=<fo>, <vp>, <pid>,<dcs>

AT+CSMP?

+CSMP: 17,167,0,240

                                                             text 模式                                                                                    其他模式

想要短消息接收时 被储存                +CSCS ="GSM"  <dsc>=241                                                +CSCS ="UCS2" <dsc>=25

想要在短信接收端直接显示内容      +CSCS ="GSM" <dsc>=240                                                 +CSCS="UCS2" <dsc>=24

 

写短消息时+CSCS和<dcs>必须匹配。比如,如果+CSCS选择了“UCS2”,但<dcs>却用了7位编码方式,那么收到的短消息将是乱码。

参数<fo>,<vp>,<pid>,<dcs>的含义及取值和PDU模式是一样的。

PDU格式说明。他们的区别是文本模式下+CSMP的参数使用十进制的数值表示,PDU模式下在PDU串中使用十六进制的值表示。


 

7 AT + CMGS 发送短信命令

AT+CMGS="8618373559146"

> LI
+CMGS: 200

OK

这条命令强调一下, 输入要发送的文字内容后 ,结尾 输入的字符是Ctrl +z (1A),并不是回车符键,

注意事项:

使用好模块的两个关键问题

1 处理好发送的命令与它的返回同步

2处理好非预期事件,将没用的信息丢掉

 

0 0
原创粉丝点击