如何让Arduino mega从计算机上的LabVIEW接收数据?

问题描述 投票:0回答:1

我目前正在尝试发送我的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;
    }
  }
}

enter image description here

根据我在 LabVIEW 中所做的操作,我希望在 Arduino 的串行监视器上看到“000”或“999”。串行监视器上没有显示任何内容。如果在 arduino IDE 中完成所有操作,则效果很好。即,如果我在串行监视器中输入“0”,监视器将打印“111”。

arduino labview
1个回答
0
投票

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,但未显示。

© www.soinside.com 2019 - 2024. All rights reserved.