Gast
#1380037
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