UART- Empfang zerstückelt?!

Gast #539909
Lesenswert?
• ▲
▼
Hi,

ich habe ein kleines problem, ich versuche eine einfache Kommunikation 
zwischen einem ARM-Board und den PC herzustellen. Auf dem PC läuft ein 
java thread (java.comm). Wenn ich etwas vom Board zum PC sende und es 
mir über Hyperterminal ausgeben lasse, ist alles korrekt empfangen 
worden. Wenn ich es über den java thread empfange und über console 
ausgebe, wird jedes Zeichen (so denke ich) in 20er päckchen zerhackt.
z.b. hallo-> 
hxxxxxxxxxxxxxxxxxxxaxxxxxxxxxxxxxxxxxxxlxxxxxxxxxxxxxxxxxxxl
xxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxx
wobei das x ein kästchen ist, also das symbol eines kästchen(ascii?!).

Baudrate, stoppbits ,parity_none, ist  beim sender und empfänge gleich.

Habt ihr eine Idee, woran es liegen kann?

Java code liegt im Anhang.
Angehängte Dateien:
Gast #539915
Lesenswert?
• ▲
▼
Für mich als Laie sieht das...

byte[] readBuffer = new byte[20];
try {
    while (inputStream.available() > 0) {
  int numBytes = inputStream.read(readBuffer);
    }
    System.out.print(new String(readBuffer));
} catch (IOException e) {

... so aus, als ob numBytes nicht beachtet wird und kein "Stringende" im 
readBuffer gesetzt wird. new String(readBuffer) erzeugt deshalb einen 
String für den kompletten 20 Byte grossen readBuffer.

Du hast Glück, dass du in JAVA programmierst. In C hättest du einen 
sauberen Bufferoverflow produziert, die new String(readBuffer) analoge 
Anweisung könnte im Extremfall versuchen den kompletten Speicher zu 
kopieren (in der Praxis wird ein zufälliges Nullbyte das verhindern)!

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.