Вот кусок. Работает реально через раз.... Один раз загрузил - ок, второй не работает.
Когда работает, может прогнать цикл либо 4, либо 2 либо 5 раз - как ей захочится - например:

Код:
+CMTI: "SM",1
AT+CMGR=0

+CMGR: "REC UNREAD" +7114160385",,"12/09/10,16:34:47+24"
Start	

OK
AT+CMGR=1

+CMGR: "REC READ","+7912616038	$	A’x€ÊzŠ‚bŠ²Òš¢Ò¢ºZ’¢j
Start

OK
AT)C
CB91

#CMGR: "REC READ","+79126160385",,"12/09/10,16:34:47+24"
Start

OK
AT+CMGR=1

+CMGR: "REC READ","+79126160385",,"12/09/10,16:34:47+24"
Start

OK
AT+CMGD=1

OK

А если не работает, то пишет

Код:
OK
AT+CMGD=1

OK

+CMTI: "SM",1

+CMTI: "SM",2

Код:
 abc=strstr(bgsm,"+CMTI");
 myGLCD.print(abc, 0, 150);
 if(abc!=0)
    {
    myGLCD.setFont(SmallFont);
    myGLCD.print("SMS=", 0, 225);
    myGLCD.setFont(BigFont);
    Serial1.println("AT+CMGR=1");
    delay(1000);
    rsms=1;
    }

  ok=strstr(bgsm,"OK");
  if(rsms==1 && ok!=0)
    {
    myGLCD.printNumI(rsms, 50, 180);
    start=strstr(bgsm,"Start");
    myGLCD.print(start, 50, 150);
    if(start!=0)
        {
        myGLCD.setFont(SmallFont);
        myGLCD.print("Start", 25, 225);
        myGLCD.setFont(BigFont);
        pauto=1;
        rsms=0;
        Serial1.println("AT+CMGD=1");
        delay(1000);
        memset(bgsm, 0, sizeof(bgsm));
        }    
    off=strstr(bgsm,"Stop");
    myGLCD.print(off, 100, 150);
    if(off!=0)
        {
        myGLCD.setFont(SmallFont);
        myGLCD.print("Stop", 25, 225);
        myGLCD.setFont(BigFont);
        pauto=0;
        rsms=0;
        Serial1.println("AT+CMGD=1");
        delay(1000);
        memset(bgsm, 0, sizeof(bgsm));
        }    
    }