Я использую 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'
Кто-нибудь знает, почему я не вижу «Привет, мир», а вместо этого получаю странные строки символов?
ПРИМЕЧАНИЕ. Я также получаю такой же выход, даже если передатчик выключен.