SIM900A英文短信的读取与发送

一、英文短信的发送:

       一般分为五步进行短信的发送:

              1、我们用到AT+CSCS指令来设置TE字符集,默认的为GSM7位缺省字符集,在发送英文短信时,需要发送:AT+CSCS="GSM",设置为缺省字符集即可。

               2、用指令AT+CMGF来设置短消息模式,即为文本模式(TEXT)还是PDU模式,这里我们发送AT+CMGF=1,设置为文本模式即可。

               3、下面就是要设定具体的发送对象的电话号码了,假如我们要给电话为18792992426的号码发送短信,则发送:AT+CMGS="18792992426"即可。

               4、指定号码设置完毕之后就要发送短信内容了,直接发送英文内容即可,没有其他附加的指令。

               5、最后就是短信发送的启动指令了,即发送0X1A即可。

               特别注意:以上五步即可完成一条短信的发送,但是还是特别需要注意几点:

               在发送前面三条的内容时,要在发送的结果加上回车,如果用调试助手的话,不用加回车,只需在新行发送那里打钩即可。发送第四条短信内容的时候不必发送回车。在发送完短信内容以后,最后已十六进制(HEX)格式单独发送:1A(即0X1A),即可启动一次短信的发送,另外还可以发送:0X1B即“ESC”的键值,用于告诉SIM900A,取消本次操作,不执行发送。稍等片刻,在短信发送成功之后,模块会返回如:+CMGS:156的确认信息,表示短信发送成功。

二、英文短信的读取:

      1、和发送短信一样,发送指令AT+CSCS="GSM"。

      2、发送指令AT+CMGF=1,设置模式。

      3、 一条关键的指令:AT+CNMI,用于设置新消息指示。发送AT+CNMI=2,1,设置新消息提示。当收到短信,且SIM卡未满的时候,SIM900A模块会返回数据给串口,如:+CMTI:"SM",2表示收到的新消息,存储在SIM卡的位置2。

       4、知道了短信存储的位置,下来就是读取短信的指令了,发送:AT+CMGR,用于读取短信,比如发送AT+CMGR=1就可以读取SIM卡存储在位置1的短信。

       英文短信的读取步骤比较简单,但是还是需要注意几个地方:

      1: 如果SIM内存满了,当接受到新消息的时候就不会返回数据给串口,此时解决的方法就是删除以前的存储内容,释放空间,具体操作为:发送指令:AT+CMGD=1,删除全部短信。

      2: 想要编程更加清晰方便,我们也可以提前知道SIM卡的实时内存状态,如发送指令:AT+CPMS?,可以查询当前SIM卡最大支持多少条短信存储,以及当前存储了多少条短信等信息。如返回:+CPMS:用户手册“SM”,1,50,表示当前SIM卡最大存储50条信息,目前已经有1条存储的信息。  

 

 

 

你可能感兴趣的:(嵌入式)