|
|
我想用pcDuino 与 RF24GL01 的模块通讯。发现一个问题,编译的时候出现SPI的库不兼容的情况。
标准的SPI 库:
class SPIClass {
public:
inline static byte transfer(byte _data);
// SPI Configuration methods
inline static void attachInterrupt();
inline static void detachInterrupt(); // Default
static void begin(); // Default
static void end();
static void setBitOrder(uint8_t);
static void setDataMode(uint8_t);
static void setClockDivider(uint8_t);
};
pcDuino 上的SPI 库
class SPIClass {
public:
SPIClass();
~SPIClass();
void begin();
void end();
void setBitOrder(int);
void setDataMode(int);
void setClockDivider(int);
char transfer(char val, int transferMode);
private:
int _fd;
int _speed;
};
Mirf的库调用的transfer(byte _data); 是一个参数,而pcDuino上的是 char transfer(char val, int transferMode); 两个参数。
并且其它的函数也不相同。
编译的时候出现:
root@ubuntu:/home/ubuntu/arduino# make
g++ -I/home/ubuntu/arduino -I/home/ubuntu/arduino/hardware -I/home/ubuntu/arduino/hardware/arduino -I/home/ubuntu/arduino/hardware/arduino/cores -I/home/ubuntu/arduino/hardware/arduino/cores/arduino -I/home/ubuntu/arduino/hardware/arduino/variants -I/home/ubuntu/arduino/hardware/arduino/variants/sunxi -I/home/ubuntu/arduino/libraries -I/home/ubuntu/arduino/libraries/Serial -I/home/ubuntu/arduino/libraries/SPI -I/home/ubuntu/arduino/libraries/Mirf -I/home/ubuntu/arduino/libraries/Wire -c libraries/Mirf/MirfHardwareSpiDriver.cpp -o libraries/Mirf/MirfHardwareSpiDriver.o -Wno-deprecated-declarations
libraries/Mirf/MirfHardwareSpiDriver.cpp: In member function irtual uint8_t MirfHardwareSpiDriver::transfer(uint8_t)
libraries/Mirf/MirfHardwareSpiDriver.cpp:3:26: error: no matching function for call to PIClass::transfer(uint8_t&)
libraries/Mirf/MirfHardwareSpiDriver.cpp:3:26: note: candidate is:
/home/ubuntu/arduino/libraries/SPI/SPI.h:41:8: note: char SPIClass::transfer(char, int)
/home/ubuntu/arduino/libraries/SPI/SPI.h:41:8: note: candidate expects 2 arguments, 1 provided
libraries/Mirf/MirfHardwareSpiDriver.cpp: In member function irtual void MirfHardwareSpiDriver::begin()
libraries/Mirf/MirfHardwareSpiDriver.cpp:9:22: error: PI_2XCLOCK_MASKwas not declared in this scope
make: *** [libraries/Mirf/MirfHardwareSpiDriver.o] Error 1
iver.cpp -o libraries/Mirf/MirfHardwareSpiDriver.o -Wno-deprecated-declarationsr
libraries/Mirf/MirfHardwareSpiDriver.cpp: In member function irtual uint8_t MirfHardwareSpiDriver::transfer(uint8_t)
libraries/Mirf/MirfHardwareSpiDriver.cpp:3:26: error: no matching function for call to PIClass::transfer(uint8_t&)
libraries/Mirf/MirfHardwareSpiDriver.cpp:3:26: note: candidate is:
/home/ubuntu/arduino/libraries/SPI/SPI.h:41:8: note: char SPIClass::transfer(char, int)
/home/ubuntu/arduino/libraries/SPI/SPI.h:41:8: note: candidate expects 2 arguments, 1 provided
libraries/Mirf/MirfHardwareSpiDriver.cpp: In member function irtual void MirfHardwareSpiDriver::begin()
libraries/Mirf/MirfHardwareSpiDriver.cpp:9:22: error: PI_2XCLOCK_MASKwas not declared in this scope
求高手指点一下,多谢。
|
|