Diese Frage ist ein Duplikat dieser question sein kann oder diese questionFehler beim Überprüfen Array-Element auf null
Ich bin mit C und versucht, mit einem Gerät zu kommunizieren, die auf die serielle Kommunikation funktioniert. Ich lese ein einzelnes Byte und speichere es in einem Array und überprüfe dann das Array-Element auf '\0'
(0x00
). Wenn es '\0'
ist, bedeutet das, dass die Daten jetzt nicht verfügbar sind.
volatile int rxFlag = 0;
volatile int index = 0;
void function() //event based function, whenever a byte is received
{
Rx[index] = ReadUSART(); //reading a byte
if(Rx[index] == '\0') //checking if its null
{
rxFlag = 1; //raise a flag
}
index++; //increment index
}
Unter dem Screenshot der Rx ist:
Im Bild, das Sie die von Rx[0]-Rx[24]
sehen kann er Daten enthält, aber Rx[25]
ist ein Null-Terminator (0x00
) und der rxFlag
sollte auf 1 gesetzt. Aber es ist nicht festgelegt.
Was ist die andere Möglichkeit zu überprüfen, ob das Array-Element '\0'
ist.
Haben Sie versucht, einfache Debug-Code hinzufügen, um zu sehen, was 'Rx [25]' Ausgänge? –
Was ist der Indexwert zum Zeitpunkt des Screenshots? Es scheint so, als hättest du '25' Zeichen erhalten, so dass zuletzt überprüft wurde, dass 'Rx [24]' ... – LPs
Du kannst einfach' if (! Rx [index]) rxFlag = 1; 'als * nul-Zeichen *' überprüfen '\ 0'' hat den numerischen Wert' 0 '. –