当前位置:首页 > 通信技术 > 通信模块
[导读]   常见的at指令集   第一:AT+CNMI,用于设置新消息指示。发送:AT+CNMI=2,1,设置新消息提示,当收到新消息,且 SIM 卡未满的时候,SIM900A 模块会返回数据给

  常见的at指令集

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

  第二:AT+CMGF,用于设置短消息模式,SIM900A 支持 PDU 模式和文本(TEXT)模式等 2种模式,发送:AT+CMGF=1,即可设置为文本模式。

  第三:AT+CSCS,用于设置 TE 字符集,默认的为 GSM 7 位缺省字符集,在发送纯英文短信的时候,发送:AT+CSCS=“GSM”,设置为缺省字符集即可。在发送中英文短信的时候,需要发送:AT+CSCS=“UCS2”,设置为 16 位通用 8 字节倍数编码字符集。

  第四:AT+CSMP,用于设置短消息文本模式参数,在使用 UCS2 方式发送中文短信的时候,需要发送:AT+CSMP=17,167,2,25,设置文本模式参数。AT+CMGR,用于读取短信,比如发送:AT+CMGR=1,则可以读取 SIM 卡存储在位置1 的短信。

  第五:AT+CMGS, 用于发送短信, 在“GSM”字符集下, 最大可以发送 180 个字节的英文字符,在“UCS2”字符集下,最大可以发送 70 个汉字(包括字符/数字) 。该指令我们在后面详细介绍。

  第六:AT+CPMS, 用于查询/设置优选消息存储器, 通过发送: AT+CPMS?, 可以查询当前 SIM卡最大支持多少条短信存储,以及当前存储了多少条短信等信息。如返回:+CPMS:

  中英文短信的发送

  我们将利用 ATK-SIM900A 模块来给指定手机号码发送一条中英文短信。同样,我们用到 AT+CMGS 指令来发送中英文短信。还是采用文本模式发送,发送步骤如下:

  首先,发送:AT+CMGF=1,设置为文本模式。然后,发送:AT+CSMP=17,167,2,25,置文本模式参数。最后发送:AT+CSCS=“UCS2”,设置为 UCS2 编码字符集。

  此时,我们便可以发送 AT+CMGS 指令来发送中英文短信了,不过由于使用了 UCS2字符集,所有字符/数字/汉字,都必须使用 UNICODE 编码。假定我们要给手机号:13922348612,发送一条中英文短信,内容为“ATK-SIM900A 中英文短信发送测试” 。我们首先要用:汉字 UNICODE 互换工具.exe,

  

  这个软件将号码和发送内容转换为 UNICODE 字符串(需要手动去掉空格) ,得到:13922348612,转换后的 UNICODE 字符串(去掉空格后)为:00310033003900320032003300340038003600310032

  ATK-SIM900A 中英文短信发送测试,转换后的 UNICODE 字符串为:00410054004B002D00530049004D00390030003000414E2D82F1658777ED4FE153D190016D4B8BD5

  然后,发送:AT+CMGS=“00310038003100370035003600380034003700390039”,这个指令, 然后模块返回: 》, 此时我们输入我们需要发送的内容: 00410054004B002D00530049004D00390030003000414E2D82F1658777ED4FE153D190016D4B8BD5。

  注意,此可以不用发送回车了。在发送完内容以后,最后以十六进制(HEX)格式单独发送(不用添加回车) :1A(即0X1A) ,启动一次短信发送,如图 2.3.4.4.1 所示:

  

  等到模块发送完成,返回如:+CMGS: 158,表示短信已成功发送。此时,我们在目标手机(13922348612)上面,就可以看到模块发送过来的中英文短信了。

  英文短信的发送

  我们将利用 ATK-SIM900A 模块来给指定手机号码发送一条英文短信。这里,我们用到 AT+CMGS 指令来发送短信,发送全英文/数字短信的时候,我们先设置为:“GSM”字符集(AT+CSCS=“GSM”) ,文本模式(AT+CMGF=1) 。

  假设我们要给手机号: 13922348612, 发送一条短信, 则发送: AT+CMGS=“13922348612”,然后模块返回:》,此时我们输入我们需要发送的内容:ATK-SIM900A MSG SEND TEST,注意, 此可以不用发送回车了。 在发送完内容以后, 最后以十六进制(HEX)格式单独发送 (不

  用添加回车) :1A(即 0X1A) 1 ,即可启动一次短信发送。注 1:0X1A, 即 “CTRL+Z” 的键值, 用于告诉 SIM900A, 要执行发送操作。 另外还可以发送: 0X1B,即“ESC”的键值,用于告诉 SIM900A,取消本次操作,不执行发送。

  稍等片刻,在短信成功发送后,模块返回如:+CMGS: 156,的确认信息,表示短信成功发送,其中 156 为模块内部的短信计数器,一般不用理会。如图 2.3.4.2.1 所示:

  

  从上图可以看出,我们在短信发送的最后,输入的是十六进制的 1A,将这个数据发送给 SIM900A 模块后,启动短信发送,然后发送成功后,模块返回了:+CMGS: 156,说明短信发送成功了。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

  设计一个可以实现短信收发与数据无线传输的模块的要求,本文采用了ARM Cortex-M3内核的主流产品STM32作为主控芯片,采用SIMCom公司的SIM900A作为通信芯片。在查阅大量相关

关键字: sim900a STM32 无线通信模块

  常见问题一   问题:SIM900A网络指示灯一会慢闪,一会快闪。   原因1:给模块的供电电源不行!功率不够,即使电压满足了,但是电流不够。   解决方法:这样的电

关键字: sim900a sim800a

  常见问题一   问题:SIM900A网络指示灯一会慢闪,一会快闪。   原因1:给模块的供电电源不行!功率不够,即使电压满足了,但是电流不够。   解决方法:这样的电

关键字: sim900a

  AT 即 AttenTIon,指令集是从终端设备 (TerminalEquipment, ATTE)或数据终端设备 (DataTerminalEquipment, DTE)向终端适配器(Te

关键字: sim900a

  使用Arduino控制设备,读取数据,然后通过移动网络传送到服务器。选用的是正点原子的SIM900A模块。在服务器部署了一个监听程序,Arduino控制SIM900A通过TCP方式把数据发送

关键字: sim900a

  SIM900是GPRS模块,没有集成GPS功能。sim900实现定位有几种办法。   1、外扩GPS模块,美国的卫星定位系统,或者北斗,中国的,具体看选择的模式支持哪种定位系统。

关键字: sim900a

  TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OS

关键字: sim900a tcp

  SIM900A是一个比较实用的GPRS模块,进行简单的配置就可以进行用于数据传输,配置使用AT指令进行交互,用GPRS远程传输数据时,有两种方式,一种是正常的模式,没法送一次要发送0x1a来

关键字: sim900a

实现了收发短信,并且支持字符短信和PDU格式短信,支持电话拨打与接听长期工作稳定//SIM900.C/*************************************************

关键字: sim900 sim900a 收发短信
关闭