最近在做GSM短信发送模块的软件,走了不少弯路,准备分几次一点点地写出来,仅供参考。
曾被网上的一些文章所误导,尤其是几篇非常流行点击率相当高的文章,可怜的我原来并不了解相关技术,后来才发现自己用GSM模块很多东西都与文中说的不一样,因此走了不少弯路,真是郁闷死
关于PDU模式发送短信:
许多文章说,在PDU模式下,你要按照规范将一系列信息(包括SMSC地址、对方号码、待发内容等等)编码成PDU串,再发送出去,但是你知道吗,有不少芯片(例如我所用的GSM模块中的西门子MC39i芯片)是不支持一次将PDU串发出去的,别以为你将所有信息编码成PDU串,然后就可以一次写入串口中,然后就可以成功发送了。你要分几步来:
第一,对模块写入 AT+CMGF=0<回车> 的AT命令(<回车> 要用 /r 来实现),之后应该得到一个 OK 响应,才能继续进行下一步;
第二,对模块写入 AT+CMGS=<length><回车> 的AT命令(其中 <length> 是一个数字,该数字是代表了PDU串中某一部分的长度,这一部分