Проблемы с полученными данными от NRF24L01 - PullRequest
0 голосов
/ 22 января 2019

Я использую NRF24L01 для беспроводной связи. Мой код передатчика:

#include  <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"

//int msg[1];
RF24 radio(2,9); // CSN, CE
const uint64_t pipe = 0xE8E8F0F0E1LL;

void setup(){
        Serial.begin(9600);
        radio.begin();
        radio.openWritingPipe(pipe);
        radio.setPALevel(RF24_PA_MIN);
        radio.stopListening();
        Serial.println("################## Set up complete ######################");
}

void loop(){
        const char data[] = "hello world!";
        radio.write(&data, sizeof(data));
        Serial.println("message sent");
        delay(1000);
}

Код моего получателя:

#include "nRF24L01.h"
#include "RF24.h"
#include "SPI.h"

RF24 radio(8,7); // (CSN, CE)
const uint64_t pipe = 0xE8E8F0F0E1LL;

void setup(){
        Serial.begin(9600);
        radio.begin(); // Start the NRF24L01
        radio.openReadingPipe(1,pipe); // Get NRF24L01 ready to receive
        Serial.print("pipe open ... ");
        radio.setPALevel(RF24_PA_MIN);
        radio.startListening(); // Listen to see if information received
        Serial.println("Listening: ready to recieve ...");
}

void loop(){
        Serial.print("checking for radio signal ... ");
        if (radio.available()){
                Serial.print("| radio available | ");
                char data[32] = ""; // delcare data
                radio.read(&data, sizeof(data)); // read data from transmitter
                Serial.println(data);   // print data to serial
        }
        else {
                Serial.println("   Nothing");   // print if nothing read
        }
        delay(500);
}

когда передатчик отправляет свои данные, получатель должен напечатать:

"checking for radio signal | radio available | "hello world!"

или когда передатчик не отправляет данные, получатель печатает:

checking for radio signal | nothing

однако получатель печатает:

b'checking for radio signal ...    Nothing\r\n'
b'checking for radio signal ...    Nothing\r\n'
b'checking for radio signal ... | radio available | \xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x04\x18\x03?\x01fpipe open ... \r\n'
b'checking for radio signal ... | radio available | \xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x04\x18\x03?\x01fpipe open ... \r\n'
b'checking for radio signal ...    Nothing\r\n'
b'checking for radio signal ...    Nothing\r\n'

Кто-нибудь знает, почему я не вижу «Привет, мир», а вместо этого получаю странные строки символов?

ПРИМЕЧАНИЕ. Я также получаю такой же выход, даже если передатчик выключен.

...