aufbau der Nachricht für Rs232

OP #5514031
Lesenswert?

tag ihr wissenden,

ich bin neu in C- Programmierung und muss ein Code zur Datenübertragung 
schreiben. Nach der tastatureingabe wird die ensprechende Kommendo zu 
Rs232 geschickt. Laut des datenblattes sollte besteht die Nachricht aus 
8 Data Bits, 1 Stop Bits, CR, LF, CRC, ohne parity und Flow control.

was mich gerade irritiert ist, wie ich diese Nachricht aufbauen soll.

zB. wenn data (also was ich schicken möchte) = 0x20;
<STX><lenght><data><CRC><CR><LF><><><ETX>

könnte mir einer bisschen erklären wie man das macht, und was man drauf 
achten muss.

ich habe schon einige Sachen in Internet gelesen und komme damit aber 
immer noch nicht klar.

PS: ich arbeite mit Eclipse auf Windows.
Gast #5514112
Lesenswert?

Und ich würde mich freuen, falls Du die Netiquette mal lesen würdest. 
Darauf habe ich Dich schon vor rund 6 Wochen anlässlich Deiner ersten 
Frage hier hingewiesen.

In der Zwischenzeit lese ich von Dir nur Fragen, die mich auf den 
Gedanken bringen, dass Du tatsächlich und wortwörtlich "gezwungen" bist 
dies oder jenes zu tun - nicht aber, dass Du dazu in der Lage bist. 
Wobei in diesem Fall derjenige, der den Zwang auf Dich ausübt irgendwie 
auch einen Mangel an Urteilsvermögen hat. So etwas nennt man "tote 
Pferde prügeln".
Gast #5514127
Lesenswert?

@Theor
ich würde mal annehmen, das kingkong_18 einfach nicht deutscher 
Muttersprachler ist so wie sich das ließt

>Laut des datenblattes sollte besteht die Nachricht aus
>8 Data Bits, 1 Stop Bits, CR, LF, CRC, ohne parity und Flow control.
wo kommt das "Datenblatt" denn her?
Klingt für mich SEHR seltsam DENN : CRC, LF und CRC haben nichts mit der 
RS232 zu tun. Sie sind Teil eines Protokolls welche eventuell über die 
RS232 geht.
Gast #5514165
Lesenswert?

Theor schrieb:
> Kaiser K. schrieb:
>> tag ihr wissenden,
>>
>> ich bin neu in C- Programmierung und muss ein Code zur Datenübertragung
>> schreiben. [...]
>
> Das musst Du nicht. Es darf Dich niemand dazu zwingen. Mach einfach
> was Anderes.

Kaiser K. schrieb:

> Auf eine hilfreiche Antwort würde ich mich herzlich freuen.

Kriegst Du von dem nicht. Blende ihn einfach aus, das ist das Beste.
Gast #5514181
Lesenswert?

Kaiser K. schrieb:
> also ich arbeite mit einem fertigen Messgerät.

Dann sag' uns doch, wie das heißt und wo man die Doku findet.


Kaiser K. schrieb:
> zB. wenn data (also was ich schicken möchte) = 0x20;
> <STX><lenght><data><CRC><CR><LF><><><ETX>

Mit dieser "Beschreibung" kann man recht wenig anfangen. Ich  würde 
vermuten, dass das Kommando um 0x20 zu schicken so in etwa aussehen 
müsste:
1
uint8_t buffer[] = {0x02, 0x01, 0x20, ???, 0x0D, 0x0A, ???, ???, 0x03};

STX und ETX müssten 0x02 und 0x03 sein.
CR und LF sind 0x0D und 0x0A.
Wie die CRC zu berechnen ist, steht in der Dokumentation des unbekannten 
Messgerätes.
Und was die zwei leeren "<>" zu bedeuten haben - keine Ahnung...
Gast #5514215
Lesenswert?

Kaiser K. schrieb:
> Laut des datenblattes sollte besteht die Nachricht aus
> 8 Data Bits, 1 Stop Bits, CR, LF, CRC, ohne parity und Flow control.

Das steht so ganz sicher NICHT im Datenblatt. CR und LF sind 
ASCII-Zeichen, CRC ist vermutlich auch ein Zeichen oder auch zwei, ohne 
Unterlagen über das Gerät weiss man das nicht.

Data Bits, Stop Bits, Parity beschreiben dagegen, wie so ein Zeichen 
gesendet wird, wobei das wichtigste fehlt: die Baudrate.

Flow Control beschreibt, wie das Senden gesteuert wird, z.B. mit 
RTS/CTS.

STX und ETX sind ebenfalls ASCII-Zeichen wie CR und LF. Dabei erhebt 
sich die Frage, ob die Steuerzeichen als Daten vorkommen dürfen, 
normalerweise nicht.

Irgendwie hast du einfach Wörter aus verschiedenen Stellen des 
Datenblatts bunt zusammengemixt, das Ergebnis hat mit dem ursprünglichen 
Datenblatt keine Ähnlichkeit mehr und ist unverständlich.

Georg
#5514243
Lesenswert?

Kaiser K. schrieb:
> Laut des datenblattes sollte besteht die Nachricht aus
> 8 Data Bits, 1 Stop Bits, CR, LF, CRC, ohne parity und Flow control.

Das ist bullshit.
Ein Zeichen besteht aus Startbit, 8 Datenbits und 1 Stopbit (in diesem 
Fall).
CR und LF sind Steuerzeichen, die aber genau so gesendet werden wie 
Buchstaben. Die Gegenseite setzt diese Zeichen normalerweise in die 
entsprechenden Kommandos um (z.B. LF = line feed).
Die Baudrate wurde schon erwähnt, ebenso das Handshake entweder RTS/CTS
oder xon/xoff.
Über RS-232 gibt es tonnenweise Literatur.
#5517339
Lesenswert?

Mein Gott, hört doch auf, euch an Nebensächlichkeiten aufzuhängen. Wir 
sind hier doch keine Firma, in der es gilt eine Spezifikation zu 
erstellen. Grüße auch an die unsäglichen Zwangsgestörten, die es nur 
schaffen, einen Beitrag zu bewerten, ohne an der Diskussion 
teilzunehmen. Wie frustriert muss man sein?

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