无法获取我的Arduino代码来读取和发送字节数组(Arduino Mega 2560)

时间:2017-12-15 22:21:39

标签: arduino

这是我的电脑和我的Arduino之间的沟通。计算机通过GUI将命令发送到Arduino Mega 2560.GUI代码用C#编写。

希望有人能搞清楚。我做错了什么?感谢。

此外:起始字节为0x80,命令字节为0x81,单位字节为0x01,保留字节为0x0,停止字节为0x3F。字节必须按此顺序排列。当读取5的数组时,它必须执行它并将其发送回GUI。

void handleDoorOpen(char one);
void handleDoorClose(char one);

void setup() {
  pinMode(13, OUTPUT);// define buttonPin. E.g. 13.
  Serial.begin(9600); // define your self
}

#define MAX_LENGTH 16
char data[MAX_LENGTH]; // Data array

void loop() {
  int count = 0;
  while (Serial.available() > 0) {
    // read the incoming byte:
    char incomingByte = (char)Serial.read();
    data[count] = incomingByte;
    count++;
    delay(25);
  }
  if (count >= 5 && data[0] == 0x80) {
    switch (data[1]) {
      case 0x81:
        handleDoorOpen(data[2]); // data[2] is unit
        Serial.write(data, count); // Send response back to C# wpf
        break;
      case 0x82:
        handleDoorClose(data[2]); // data[2] is unit
        Serial.write(data, count); // Send response back to C# wpf
        break;
      default:
        break;
        count = 0;
    }
  }
}

void handleDoorOpen(char one) {
  Serial.write(one);
}

void handleDoorClose(char one) {
  Serial.write(one);
}

这是我从编译器获得的错误/警告文本:

C:\Users\Rasef\OneDrive\Dokumenter\Arduino\gui_v_2\gui_v_2.ino: In function     'void loop()':

C:\Users\Rasef\OneDrive\Dokumenter\Arduino\gui_v_2\gui_v_2.ino:38:8:  warning: case label value exceeds maximum value for type

case 0x81:

    ^

C:\Users\Rasef\OneDrive\Dokumenter\Arduino\gui_v_2\gui_v_2.ino:44:8: warning: case label value exceeds maximum value for type

case 0x82:

    ^

0 个答案:

没有答案