COM-Port Bitreihenfolge tauschen in VB2008 Express

Gast #2073958
Lesenswert?

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
Gast #2073993
Lesenswert?

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
Gast #2074028
Lesenswert?

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
Persönliche Seite #2074075
Lesenswert?

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?
Gast #2074270
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren