在串行端口中发送/接收数据

时间:2013-09-26 18:12:10

标签: c# serial-port arduino

我有一些代码允许我通过串口使用Arduino接收和发送数据

void setup() {
  Serial.begin(1200);
  Serial1.begin(1200);
}

void loop() {
  // Send data
  if (Serial.available() > 0) {
    char inChar = Serial.read();
    //...
  }
  else {
    Serial1.println(0xAA); // need to transmit always
    digitalWrite(13, HIGH); delay(5);
    digitalWrite(13, LOW); delay(5);
  }

  // Receive data
  if (Serial1.available() > 0) {
    char inChar = Serial1.read();
    //...
  }
}

我需要这一行Serial1.println(0xAA);因为我有一个电路需要总是传输一些东西才能工作(噪音问题)。如果我没有else声明,它的效果很好,但我需要让串口始终传输一些东西。

问题在于我的C#应用​​程序(C#中的my send/receive code),我键入要发送的消息,我无法发送任何数据。我认为这是因为缓冲区总是满的。我读了一些关于双缓冲和线程的内容,但我不知道它是如何使这个工作,也不知道我需要改变的一面(arduino或c#)。任何想法?

注意:没有 else 声明,everithing工作正常。现在我需要一些方法让其他代码与它一起工作。

0 个答案:

没有答案