uart string empfängen bis zeichenfolge vom gsm-modem

Gast #1466534
Lesenswert?
• ▲
▼
Meine Frage ich benutze momentan den code aus dem Tutorium um einen 
String über Uart zu empfangen. Jetzt möchte ich aber von meinem 
GSM-Modem über AT befehle die "OK"'s empfangen, diese werden jedoch 
angeführt vom befehl das man gesendet hat (quasi ECHO) und zusätzlich 
noch so ein paar \r und \n hier mal ein beispiel:

ich sende den befehl: at\r
Antwort: at\r\r\nOK\r\n

das führt natürlich zum abruch des string empfanges. Wie könnte ich den 
folgenden Code ändern das er wartet bis alles vom gsm-modem empfangen 
wurde???? und ggf. nach einer gewissen zeit (ok mit einem timer/counter) 
abgebrochen wird.
1
int usart0_getc(void)
2
{
3
    while (!(UCSR0A & (1<<RXC)));   //Warten bis Zeichen verfügbar
4
    return UDR0;          //Zeichen aus UDR an Aufrufer zurückgeben
5
}
6

7
void usart0_gets(char* Buffer, int MaxLen)
8
{
9
  int NextChar;
10
  int StringLen = 0;
11
 
12
   NextChar = usart0_getc();  //Warte auf und empfange das nächste Zeichen
13
                 //Sammle solange Zeichen, bis:
14
                // * entweder das String Ende Zeichen kam
15
                // * oder das aufnehmende Array voll ist
16
  while(NextChar != '\r' && StringLen < MaxLen - 1)
17
  {
18
      *Buffer++ = NextChar;
19
    printf("%c",NextChar);
20
      StringLen++;
21
      NextChar = usart0_getc();
22
  }
23
 
24
  //Noch ein '\0' anhängen um einen Standard
25
  //C-String daraus zu machen
26
  *Buffer = '\0';
27
}

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.