Hallo, nachdem mir hier schon mal zum RPi4 UART geholfen wurde, bitte ich nochmals um Hilfe bei einem anderen Problem mit dem UART des RPi4. Zum Auslesen von Sensoren habe ich ein C Programm erstellt und benutze einen UART mit Termios. Ich habe den UART eigentlich soweit, dass ich Daten senden und empfangen kann. Das geht auch gut, bis auf einen reproduzierbaren Fall. Ich empfange normalerweise immer 7 Zeichen. Das klappt auch solange bis an 3. Stelle der Wert 0x11 steht. Dieses Datum wir immer unterdrückt und es werden nur 6 Daten empfangen. Das 3. Datum (0x11) wird einfach ausgelassen und fehlt im Empfangspuffer. Mit einem Protokollanalyzer kann ich aber sehen, dass der Sender das 3. Datum ordnungsgemäß sendet, also 7 Zeichen liefert. Ist 0x11 irgend was besonderes für den UART des RPI4? Kann mir da bitte jemand weiterhelfen oder hat eine Idee dazu? Danke
Beitrag #6906989 wurde von einem Moderator gelöscht.
Guck mal https://de.m.wikipedia.org/wiki/Steuerzeichen 0x11...0x14 "Gerätespezifische Steuerzeichen, etwa um bestimmte Gerätefunktionen (z. B. Schriftart bei Druckern) ein- und auszuschalten. DC3 ^S (XOFF) und DC1 ^Q (XON) werden zur Flusskontrolle bei XON/XOFF eingesetzt." mfg mf
RPi4_R schrieb: > nochmals um Hilfe bei einem anderen Problem mit dem UART des RPi4. Nein, du bittest um Hilfe, weil du zu faul bist, Doku zu lesen. Im konkrete Fall natürlich die zu termios. > Ist 0x11 irgend was besonderes für den UART des RPI4? Wenn du via ioctl mit hinreichend schwachsinnig initialisierter termios-Struktur diese Verhalten anforderst, wird dir auch das Linux des Paspi4 deinen Wunsch erfüllen. Sei er auch noch so idiotisch... Nein, das "Do what I want"-Feld gibt es in der termios-Struktur nicht, man muss das schon kompetent selber ausfüllen...
PS. https://de.m.wikipedia.org/wiki/Datenflusssteuerung#Software-Flusssteuerung,_Software-Handshake,_Software-Protokoll_oder_X-ON/X-OFF Da steht nochmal genauer, dass * DC1 0x11 = XON * DC3 0x13 = XOFF Daher termios mal ohne XON/XOFF konfigurieren. mfg mf
Warum überträgt man Binärwerte mit einem Protokoll, das nur für Buchstaben gedacht wurde?
Vielen Dank Achim M. (minifloat)für den einzigen freundlichen und konstruktive Beitrag. Das hilft mir.
PittyJ schrieb: > Warum überträgt man Binärwerte mit einem Protokoll, das nur für > Buchstaben gedacht wurde? Viele Leute übertragen Binärdaten über einen UART. Die Frage ist nicht "warum", sondern "wie". Scheinbar wird hier durch Sendepause der Paketanfang synchronisiert, kann man so machen... mfg mf
Achim M. schrieb: > Scheinbar wird hier durch Sendepause der > Paketanfang synchronisiert, kann man so machen... oder über die Paketlänge. Oder man verwendet halt nicht die Standardstart- und -stopzeichen. Es gibt auch Protokolle, die nur als Startsignal ein Byte >= 0x80 übertragen, und die Daten nur < 0x80 sein dürfen. Damit kann man zwar keine Binärzahlen übertragen, ist in dem Fall aber egal.
Ich denke, du hast keine Lust auf irrelevante Ratschläge und falsche Vorwürfe. Überlege mal, woher die kommen. Wenn du Fragen zu einem selbst geschriebenen Programm hast, solltest du mindestens dessen Quelltext bereit stellen.
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.