首页 文章

Arduino处理“握手”问题

提问于
浏览
2

我有一个问题,正在处理和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草图的串行监视器中看到的是:

"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

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

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

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

  • 1

    我之前遇到过这种情况 . 如果你有arduino网站的zip版本,你可以重新安装IDE .

相关问题