char fromBluetooth[] = "zgr\r123\r";
int name_length = 0;
int pass_length = 0;
while (1)
{
if (fromBluetooth[name_length] == '\r')
{
break;
}name_length++;
}
char ssid_determined[name_length];
for (int i = 0; i < name_length; i++)
{
ssid_determined[i] = fromBluetooth[i];
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print(ssid_determined);
Dieser Code sollte auf dem LCD ein Ergebnis als "zgr" liefern, aber was ich auf dem LCD bekomme, ist "zgr!\r\r". Kann mir jemand erklären wie das geht?
HINWEIS: Dieses LCD-Objekt ist der LiquidCrystal-Typ von Arduino.
Zunächst einmal bin ich mir nicht sicher, wie Sie ein Array mit einer zur Laufzeit angegebenen Länge deklarieren. Das ist Standard-C, richtig?
Was wahrscheinlich Ihr Problem verursacht, ist, dass ssid_determined nicht nullterminiert ist. Die Größe von ssid_determined sollte name_length + 1 sein, und das letzte Zeichen sollte '\0' sein.
Tom Tischler