首页 > 解决方案 > Arduino 使用 nrf24l01 模块接收无意义

问题描述

我的 Arduino 代码假设发送文本“Hello world!” 通过 nrf24l01 模块的无线电通信,但是当我在串行监视器上读取它时,我正在接收方块。顺便说一句,我正在使用两个 Arduino。这是TX代码:

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(9,10); // CE, CSN
const byte address[6] = "00001";
void setup() {
  Serial.begin(9600);
  radio.begin();
  delay(1000);
  radio.openWritingPipe(address);
  radio.setPALevel(RF24_PA_MAX);
  radio.setDataRate(RF24_250KBPS);
  radio.stopListening();
  delay(2000);
}
void loop() {
  const char text[] = "Hello world!";
  radio.write(&text, sizeof(text));
  delay(1000);
}

这是 RX 代码:

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

RF24 radio(9,10); // CE, CSN

const byte address[6] = "00001";

void setup() {
  Serial.begin(9600);
  delay(1000);
  radio.begin();
  radio.openReadingPipe(0, address);
  radio.setPALevel(RF24_PA_MAX);
  radio.setDataRate(RF24_250KBPS);
  radio.startListening();
  delay(2000);
}
void loop() {
  if (radio.available()) {
    char text[32] = "";
    radio.read(&text, sizeof(text));
    Serial.println(text);
    if (text == "Hello world!") {
      Serial.println("Nice");
    }
  }
}

我在我的电脑上得到的输出。

任何帮助将不胜感激。

标签: c++carduino

解决方案


推荐阅读