Hallo, ich verwende in VB2008Express zum Schreiben auf den COM-Port folgende Initialisierung: My.Computer.Ports.OpenSerialPort("COM1", 9600, IO.Ports.Parity.None, 8, 1) Das Schreiben auf meine externe Hardware klappt soweit ganz gut, nur wird das MSB zuerst gesendet. Ich habe nirgendwo gefunden wie und wo ich das umkonfigurieren kann, so dass das LSB meines zu sendenden Datenwortes zuerst kommt. Es ist mir durchaus klar, dass ich das vorher selbst drehen kann. Nur gibt es doch sicher eine elegantere Methode. Vielen Dank für Hinweise. Gruss, Armin
ArminD schrieb: > Nur gibt es doch sicher eine elegantere Methode. nein gibt es nicht (oder ich habe auch noch nie etwas davon gehört)
Danke, dann muss ich auch nicht weiter suchen. Gruss, Armin
Hallo Armin, nach EIA-232 (RS-232) wird das LSB zuerst gesendet. Ich glaube nicht, dass dein Rechner das MSB zuerst sendet. Das Problem liegt sicher wo anders. Oder sprichst du von Bytes? Intel x86 Architektur verarbeitet natürlich das niederwertige Byte zuerst. Das liegt an der Architektur des Rechners. Am besten die Bytes einzeln lossenden oder ein Bytearray übergeben in dem die Bytes in der richtigen Reihenfolge liegen. Gruss JensM
Hallo Jens, sorry, da habe ich mich dumm ausgedrückt, mit MSB meinte ich das Bit. Ich sende nur vereinzelte Bytes und da wird eben das höchstwertige Bit zuerst gesendet und diese Reihenfolge hätte ich gerne durch eine Umkonfiguration eleganter geändert, da ich auf eine Änderung des angeschlossenen Gerätes keinen Einfluss habe. Gruss, Armin
welchens System braucht denn die Bits andersrum?
Peter schrieb: > welchens System braucht denn die Bits andersrum? so wie es aussieht braucht sein System die Bits doch "richtigrum" nach Standard, also LSB zuerst...
ArminD schrieb: > Ich sende nur vereinzelte Bytes und da wird eben das höchstwertige Bit > zuerst gesendet Es ist mit ziemlicher Wahrscheinlichkeit auszuschließen, daß das so ist. Da geht entweder mit Deiner Messtechnik, Deiner Hardware oder Deiner Diagnose irgendwas schief; die normale PC-Hardware-UART kann die Daten nur in einer standardisierten Reihenfolge versenden, und bei der wird immer das niederwertigste Bit (also Bit 0) als erstes übertragen. Könnte es sein, daß Du für Deinen µC statt eines korrekten RS232-Pegelwandlers irgendeine selbstgefrickelte Lösung verwendest, die nicht invertiert?
Hi zusammen, danke für die Hilfe. Der PC sendet LSBit zuerst. Das war eine fehlinterpretation meinerseits, zu blöd zum Bitzählen. An der MCU-Hardware habe ich nicht gemessen, die ist zu und gehört mir nicht. Also habe ich am seriellen Kabel gemessen und Ruhepegel und somit Start/Stop falsch gesehen. Sorry for inconvenience. Danke und Gruss, Armin
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.