发送端代码:
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(8, 10); // CE, CSN
const byte address[6] = "00001";
int greenPin = 6;//我连了一个LED,用于监测发送端数据是否发出去了。
float greenLEDVal;
void setup() {
greenLEDVal = 5.;
pinMode(greenPin, OUTPUT);
radio.begin();
radio.openWritingPipe(address);
radio.setPALevel(RF24_PA_HIGH);
radio.setDataRate(RF24_250KBPS);
radio.setRetries(15, 15);
radio.stopListening();
}
void loop() {
bool txan;
const char text[4] = "Hel";
txan = radio.write(&text, sizeof(text));
delay(1000);
if(txan)
analogWrite(greenPin, greenLEDVal);
else
analogWrite(greenPin, 0.);
}
接收端代码:
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(8, 10); // CE, CSN
const byte address[6] = "00002";
const char text[4];
void setup() {
Serial.begin(115200);
radio.begin();
radio.setPayloadSize(sizeof(text));
radio.openReadingPipe(1, address);
radio.setPALevel(RF24_PA_HIGH);
radio.setDataRate(RF24_250KBPS);
radio.setRetries(15, 15);
radio.startListening();
}
void loop() {
uint8_t pipeNum;
if (radio.available(&pipeNum)) {
Serial.print("Received data on pipe ");
Serial.println(pipeNum);
uint8_t bytes = radio.getPayloadSize();
radio.read(&text, bytes);
Serial.println(text);
// radio.flush_rx();
}
}
运行结果就是发送端LED灯亮着,接收端串口监视器一直无规律滚动Received data on pipe 0/1/3/4,此外每2行中间还有1行空行。