wysylanie szestnastkowych cyfr do szeregowego portu.
Ostatnio zmodyfikowano 2014-03-11 17:31
tookie009 Temat założony przez niniejszego użytkownika |
wysylanie szestnastkowych cyfr do szeregowego portu. » 2014-03-11 14:55:46 Witam, mam urzadzenie podlaczone do usb, z ktorym to komunikacja odbywa sie za pomoca wysylania komand przedstawionych szesnastkowo. Tu maly przyklad takiego polecenia: 56 00 32 0C 00 0A 00 00
moje pytanie jak zapisac taka cyfre, zeby byla wyslana poprawnie. Wiem, ze mozna zapisywac kazde 2 bajty tak: 0x56 Mozna jednak zapisac tak caly ciag znakow, cos ala: 0x5600320C000A0000
albo po prostu jako string ?? Zdarzaly sie przypadki, ze jezeli bylo wyslane niepoprawne polecenie, to owe urzadzenie przestawalo dzialac, dlatego wole tu zapytac ;) |
|
Monika90 |
» 2014-03-11 15:57:22 Możesz zapisać jako string const char cmd[] = "\x56\x00\x32\x0C\x00\x0A\x00\x00";
albo tablicę (co jest prawie tym samym ) const char cmd[] = { 0x56, 0x00, 0x32, 0x0C, 0x00, 0x0A, 0x00, 0x00 };
moje pytanie jak zapisac taka cyfre, zeby byla wyslana poprawnie.
|
To nie jest cyfra, tylko ciąg liczb. Wiem, ze mozna zapisywac kazde 2 bajty tak: 0x56
|
Bajt to dwie cyfry szesnastkowe. |
|
tookie009 Temat założony przez niniejszego użytkownika |
» 2014-03-11 17:24:08 chodzilo mi o dwa bajty, czyli tam moze stac np. 0xFF ;) nie stanie sie nic, jezeli bede potem to petlo wysylal kolejne elementy tablicy? A teraz mam jeszcze jeden problem. Urzadzenie odpowiada mi potiwerdzeniem, co np. tak wyglada 56 00 32 0C 00 0A 00 00
Jak to odczytac? Moja proba odczytywania powodzi sie tylko do 1. zera... |
|
PsichiX |
» 2014-03-11 17:31:53 0xFF to nadal jeden bajt, 0xFFFF to już dwa bajty, ponieważ to jest zapis szesnastkowy, czyli jeden bajt jest opisywany dwoma znakami (0-9A-F). |
|
« 1 » |