关于sim900A的接收短信问题
代码如下:#include <String.h>
boolean haveSMS = false;
void setup()
{
Serial.begin(9600);
Serial.println("AT");
delay(500);
Serial.println("AT+CMGD=1,4");
delay(500);
Serial.flush();
delay(100);
Set_Message();
}
void loop(){
checkSMS();
if(haveSMS) {
haveSMS = false;
Read_Message();
}
}
void checkSMS(){
String inStr1="";
while (Serial.available()>0){
char inChar1=Serial.read();
inStr1 += (char)inChar1;
delay(2);
}
if(inStr1.indexOf("+CMTI")!=-1){
haveSMS = true;
}
}
void Read_Message(){
Serial.print("AT+CMGR=1\r\n");
int i = 0;
for( ; i < 100; ++i) {
delay(4000);
if(Serial.available( ) ) break;
}
if( ! Serial.available( ) ) {
Serial.println("Time outwhen try A_T_+_C_M_G_R=1");
}
String inString="";
while (Serial.available()>0){
char inChar=Serial.read();
inString += (char)inChar;
delay(2);
}
if (inString!="")
{
Serial.println(inString);
}
Serial.println("AT+CMGD=1,4");//向串口写清空短信的命令
delay(500);
Serial.flush();
delay(100);
}
void Set_Message(){
Serial.print("AT+CNMI=2,1\r\n");//设置非请求结果码缓存方式发送
Serial.print("AT+CMGF=1\r\n");//进入文本模块
Serial.print("AT+CSCS=GSM\r\n");
}
结果是在串口监视器中只能显示第一个发的短信,后面在发短信的话,接收的短信任然是第一个!!!!好困惑啊。。。。
页:
[1]