Hallo, ich empfange über die Uart die Zeichenkette 41 0C 12 BA\n . Nun möchte ich aus dieser Kette die beiden letzten Hex(12 und BA) rausholen und als int speichern. Würde das so richrig sein? int temp1 int temp2 uint8_t rx_buffer[128]; sscanf(rx_buffer,"%*s %*s %X %X",&temp1,&temp2); Danke und Gruss
sieht ok aus. Außer, daß zu %x eigentlich unsigned int gehört, nicht int. Ach ja, und ein paar Semikolon fehlen natürlich :-) PS: Was auch fehlt, ist der Rückgabewert von sscanf(). Daran kann man erkennen, wenn es nicht geklappt hat und entsprechend reagieren anstatt mit Phantasiewerten weiter zu arbeiten.
Danke für die Antwort!! Muss der Rückgabewert dringend sein? Nur aus Interesse?! Gruss
Wenn du dir absolut sicher bist, daß die Eingabe vernünftig ist, kann man den Rückgabewert ignorieren. Aber was ist schon sicher außer dem Tod? Deshalb ist es im Zweifelsfall immer besser, unsinnige Eingaben zu erkennen und wie auch immer zu reagieren, als unbemerkt mit unsinnigen Werten weiter zu rechnen. An solchen Dingen sieht man, wer pfuscht.
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.