使用 RF24 将 arduino 与另一个 Arduino 进行通信,得到错误的结果

问题描述 投票:0回答:1

我使用这些代码来传输 hello worlds,但我只收到 “&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&” 在接收器中。 我不明白这是什么问题。

********************发射器代码:

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

RF24 radio(7, 8);

const byte rxAddr[6] = "00001";

void setup()
{
  radio.begin();
  radio.setRetries(15, 15);
  radio.openWritingPipe(rxAddr);

  radio.stopListening();
}

void loop()
{
  const char text[] = "Hello World";
  radio.write(&text, sizeof(text));

  delay(1000);
}

********************接收器代码:

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

RF24 radio(7, 8);

const byte rxAddr[6] = "00001";

void setup()
{
  while (!Serial);
  Serial.begin(9600);

  radio.begin();
  radio.openReadingPipe(0, rxAddr);

  radio.startListening();
}

void loop()
{
  if (radio.available())
  {
    char text[32] = {0};
    radio.read(&text, sizeof(text));

    Serial.println(text);
  }
}
c++ arduino communication radio-transmission
1个回答
0
投票

在您使用的发送网站上:

const char text[] = "Hello World"; radio.write(&text, sizeof(text));

在接收者站点上: 字符文本[32] = {0}; radio.read(&text, sizeof(text));

两个 sizeof(text) 是否相等?

发送部分文本为11字节 接收部分文本为32字节

© www.soinside.com 2019 - 2024. All rights reserved.