C++ 为Arduino编程自定义类时出现错误“未命名类型”

C++ 为Arduino编程自定义类时出现错误“未命名类型”,c++,arduino,C++,Arduino,为Arduino编写新库后,编译器无法识别该新类并返回错误 BinaryCounter:15:错误:“Binary”未命名类型 以下是产生错误的文件。该类在Binary.h中定义,在Binary.cpp中实现,并在BinaryCounter.ino中使用 #include <Binary.h> int pins[] = {2,3,4,5,6}; int numPins = 5; Binary dis(pins, numPins); void setup() { } void

为Arduino编写新库后,编译器无法识别该新类并返回错误

BinaryCounter:15:错误:“Binary”未命名类型

以下是产生错误的文件。该类在Binary.h中定义,在Binary.cpp中实现,并在BinaryCounter.ino中使用

#include <Binary.h>

int pins[] = {2,3,4,5,6};
int numPins = 5;

Binary dis(pins, numPins);

void setup() {
}

void loop() {  
  int loopEnd = 1<<numPins;
  for (int i = 0; i < loopEnd; i ++) {
    dis.display(i);
    delay(200);
  }
}
二进制.h

#ifndef Binary_h
#define Binary_h

#include "Arduino.h"

class Binary {
  public:
    Binary (int pins[], int numPins);
    void display(int number);
    void clear();
  private:
    boolean *_values;
    int *_pins;
    int _numPins;
    void _update();
    void _setValues (int num);
};

#endif
二进制文件.cpp

#include "Binary.h"

Binary::Binary(int pins[], int numPins) {
  _values = new boolean[numPins];
  _pins = pins;
  _numPins = numPins;

  for (int i = 0; i < _numPins; i ++) {
    pinMode(_pins[i], OUTPUT);
    _values[i] = false;
  }

  _update();
}

void Binary::_update() {
  for (int i = 0; i < _numPins; i ++) {
    if (_values[i]) {
      digitalWrite(_pins[i], HIGH);
    } else {
      digitalWrite(_pins[i], LOW);
    }
  }
}

void Binary::_setValues (int num) {
  for (int i = 0; i < _numPins; i ++, num/=2) {
    _values[i] = ((num%2)==1);
  }
}

void Binary::display (int number) {
  _setValues(number);
  _update();
}

void Binary::clear() {
  display(0);
}
和BinaryCounter.ino

#include <Binary.h>

int pins[] = {2,3,4,5,6};
int numPins = 5;

Binary dis(pins, numPins);

void setup() {
}

void loop() {  
  int loopEnd = 1<<numPins;
  for (int i = 0; i < loopEnd; i ++) {
    dis.display(i);
    delay(200);
  }
}

在BinaryCounter文件中更改为quotes Binary.h。

在BinaryCounter文件中更改为quotes Binary.h。

库/BinaryCounter/目录中的.cpp和.h是吗?
您创建了keywords.txt文件吗?

是libraries/BinaryCounter/目录中的.cpp和.h吗?
您是否创建了keywords.txt文件?

尝试从公共类BinaryOops中删除public,这不是实际的代码,而是错误的修复。我将编辑从公共类BinaryOops中删除public的输出,这不在实际代码中,而是一个错误的修复。我将编辑文件Binary.h和Binary.cpp都位于arduino IDE包含在其包含路径中的库文件夹中。将文件添加到文件夹中并执行提供的更改不会删除错误。文件Binary.h和Binary.cpp都位于arduino IDE包含在其包含路径中的库文件夹中。将文件添加到文件夹中并执行提供的更改不会删除错误。