我正在尝试在我的PC和处理环境的Arduino之间建立通信,但Arduino似乎没有收到我发送的任何消息。我加倍检查,我知道我可以收到来自Arduino的消息,但我不能发回任何东西。有谁知道如何解决这一问题?
这是我的处理测试代码:
import processing.serial.*;
Serial myPort;
void setup(){
myPort = new Serial(this, Serial.list()[0], 9600);
}
void draw(){
myPort.write("test");
while (myPort.available() > 0) {
String inByte = myPort.readString();
println(inByte);
}
}
这是我的Arduino测试代码:
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
String data;
void loop() {
// put your main code here, to run repeatedly:
//Serial.println("is running");
if (Serial.available() > 0) {
// read the incoming byte:
data = Serial.readString();
// say what you got:
Serial.print("I received: ");
Serial.println(data);
}
}
我很感激我能得到任何帮助!谢谢!
好的,在Arduino论坛上查看了几个不同的帖子后,我发现了问题所在。函数处理用于通过串行发送数据不会自动在字符串末尾包含返回字符。这很重要,因为Arduino在看到返回字符之前不会从串行缓冲区中读取。我所要做的只是将“\ r \ n”添加到我通过串行发送的每个字符串的末尾,这解决了问题!