Arduino +处理“握手”问题

时间:2014-06-29 15:20:53

标签: arduino processing

我遇到一个问题,即处理和Arduino通过同一个串口相互通信。为了压缩我的问题,我编写了一个简单的程序,其中Processing发送“Processing:Hello!”每一秒,Arduino发送“Arduino:你好!”每一秒,都到同一个串口。这是代码:

处理代码:

 import processing.serial.*; //import the Serial library
 Serial mySerial;  //the Serial port object

void delay(int time)
{
  int start = millis();
  while (millis() - start < time){}
}

void setup() 
{
  size(200, 200);
  println(Serial.list());
  mySerial = new Serial(this, Serial.list()[9], 9600);
  println(Serial.list()[9]);
  mySerial.bufferUntil('\n');
}

void serialEvent( Serial mySerial) 
{
  mySerial.write("Processing: Hello!");
  delay(1000);
}

ARUDINO代码:

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

void loop()
{
  Serial.println("Arduino: Hello there!");
  delay(1000);
}

我认为我应该在Arduino草图的Serial监视器中看到的是:

"Arduino: Hello there!"
"Processing: Hello!"
"Arduino: Hello there!"
"Processing: Hello!"
"Arduino: Hello there!"
"Processing: Hello!"
...

我实际看到的是:

"Arduino: Hello there!"
"Arduino: Hello there!"
"Arduino: Hello there!"
"Arduino: Hello there!"
...

好吧,也许Serial监视器只监视Arduino输出。那么,还有其他方法可以在Arduino端查看Processing的输出吗?

2 个答案:

答案 0 :(得分:1)

Arduino中的串行监视器就像一个单独的终端程序,因此它和您的Processing sketch正在竞争与Arduino相同的串行连接(看起来串行监视器正在获胜。

Arduino“示例”包含一个名为“SerialCallResponse”的示例。它包括处理代码,以准确演示您要执行的操作。 Arduino附带的例子对于这些基本的东西非常完整;绝对值得一试。

(另外,在处理草图中,当调用serialEvent时,您不会读取串行输入 - 因此即使没有串行监视器冲突,您也永远不会看到任何Arduino响应。请参阅上面引用的示例。)

答案 1 :(得分:0)

我以前曾经发生过这种情况。如果您具有arduino网站上的zip版本,则可以重新安装IDE。