Arduino для цикла не работает - PullRequest
0 голосов
/ 05 апреля 2019

Что я пытаюсь сделать, это преобразовать строку из последовательного ввода в отдельные слова, обнаружив пробелы между словами:

String input;
char split[]{};
String output;
String product;
int inputSize;

void setup() {
    Serial.begin(9600);
    Serial.println("ready");
}

void loop() {
    if (Serial.available() > 0) {
        input = Serial.readString();
        input.toCharArray(split, 8);
        inputSize = sizeof(input);

        for (int i = 0; i < inputSize; i++){
            if (isSpace(split[i])) {
                product = output;
                output = "";
                Serial.println(product);
            }else{
                output = output + split[i];
            }
        }
    }
}

Я пытаюсь сделать, это преобразовать строку из последовательноговводить в отдельные слова, обнаруживая пробелы между словами, он должен печатать все слова, отправленные на последовательный монитор, разделенные на разные строки.

Однако иногда он отправляет одно слово из входной строки, а иногда не отправляет, и этонакапливается и отправляет сразу несколько слов без пробелов

1 Ответ

0 голосов
/ 05 апреля 2019

Используйте следующий код, вы получите строку, разбитую на слова

String output;

void setup() {
    Serial.begin(9600);
    Serial.println("ready");
}

void loop() {
    if (Serial.available() > 0) {
        char input = Serial.read();
        if((input == ' ')){
          Serial.println(output);
          output = "";
        }else
        output+=input;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...