我在 Arduino Uno 和 TC35 GSM 模块之间有一个软件串行链接,用于发送和接收 SMS 消息。发送 SMS'/calls 不是问题,因为它是向 GSM 模块发送适当的 AT 命令的问题。但是我希望使用 AT+CMGR=1 命令(检查存储在 SIM 卡上的第一条 SMS)来检查是否有任何消息并将消息存储为 char 数组,以便我可以检查 SMS 是否包含单词“开”或“关”来激活 LED。
AT+CMGR=1 命令应返回以下内容:
AT+CMGR=1
+CMGR: "REC READ","+3538xxxxxxxx",,"13/03/23,14:29:37+00"
Set
OK
但是在下面的方法中,当我打印“数据”时,它只会返回:
消息包含:
在
任何指针将不胜感激。
void checkMessage() {
gsmSerial.println("AT+CMGR=1"); //Reads the first SMS
for (x=0;x < 255;x++){
data[x]='\0';
}
x=0;
do{
while(gsmSerial.available()==0);
data[x]=gsmSerial.read();
x++;
if(data[x-1]==0x0D&&data[x-2]=='"'){
x=0;
}
}while(!(data[x-1]=='K'&&data[x-2]=='O'));
data[x-3]='\0'; //finish the string before the OK
Serial.println("\r\nMessage contains: \r");
Serial.println(data); //shows the message
delay(1000);
}