极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10962|回复: 4

pcDuino with RF24L01 问题求教

[复制链接]
发表于 2013-9-26 00:21:51 | 显示全部楼层 |阅读模式
我想用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


求高手指点一下,多谢。


回复

使用道具 举报

 楼主| 发表于 2013-9-26 00:39:50 | 显示全部楼层
MirfHardwareSpiDriver.cpp.1duino/libraries/Mirf# diff MirfHardwareSpiDriver.cpp  
3c3
<       return SPI.transfer(data, SPI_CONTINUE);
---
>       return SPI.transfer(data);
9c9
<       SPI.setClockDivider(SPI_CLOCK_DIV2);  // SPI_2XCLOCK_MASK   eq  SPI_CLOCK_DIV2  0x01
---
>       SPI.setClockDivider(SPI_2XCLOCK_MASK);
16d15
<

做这两个修改后,编译通过。但不知道能不能用。

回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-9-26 01:10:53 | 显示全部楼层
搞定了,截图为证。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2013-9-26 10:26:04 | 显示全部楼层
{:soso_e179:}{:soso_e179:}{:soso_e179:}{:soso_e179:}{:soso_e179:}{:soso_e179:}
很强大
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-19 21:42:26 | 显示全部楼层
今天又看了一下,和用Arduino的做了对比,完全一样。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-10 05:29 , Processed in 0.046163 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表