Ich versuche, eine serielle Daten mit 4 Zeichen von Arduino an den Raspberry Pi mit den folgenden Codes zu lesen.JAVA - Serielle Daten empfangen ungültiges Zeichen
int serialPort = Serial.serialOpen("/dev/ttyACM0",9600);
if(serialPort==-1){
serialPort = Serial.serialOpen("/dev/ttyACM1",9600);
}
char[] charArray = {' ', ' ', ' ', ' '}; //Initializing char array
Serial.serialPuts(serialPort, 8 + "x"); //Sending Request Code to Arduino
int received = 0;
while(received == 0){ //Wait for input
for(int i = 0; i < 4; i++){
charArray[i] = (char)Serial.serialGetchar(serialPort);
received = 1;
}
}
String tempString = new String(charArray);
System.out.println(tempString);
jedoch auf das „tempString“ zu lesen, es zeigt diese an Stelle der von dem Arduino gesendeten Daten.
Der Arduino sendet die richtigen Daten, so glaube ich nicht, dass das Problem in Arduino ist. Dieser Code funktioniert mit 1-Zeichen-Daten. Was denkst du ist falsch mit diesen Codes?
P.S. Die Codes funktionieren, wenn sie in einer Schleife ausgeführt werden, obwohl die erste Ausführung ungültige Zeichen ausgibt
ich beide UTF-8 und ISO-8858-1 und beide gedruckten leere Ausgänge verwendet. Weißt du wie ich das lösen kann oder wie kann ich wissen, welchen Zeichensatz ich benutzen soll? Danke –
Versuchen Sie US-ASCII. Nur eine Vermutung von https://www.arduino.cc/en/Tutorial/SerialCallResponseASCII –
Ich versuchte US-ASCII und die Ausgabe ist immer noch leer. Obwohl dies das Problem, das ich habe, nicht löst, habe ich anfangs meinen Code am Anfang meines Projekts ausgeführt und die Ausgabe verworfen, da nur die erste Ausführung unzulässige Zeichen enthält. Die nächsten Ausführungen oder Instanzen der Codes Ausgabe sind alle in Ordnung. –