Gast
#321944
Hi ich habe grade mit der ARM7 programmierung angefangen und will nun die serielle Schnittstelle zum funktionieren bringen. Hier im Forum und sonst im Netz habe ich auch schon viel Anregungen gefunden. Die Initialisierung funktioniert, genau so wie senden und empfangen. dies aber nur wenn ich die Echo geschichte nehme wie sie zum Bsp bei Hitex im LPCBook vorgestellt wird. Mich stört hier der Code " while (!(U1_LSR & 0x01));" das bedeutet ja das wenn nichts zu empfangen ist der ARM in der Schleife hängen bleibt bis eben etwas zu empfangen da ist (RDR gesetzt ist). Da es aber nicht garantiert werden kann das immer Daten über die Serielle Schnittstelle abkommen soll der Arm eben nicht warten bis etwas anliegt sondern wenn nicht ist weiter machen mit der Daten Auswertung. Ungefahr so: y=40; for (x=0;x<y;x++) { if ((U1_LSR & 0x01) != 0){} // keine Daten im RBR tue nichts if ((U1_LSR & 0x01) == 0) // Daten im RBR lese { while(( U1_LSR & 0x01) ==0);// muss sein da sonst nur 0xAA gelesen U1_lesen(); } leider geht dieses auch nur wenn y = der Anzahl der zu empfangen Zeichen ist. Ist y größer stoppt alles wieder ist y kleiner werden die "überzähligen" Zeichen beim nächsten Mal vorne weg gelesen. Ich hoffe ich bin nciht der erste der sich über solche Probleme gedanken macht. Wenn einer von euch so was schon programmiert hat: über einen Bsp Code oder auch sonstige Tips würde ich mich freuen