HEX conversion mit sprintf

Du könntest die Funktion z. B. folgendermaßen realisieren:

void checksum(char* csbuf, char *CSout){

  // Vorige Checksumme löschen
  int cs=0;
  // Ohne '

Aufrufen kannst du das dann folgendermaßen

char outBuf[100], CSout[4];

strcpy( outbuf, "NMEA-Datensatz ohne CS");
checksum(outbuf, CSout);
strcat( outbuf, CSout);
strcat( outbuf, "\r\n");
Serial.print(outbuf);

for (int n=1; n < strlen(csbuf)+1; n++) {
   // berechnen der Checksumme
   cs ^= csbuf[n];
 }  
 // Formatieren in zweistellig, führende Null in HEX
 sprintf(CSout, "*%02X\0" , cs);
}


Aufrufen kannst du das dann folgendermaßen

§DISCOURSE_HOISTED_CODE_1§