通过RS232发送和接收短信(三)

接收短信

接收刚收到的短信有两种方法:轮询终端;使用事件

轮询终端可以定期的使用AT+CMGL=0指令读取未读取得指令。方法简单,但许多时候都在做无用功,效率低下,一般不建议采用。下面主要讲解事件法:

指令:

AT+CNMI=<mode>,<mt>,<bm>,<ds>,<brf>

参数:

mode

0――缓存在终端

1――直接发送到TE

mt

0――接收到新的SMS不返回事件

1――如果接收到的SMS存储在ME,则返回

+CMTI:<mem>,<index>

2――除了Class2 SMS,新的SMS直接发送到终端,返回:

+CMT:<length><CR><LF><PDU>

3――Class3 SMS使用mt=2的方法返回,其他类型的使用mt=1的方法返回。

bm

0――小区广播不通知

2――新的小区广播通知,返回

+CBM:<length><CR><LF><pdu>

3――Class3格式的小区广播通知,使用bm=2格式

ds

0――状态报告不通知

1――新的状态报告通知,返回:

+CDS:<length><CR><LF><pdu>

2――如果新的状态报告存储到ME,则返回:

+CDSI:<mem>,<index>

brf

1――始终为1

例:

一般我们使用AT+CNMI=1,1,0,2,1

当收到新的短信时终端返回:

+CMTI:ME,5

新的状态报告:

+CDSI:ME,6

程序可以通过判断返回值并使用AT+CMGR指令返回新到短信。

转自bbs.sendsms.cn

你可能感兴趣的:(编码)