Forum: PC-Programmierung HexZahl senden kein Asciizeichen


von Freak (Gast)


Lesenswert?

Moin.

Ich möchte Hexzahlen über die RS232 senden. Dazu habe ich sprint 
genommen, aber die Hexzahlen werden, in Ascii Zeichen umgewandelt.
so z.B.
1
sprintf(buffer, "%0x", STX);

Also ich will z.B. ne 02 senden (STX) und keine 32 (char 2)
Ich hab keine Idee mehr, wie ich dass umgehen kann. Die suche hat mir 
leider auch nix gebracht.

THX

von Purzel H. (hacky)


Lesenswert?

Dann fuell die Byte doch selbst ein. Ohne sprintf() und solchen Muell.

von Freak (Gast)


Lesenswert?

Sieht schon besser aus :)

von Freak (Gast)


Lesenswert?

hmm die Zuweisung der Bytes ist richtig, aber wenn ich den com port 
sniffe, sind nur die ersten beiden Byte korrekt und die werden dann 
wiederholt, aber ich will mehr Byte senden

von Andreas B. (Gast)


Lesenswert?

Abgesehen von der Möglichkeit, direkt in das char-Array zu schreiben, 
kann man beliebige Zeichen in einem String-Literal einfügen mit "\nnn", 
wobei n eine Oktalziffer ist. Alternativ mit "\xnn" mit n als 
Hexadezimalziffer.

Das Beispiel STX also "\002" oder "\x02".

Um ein char per printf einzufügen nutzt man %c.

von Freak (Gast)


Lesenswert?

habe die Byte direkt zu gewiesen. hat Problemlos geklappt, aber da das 
dritte Byte ein Nullbyte war, hat der schniffer immer wieder nur die 
ersten beiden Byte gelesen!

Danke für den sinmplen gedanklichen anstupser ;)

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
Noch kein Account? Hier anmelden.