Hallo zusammen Ich benötige wieder mal eure Hilfe! Ich schicken mit einem c-programmcode 4 bytes über die RS232-Schnittstelle. Hier ein Teil meines Codes: FILE* Fd; system("mode COM1: baud=19200 parity=n data=8 stop=1"); Fd = fopen("COM1:","w+"); fprintf(Fd,"%X%X%X%X",3,0,1,2); fclose(Fd); ich sende also 1. byte : 0x3, 2. byte : 0x0, 3. byte : 0x1, 4. byte : 0x2 Wenn ich diese Bites dan am anderen Ende auslese erhalte ich die Bytes: 1. byte : 0x33, 2. byte : 0x30, 3. byte : 0x31, 4. byte : 0x32! Kann mir das jemand weiterhelfen?? Gruss Mark
Mark Tensen schrieb: > ich sende also 1. byte : 0x3, 2. byte : 0x0, 3. byte : 0x1, 4. byte : > 0x2 nö, tust du nicht. Überleg doch mal, was das fprintf macht...
Na was rauskommt ist der hexwert von ASCII 3,0,1,2 0x33 = '3' 0x30 = '0' 0x31 = '1' 0x32 = '2' probier mal fprintf(Fd,"%X%X%X%X",0x3,0x0,0x1,0x2); K.
Du wandelst die Zahlen in ihre (hexadezimale) ASCII-Repraesentation um. Lies mal nach, was printf tut.
Wird es damit klarer? :-) -x-x-x-x- snip -x-x-x-x- $ cat a.c #include <stdio.h> main() { printf("%2.2X %2X %2X %2X\n",3,0,1,2); } $ ./a.out 03 0 1 2 -x-x-x-x-x-x-x-x-x-x-x- -Hans
ich fange an mehr zu verstehen aer funktionieren tut es immer no nicht! bin halt noch ein anfänger!
was soll dieser unsinn?
> system("mode COM1: baud=19200 parity=n data=8 stop=1");
man man schon in C Programmiert sollte man auch die funktionen verwenden
um die schnittstelle umzukonfigurieren.
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.