我目前正在尝试发送我的Arduino Mega,以便它从我的计算机上的labview接收数据。我只是想根据labview发送的内容在arduino的串行监视器上打印某些字符。
char labview = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
// Check if data is available to read from Serial Monitor
if (Serial.available() >= 3) {
labview= Serial.read();
if (labview == '0') {
// If "0" is received, print "111"
Serial.println("111");
return;
} else if (labview=='1') {
// If "1", print "999"
Serial.println("999");
return;
}
}
}
根据我在 LabVIEW 中所做的操作,我希望在 Arduino 的串行监视器上看到“000”或“999”。串行监视器上没有显示任何内容。如果在 arduino IDE 中完成所有操作,则效果很好。即,如果我在串行监视器中输入“0”,监视器将打印“111”。
LabView 可能发送的是整数 0 而不是字符串“0”,它们是不同的数值。我将首先在您的代码中更改它。 要进一步调试,只需让您的程序回显它收到的内容,如下所示:
void loop() {
// Check if data is available to read from Serial Monitor
if (Serial.available() >= 3) {
labview= Serial.read();
if (labview == 0) {
// If 0 is received, print "111"
Serial.println("111");
return;
} else if (labview == 1) {
// If 1, print "999"
Serial.println("999");
return;
} else {
Serial.print("received: '");
Serial.print(labview);
Serial.println("'");
}
}
}
您可能会发现这些引号之间没有任何内容,这是有道理的。查看 ascii 表,发现 0 映射到 NULL,但未显示。