使用RF24.h的Raspberry Pi和nRF24l01 C ++代码

时间:2019-10-01 16:55:08

标签: c++ raspberry-pi

我是Raspberry Pi的新手,我需要升级Arduino项目。

我正在尝试从Arduino接收Raspberry Pi上的数据。

当我尝试运行程序时,它失败。它受到在线教程的启发

#include <iostream>
#include <RF24/RF24.h>

RF24 radio(RPI_V2_GPIO_P1_22, RPI_V2_GPIO_P1_24, BCM2835_SPI_SPEED_8MHZ);
const uint8_t data_pipe[6] = "00001";

void setup(void) {
  radio.begin();
  radio.setRetries(15, 15);
  radio.setPALevel(RF24_PA_MAX);
  radio.openReadingPipe(1, data_pipe);
  radio.startListening();
}

int main(int argc, char** argv) {
  setup();

  while (true) {
    if (radio.available()) {
      int payload_size = radio.getDynamicPayloadSize();
      if (payload_size > 1) {
        char* payload = new char[payload_size + 1];
        radio.read(payload, payload_size);
        payload[payload_size] = '\0';
        std::cout << "data: " << payload << std::endl;
      }
    }
  }
}

tutorial

但是我出错了

terminate called after throwing an instance of 'int'
Aborted

当我调试它时,我发现方法radio.available()返回-1。我真的不知道收音机中的端口设置不正确。我有Raspberry Pi 2模型B v1.1。

我将CE和CS连接到第一行的第11和12脚。我不确定编号。我也不知道如何在这里设置。

RF24 radio(RPI_V2_GPIO_P1_22, RPI_V2_GPIO_P1_24, BCM2835_SPI_SPEED_8MHZ);

我尝试了很多版本,包括

RF24 radio(22, 24, BCM2835_SPI_SPEED_8MHZ);

具有许多引脚编号组合(11 / 12、25 / 8)等。引脚排列显示了GPIO25和GPIO8。我真的不知道哪里出了问题。

有什么建议吗?

编辑:

我的引脚输出

enter image description here

0 个答案:

没有答案