这是按照参考书上
#define MAXCHAR 81
char array[MAXCHAR];
int temp=0;
int g_timeout=0;
char ATE0[]="ATE0";
char CREG_CMD[]="AT+CREG?";
char SMS_send[]="AT+CMGS=18";
char ATCN[]="AT+CNMI=2,1";
char CMGF0[]="AT+CMGF=0";
char CMGF1[]="AT+CMGF=1";
char CMGR12[]="AT+CMGR=1";
char CMGD12[]="AT+CMGD=1";
#define SEND_MESSA_TO_YOUR"at+cmgs=\"15xxxxxxxxxx\"\r\n"
#define SEND_MESSA_CONTENT"arduino group test"
int readSerial(char result[])
{
int i=0;
while(Serial.available()>0)
{
char inChar=Serial.read();
if(inChar=='\n')
{
result[i]='\0';
Serial.flush();
return 0;}
if(inChar!='\r')
{
result[i]=inChar;
i++;
}
}
}
void clearBuff(void)
{
int j=0;
for(temp=0;j<MAXCHAR;j++)
{
array[temp]+0x00;
}
temp=0;
}
int Hand(char*s)
{
delay(200);
clearBuff();
delay(300);
readSerial(array);
if(strstr(array,s)!=NULL)
{
g_timeout=0;
clearBuff();
return 1;
}
if(g_timeout>50)
{
g_timeout=0;
return -1;
}
g_timeout++;
return 0;
}
void AT(void)
{
clearBuff();
Serial.println(ATE0);
delay(50);
readSerial(array);
while(strstr(array,"OK")==NULL)
{
clearBuff();
Serial.println(ATE0);
delay(50);
readSerial(array);
}
clearBuff();
Serial.println(ATCN);
delay(500);
while(Hand("OK")==0);
while(1)
{
clearBuff();
Serial.println(CREG_CMD);
delay(500);
readSerial(array);
if((strstr(array,"0,1")!=NULL)||(strstr(array,"0,5")!=NULL))
{
clearBuff();
break;
}
}
}
void send_english(void)
{
clearBuff();
Serial.println(CMGF1);
delay(500);
while(Hand("OK"==0));
clearBuff();
Serial.println(SEND_MESSA_TO_YOUR);
delay(500);
while(Hand(">"==0));
Serial.println(SEND_MESSA_CONTENT);
delay(100);
Serial.print("\x01A");
delay(10);
while(Hand("OK"==0));
}
void setup()
{
Serial.begin(9600);
}
void loop()
{
AT();
send_english();
delay(200);
clearBuff();
delay(1000);
while(1);
}
#define MAXCHAR 81
char array[MAXCHAR];
int temp=0;
int g_timeout=0;
char ATE0[]="ATE0";
char CREG_CMD[]="AT+CREG?";
char SMS_send[]="AT+CMGS=18";
char ATCN[]="AT+CNMI=2,1";
char CMGF0[]="AT+CMGF=0";
char CMGF1[]="AT+CMGF=1";
char CMGR12[]="AT+CMGR=1";
char CMGD12[]="AT+CMGD=1";
#define SEND_MESSA_TO_YOUR"at+cmgs=\"15xxxxxxxxxx\"\r\n"
#define SEND_MESSA_CONTENT"arduino group test"
int readSerial(char result[])
{
int i=0;
while(Serial.available()>0)
{
char inChar=Serial.read();
if(inChar=='\n')
{
result[i]='\0';
Serial.flush();
return 0;}
if(inChar!='\r')
{
result[i]=inChar;
i++;
}
}
}
void clearBuff(void)
{
int j=0;
for(temp=0;j<MAXCHAR;j++)
{
array[temp]+0x00;
}
temp=0;
}
int Hand(char*s)
{
delay(200);
clearBuff();
delay(300);
readSerial(array);
if(strstr(array,s)!=NULL)
{
g_timeout=0;
clearBuff();
return 1;
}
if(g_timeout>50)
{
g_timeout=0;
return -1;
}
g_timeout++;
return 0;
}
void AT(void)
{
clearBuff();
Serial.println(ATE0);
delay(50);
readSerial(array);
while(strstr(array,"OK")==NULL)
{
clearBuff();
Serial.println(ATE0);
delay(50);
readSerial(array);
}
clearBuff();
Serial.println(ATCN);
delay(500);
while(Hand("OK")==0);
while(1)
{
clearBuff();
Serial.println(CREG_CMD);
delay(500);
readSerial(array);
if((strstr(array,"0,1")!=NULL)||(strstr(array,"0,5")!=NULL))
{
clearBuff();
break;
}
}
}
void send_english(void)
{
clearBuff();
Serial.println(CMGF1);
delay(500);
while(Hand("OK"==0));
clearBuff();
Serial.println(SEND_MESSA_TO_YOUR);
delay(500);
while(Hand(">"==0));
Serial.println(SEND_MESSA_CONTENT);
delay(100);
Serial.print("\x01A");
delay(10);
while(Hand("OK"==0));
}
void setup()
{
Serial.begin(9600);
}
void loop()
{
AT();
send_english();
delay(200);
clearBuff();
delay(1000);
while(1);
}


邀请函