首先,对于令人困惑的标题感到抱歉。我正在尝试在我的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(字符串)不返回任何内容,将控制台屏幕留空。
答案 0 :(得分:0)
使用Serial.print(string);
代替println()
println()将数据作为人类可读的ASCII文本打印到串行端口,后跟回车符(ASCII 13或'\ r')和换行符(ASCII 10,或者'\ n')。
答案 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);
}
}