Arduino串行输入字符串分布在多行上

时间:2013-02-09 15:14:10

标签: arduino serial-communication

首先,对于令人困惑的标题感到抱歉。我正在尝试在我的arduino上创建一个简单的程序,它回应从串行监视器接收的串行输入。我的代码是这样的:

String string= "";
String string2 = "";

void setup()
{
    Serial.begin(9600);

}

void loop() {


    string = "";

    while(Serial.available() > 0)
    {
        string += (char) Serial.read();
        Serial.flush();

    }


    if(string != "")
    {
        Serial.println(string); 
    }

}

但是当我上传它并打开串行监视器并输入任何内容时,它会分布在几行上,如下所示:

Input: Why are you doing this?

W
hy 
are y
ou doin
g this?

我已经被困在这几个小时了。我的设备是Arduino Uno(官方版),我在Windows 7上运行。提前感谢您的帮助。

编辑:Serial.print(字符串)不返回任何内容,将控制台屏幕留空。

2 个答案:

答案 0 :(得分:0)

使用Serial.print(string);代替println()

  

println()将数据作为人类可读的ASCII文本打印到串行端口,后跟回车符(ASCII 13或'\ r')和换行符(ASCII 10,或者'\ n')。

参考:http://arduino.cc/en/Serial/Println

答案 1 :(得分:0)

在你的while循环中稍微延迟一下 所以代码是:

String string= "";
String string2 = "";

void setup()
{
    Serial.begin(9600);

}

void loop() {


    string = "";

    while(Serial.available() > 0)
    {
        string += (char) Serial.read();
        Serial.flush();
        delay(10);

    }


    if(string != "")
    {
        Serial.println(string); 
    }

}