最近做了一个通过串口发短信的项目,应用了TC35模块的AT指令集。
AT指令集有做过短信的都不陌生,但我在调试过程中却出了不少问题,以下是几个细节问题,可能容易忽视,记下来备忘
1.接收短信将短信直接发送到终端,需要AT+CNMI的<mt>参数为2,必须先用AT+CSMS=1命令,才能让其支持参数为2
2.接收一条短信后,必须使用AT+CNMA命令发送一个确认,否则下一次收到短信CNMI的<mt>值会自动变为0,导致无法直接送到终端
3.关于AT+CSCA命令,是对SIM卡上的短信中心进行操作,一般没有必要更改,MODEM会自动读取SIM卡上的短信中心
4.发短信时出错有两种情况,一种是卡欠费,返回的ERROR是直接跟在回显的短信内容之后;另一种是发送超时,这种情况串口会收到两次响应,一次是回显的短信内容,第二次是ERROR。