0

首先,很抱歉标题混乱。我正在尝试在我的 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(string) 什么都不返回,控制台屏幕留空。

4

2 回答 2

0

使用Serial.print(string);而不是 println()

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

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

于 2013-02-09T15:19:24.747 回答
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); 
    }

}
于 2013-02-13T12:33:33.933 回答