我有一些代码允许我通过串口使用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工作正常。现在我需要一些方法让其他代码与它一起工作。