我正在尝试制作一个Arduino库,以便在整个几个草图中使用该构建,而我一直无法弄清为什么我总是收到这个错误。在多个论坛上搜索都没有有效的答案。这是我的代码:

charLCD.h:

#ifndef charLCD
#define charLCD

#include "Arduino.h"
class charLCD
{
  public:
    charLCD(int pin1,int pin2,int pin3,int pin4,int enable);
    void sendChar(unsigned char c);

  private:
    int _pin1;
    int _pin2;
    int _pin3;
    int _pin4;
    int _enable;



};
#endif

charLCD.cpp:
#include "Arduino.h"
#include "charLCD.h"
#include <limits.h>
charLCD::charLCD(int pin1,int pin2,int pin3,int pin4,int enable) {
  _pin1 = pin1;
  _pin2 = pin2;
  _pin3 = pin3;
  _pin4 = pin4;
  _enable = enable;

}

void sendChar(unsigned char c) {
    // Send char to item
}


char* chartobin ( unsigned char c )
{
    static char bin[CHAR_BIT + 1] = {0};
    int i;

    for ( i = CHAR_BIT - 1; i >= 0; i-- )
    {
        bin[i] = (c % 2) + '0';
        c = c/2;
    }

    return bin;
}

问题出在我在 header 中定义构造函数的那一行上。

最佳答案

因为

#define charLCD

这是您的编译器看到的:
class
{
  public:
    (int pin1,int pin2,int pin3,int pin4,int enable);
    void sendChar(unsigned char c);

  private:
    int _pin1;
    int _pin2;
    int _pin3;
    int _pin4;
    int _enable



};

::(int pin1,int pin2,int pin3,int pin4,int enable) {
  _pin1 = pin1;
  _pin2 = pin2;
  _pin3 = pin3;
  _pin4 = pin4;
  _enable = enable;

}

// ...

选择一个更好的头球后卫。

您还需要限定成员函数的定义:
void charLCD::sendChar(unsigned char c) {
    // Send char to item
}

07-28 04:41