Arduino ne peut pas lire correctement Série

Bien, j'ai googlé obtenir une chaîne de Série avec Arduino et je n'ai pas eu la chance, même la copie et le collage d'exemples.

Je vais essayer d'obtenir une chaîne de caractères de la Série. Voici mon code:

void setup() {
    Serial.begin(9600);
    Serial.write("Power On");
}

void loop()
{
    while(!Serial.available());

    while (Serial.available() > 0) {
      Serial.write(Serial.read());
    }
    Serial.println();
}

Et c'est l'impression de caractère par caractère.

J'ai aussi essayé

char* read(int len) {
  while (!Serial.available());
  char str[len];
  int i = 0;
  while (i < len) {
    str[i] = '
char* read(int len) {
while (!Serial.available());
char str[len];
int i = 0;
while (i < len) {
str[i] = '\0';
int inByte = Serial.read();
Serial.println(inByte);
if (inByte == -1) {
return str;
} else {
str[i++] = inByte;
}
}
return str;
}
'
; int inByte = Serial.read(); Serial.println(inByte); if (inByte == -1) { return str; } else { str[i++] = inByte; } } return str; }

Et retourne 1 caractère à la fois (de série.print(inByte) donne -1 à chaque fois). Pourquoi la Série de fractionnement de chaque personnage?

Si j'entre "bonjour" et je l'appelle de série.read (), il donne un caractère dit alors il n'y a rien, puis donne un autre caractère et dit il n'y a rien.

Les ports série sont très lents. Généralement, vous obtenez un seul octet à la fois, puis plus rien pendant un moment. Vous aurez besoin de votre code, vous ne le font pas maintenant.

OriginalL'auteur Raekye | 2012-03-28