Raspberry Pi и код nRF24l01 c ++ с использованием RF24.h - PullRequest
0 голосов
/ 01 октября 2019

Я новичок в Raspberry Pi, мне нужно обновить проекты Arduino.

Я пытаюсь поэкспериментировать с получением данных о моем Raspberry Pi от Arduino.

Когда я пытаюсь запустить программу, происходит сбой. Он основан на онлайн-учебнике

#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;
      }
    }
  }
}

учебник

Но я получил ошибку

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

...