Konvertieren von char* , uint8_t

Übertrage ich Nachricht über ein CAN-Protokoll.

Zu tun, die CAN-Nachricht benötigt Daten Typ uint8_t. Also muss ich konvertieren, meine char* , uint8_t. Meine Forschung auf dieser Website, ich erstelle code :

    char* bufferSlidePressure = ui->canDataModifiableTableWidget->item(6,3)->text().toUtf8().data();//My char*

    /* Conversion */
    uint8_t slidePressure [8];
    sscanf(bufferSlidePressure,"%c",
        &slidePressure[0]);

Wie Sie sehen können, meine char* müssen fit in sliderPressure[0].

Mein problem ist, dass selbst, wenn ich keine Fehler während der Kompilierung, die Daten in slidePressure sind völlig falsch,. In der Tat, ich test es mit einem char* = 0 and I 've got unknow Zeichen ... Also ich denke, das problem muss von Bekehrung.

Meine Daten können Bool, Uchar, Ushort and float.

Vielen Dank für Ihre Hilfe.

"char* = 0" bedeutet "bufferSlidePressure == 0"? Wenn dem so ist, werden keine Daten umgewandelt werden.
Es bedeutet bufferSlidePressure = '0'
bitte zeigen Sie den spezifischen input& output-Wert. Der folgende code zeigt den richtigen Wert: char* buf = "0"; uint8_t slide[8]; sscanf(buf, "%c", &slide[0]); printf("%d", slide[0]);

InformationsquelleAutor Evans Belloeil | 2014-08-18

Schreibe einen Kommentar