Arduino for循环未运行

时间:2019-04-05 08:44:13

标签: arduino

我想做的是通过检测单词之间的空格,将来自串行输入的字符串转换为单个单词:

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 :(得分:0)

使用以下代码,您将把字符串分成单词

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