mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LPC2368 String in UART einlesen


Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich hoffe einer von Euch kann mir mit meinem aktuellen Problem helfen.
Ich möchte über den UART meines LPC23648 einen kompletten String 
einlesen,
bspw. wie folgt: 43 1<cr><lf>.

Hier der Teil des C Code meines Programms: Ein Interrupt wird aktiviert 
nach Erhalt des Strings

Hier die Uart Init:
U0FCR = 0x01;
U0LCR = 0x87;
U0LDM = 0;
U0DLL = 0x4A;
U0FDR = 0xC7;
U0LCR = 0x07;
U0IER = 0x05;

Hier die Funktion:
unsigned char array[16];  //Global definiert in main file
unsigned char x;         //Global definiert in main file
unsigned char New_Data; //Global definiert in main file

__irq void UARTinterrupt(void)
{
 while(U0LSR & (1 <<0)
 {
  array[x]=U0RBR;
  if(array[x]==0x0A)
  {
   New_Data=0x01;
  }
  x++;
 }
}


Mein Problem ist jetzt, dass zwar der Interrupt ausgelöst wird, aber 
nach Abarbeitung im Array nur noch das letzte Zeichen 0x0A (<lf>) drin 
steht und das an erster Position. Der Rest ist irgendwie verloren 
gegangen.
Das RX FIFO habe ich übrigens aktiviert.
Was ist hier passiert?
Schon mal Dank im Voraus

Autor: tuppes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn ich das richtig sehe, hast du zwei Stopbits eingestellt (U0LCR = 
7). Stimmt das mit dem Sender überein?

Ansonsten dürfte das die Ursache sein: Das letzte übertragene Zeichen 
ist wegen des anschließenden Ruhepegels das einzige mit gültigem Format, 
die anderen werden alle wegen Frame Error (zu wenig Stopbits) verworfen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.