Arduino не может правильно прочитать Serial

Хорошо, я погуглил, чтобы получить строку из Serial с помощью Arduino, и мне не удалось даже скопировать и вставить примеры.

Я пытаюсь получить строку из Serial. Вот мой код:

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

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

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

И он выводит посимвольно.

Я также пробовал

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;
}

И он возвращает по 1 символу за раз (serial.print(inByte) дает -1 через раз). Почему серийный номер разделяет каждый символ?

Если я ввожу «привет» и вызываю serial.read(), он выдает символ, затем говорит, что ничего нет, затем выдает другой символ и говорит, что ничего нет.

6
задан dsolimano 26 October 2012 в 12:15
поделиться