Hallo Community, ich möchte von meinem Mikrocontroller aus Messdaten an ein Terminal senden. Nach 20x Bytes soll das Terminal Programm in eine neue Zeile springen. Jetzt habe ich mir gedacht, einfach ein CR LF (0x0D 0x0A) an die Messdaten dran zuhängen. Das von mir verwendete Terminal Programm "RealTerm" macht das leider nicht. Frage 1 : Weiß jemand von euch, ob und wie das möglich ist? Auch vielleicht mit einem anderen Terminal Programm. Frage 2 : Kennt jemand von euch ein Terminal Programm, mit welchem man Daten über die serielle Schnittstelle aufzeichen (in eine Datei) und die Datenbreite von 16-Bit dabei einstellen kann? Vielen Dank schon einmal im Voraus. Gruß Flo
Wenn das Termninal 0x0D 0x0A nich in eine neue Zeile springt dann hat man auf der µC Seite was flasch gemacht. In C ist das
1 | printf("\r\n"); |
Zu 2: Teraterm Zu 3: Mit "normalem" UART wird's nicht so leicht: Beitrag "Problem: 16 Bit Variable über UART zu empfangen" ciao gustav
Flo schrieb: > Kennt jemand von euch ein Terminal Programm, mit welchem man Daten über > die serielle Schnittstelle aufzeichen (in eine Datei) und die > Datenbreite von 16-Bit dabei einstellen kann? Ich glaube nicht, dass das mit einem PC möglich ist. Man kann glaube ich 7 oder 8 Bit einstellen. 16 Bit habe ich noch nie als Option gesehen. Auf höhere ebene könnte man 2 Bytes zusammenheften und so 16 Bit machen. Das Problem ist, wenn 1 Byte irgendwie verloren geht, dann werden die falschen Bytes immer zusammengeheftet. Und eine Synchronisation ist nicht definiert. Auf einem uC würde das natürlich gehen, aber auch mit Bitbang weil viele USART module max 8 bit können. Bestimmt gibt es ausnahmen.
Hallo, ich meinte auch nicht, dass man die Datenbreite des UART auf 16-Bit setzen kann, sondern dass das Terminal 2x Bytes zu 16-Bit zusammenfasst und anzeigt/speichert. Bei RealTerm kann man unter dem Tab "Display" uint16 einstellen. Damit werden die Daten in diesem Format visualisiert. Beim Aufzeichnen mit "Capture" verwendet RealTerm jedoch wieder 8-Bit HEX. Gruß Flo
Flo schrieb: > Beim Aufzeichnen mit "Capture" verwendet RealTerm jedoch wieder 8-Bit > HEX. Das sollte sich doch leicht mit ein paar Zeilen Python oder so in das gewünschte Format konvertieren lassen.
Flo schrieb: > Kennt jemand von euch ein Terminal Programm, mit welchem man Daten über > die serielle Schnittstelle aufzeichen (in eine Datei) und die > Datenbreite von 16-Bit dabei einstellen kann? Dazu müsste irgendwie gekennzeichnet sein, welche 2 Bytes einen 16-Bit-Wert bilden. Wenn der TO das offensichtlich nicht vorgesehen hat (beim Sender!!), dann ist das ganze Konzept unbrauchbarer Blödsinn, das lässt sich mit keinem denkbaren Empfangsprogramm beheben, da braucht man garnicht lange nachdenken ob Controller oder PC und welche Sprache. Georg
Hterm kennt „Newline after … Character“ Ist das jetzt Binary Data oder Hexdarstellung? Was soll in der Datei stehen?
Flo schrieb: > Frage 2 : > Kennt jemand von euch ein Terminal Programm, mit welchem man Daten über > die serielle Schnittstelle aufzeichen (in eine Datei) und die > Datenbreite von 16-Bit dabei einstellen kann? Nein. MCs können max 9Bit, die PC-UART max 8Bit Format. Will man mehr übertragen, braucht es ein Protokoll, mit dem der Empfänger die Daten wieder richtig zusammen setzen kann. Recht einfach ist ein ASCII-Protokoll, 16Bit werden per printf als 4 Hex-Digits oder 1-5 Dezimaldigits übertragen. Danach kommt ein Trennzeichen zum nächsten Wert, z.B Leerzeichen oder Komma.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.