无法使用arduino和nrf24L01+进行无线通信;收发机

无法使用arduino和nrf24L01+进行无线通信;收发机,arduino,Arduino,我的收发器工作正常,因为maniacbug的RF24主库中的代码工作正常。但我试图自己学习编程,所以我决定来回发送一些整数。它们似乎不工作。串行监视器打印不同的整数。 发送代码为- #include<SPI.h> #include"nRF24L01.h" #include"RF24.h" //#include"printf.h" RF24 radio(9,10); const uint64_t pipes[2] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL }

我的收发器工作正常,因为maniacbug的RF24主库中的代码工作正常。但我试图自己学习编程,所以我决定来回发送一些整数。它们似乎不工作。串行监视器打印不同的整数。 发送代码为-

#include<SPI.h>
#include"nRF24L01.h"
#include"RF24.h"
//#include"printf.h"
RF24 radio(9,10);
const uint64_t pipes[2] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL };
const unsigned int transmit =1995;
//unsigned int get = 1;
void setup(void)
{
  Serial.begin(9600);
  //printf_begin();
  Serial.println("lets begin the operation");
  radio.begin();
  radio.setRetries(15,15);
  radio.setPayloadSize(8);
  radio.openWritingPipe(pipes[0]);
  radio.openReadingPipe(1,pipes[1]);
  //Serial.print("now get is  ");
  //Serial.println(get);
  //radio.startListening();
  //radio.printDetails();
}

void loop(void)
{
      //printf("starting the transmission\n");
      Serial.println("starting the transmission");
      radio.stopListening();
      bool ok = radio.write( &transmit, 8 );
      if(ok)
        //printf("ok....transmission successful !!!");
        Serial.println("ok...transmission successful..!!");
      else
        //printf("faioed to tramsmitt\n");
        Serial.println("failed to transmit");
      radio.startListening();
      unsigned int get;
      bool ok2 = radio.read( &get, 8);
      if(ok2)
      {
        //printf("received the packet successfully\n");
        Serial.println("received the packet successfully");
        //printf("received package is %u\n",get);
        Serial.print("received package is  ");
        Serial.println(get);
      }
      else
        //printf("failed to receive\n");
        Serial.println("failed to receive");
        delay(1000);
}
#include<SPI.h>
#include"nRF24L01.h"
#include"RF24.h"
//#include"printf.h"
RF24 radio(9,10);
const uint64_t pipes[2] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL };
unsigned int transmit = 2014;
//unsigned int get = 0;
void setup(void)
{
  Serial.begin(9600);
  //printf_begin();
  radio.begin();
  radio.setRetries(15,15);
  radio.setPayloadSize(8);
  radio.openWritingPipe(pipes[1]);
  radio.openReadingPipe(1,pipes[0]);
  //radio.startListening();
  //radio.printDetails();
}
void loop(void)
{
  radio.startListening();
  unsigned int get;
  bool ok = radio.read(&get,8);
  if(ok)
  {
    //printf("received successfully\n");
    Serial.println("received successfully");
    //printf("received payload = %u\n",get);
    Serial.print("received payload is  ");
    Serial.println(get);
  }
  else
    //printf("failed to receive\n");
    Serial.println("failed to receive");
  radio.stopListening();
  //unsigned int transmit = 2014;
  bool ok2 = radio.write( &transmit,8 );
  if(ok)
    //printf("ok....transmission successful !!!");
    Serial.println("ok...transmission successful..!!");
  else
    //printf("faioed to tramsmitt\n");
    Serial.println("failed to transmit");
  delay(1000);

}
#包括
#包括“nRF24L01.h”
#包括“RF24.h”
//#包括“printf.h”
RF24无线电(9,10);
const uint64_t pipes[2]={0xf0e1ll,0xf0d2ll};
常数无符号整数传输=1995;
//无符号整数get=1;
作废设置(作废)
{
Serial.begin(9600);
//printf_begin();
Serial.println(“让我们开始操作”);
收音机。开始();
无线电。setRetries(15,15);
设置有效载荷大小(8);
radio.openWritingPipe(管道[0]);
无线电.开放阅读管道(1,管道[1]);
//Serial.print(“now get is”);
//Serial.println(get);
//收音机;
//radio.printDetails();
}
无效循环(无效)
{
//printf(“启动传输\n”);
Serial.println(“启动传输”);
停止收听;
bool ok=无线电、写入和传输,8);
如果(确定)
//printf(“确定……传输成功!!!”;
Serial.println(“确定…传输成功..!!”;
其他的
//printf(“faiod to tramsmitt\n”);
Serial.println(“传输失败”);
收音机;
无符号整数get;
bool ok2=radio.read(&get,8);
如果(ok2)
{
//printf(“成功接收数据包\n”);
Serial.println(“成功接收数据包”);
//printf(“收到的包是%u\n”,get);
连续打印(“收到的包裹是”);
Serial.println(get);
}
其他的
//printf(“接收失败\n”);
Serial.println(“接收失败”);
延迟(1000);
}
接收代码为-

#include<SPI.h>
#include"nRF24L01.h"
#include"RF24.h"
//#include"printf.h"
RF24 radio(9,10);
const uint64_t pipes[2] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL };
const unsigned int transmit =1995;
//unsigned int get = 1;
void setup(void)
{
  Serial.begin(9600);
  //printf_begin();
  Serial.println("lets begin the operation");
  radio.begin();
  radio.setRetries(15,15);
  radio.setPayloadSize(8);
  radio.openWritingPipe(pipes[0]);
  radio.openReadingPipe(1,pipes[1]);
  //Serial.print("now get is  ");
  //Serial.println(get);
  //radio.startListening();
  //radio.printDetails();
}

void loop(void)
{
      //printf("starting the transmission\n");
      Serial.println("starting the transmission");
      radio.stopListening();
      bool ok = radio.write( &transmit, 8 );
      if(ok)
        //printf("ok....transmission successful !!!");
        Serial.println("ok...transmission successful..!!");
      else
        //printf("faioed to tramsmitt\n");
        Serial.println("failed to transmit");
      radio.startListening();
      unsigned int get;
      bool ok2 = radio.read( &get, 8);
      if(ok2)
      {
        //printf("received the packet successfully\n");
        Serial.println("received the packet successfully");
        //printf("received package is %u\n",get);
        Serial.print("received package is  ");
        Serial.println(get);
      }
      else
        //printf("failed to receive\n");
        Serial.println("failed to receive");
        delay(1000);
}
#include<SPI.h>
#include"nRF24L01.h"
#include"RF24.h"
//#include"printf.h"
RF24 radio(9,10);
const uint64_t pipes[2] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL };
unsigned int transmit = 2014;
//unsigned int get = 0;
void setup(void)
{
  Serial.begin(9600);
  //printf_begin();
  radio.begin();
  radio.setRetries(15,15);
  radio.setPayloadSize(8);
  radio.openWritingPipe(pipes[1]);
  radio.openReadingPipe(1,pipes[0]);
  //radio.startListening();
  //radio.printDetails();
}
void loop(void)
{
  radio.startListening();
  unsigned int get;
  bool ok = radio.read(&get,8);
  if(ok)
  {
    //printf("received successfully\n");
    Serial.println("received successfully");
    //printf("received payload = %u\n",get);
    Serial.print("received payload is  ");
    Serial.println(get);
  }
  else
    //printf("failed to receive\n");
    Serial.println("failed to receive");
  radio.stopListening();
  //unsigned int transmit = 2014;
  bool ok2 = radio.write( &transmit,8 );
  if(ok)
    //printf("ok....transmission successful !!!");
    Serial.println("ok...transmission successful..!!");
  else
    //printf("faioed to tramsmitt\n");
    Serial.println("failed to transmit");
  delay(1000);

}
#包括
#包括“nRF24L01.h”
#包括“RF24.h”
//#包括“printf.h”
RF24无线电(9,10);
const uint64_t pipes[2]={0xf0e1ll,0xf0d2ll};
无符号整数传输=2014;
//无符号整数get=0;
作废设置(作废)
{
Serial.begin(9600);
//printf_begin();
收音机。开始();
无线电。setRetries(15,15);
设置有效载荷大小(8);
radio.openWritingPipe(管道[1]);
radio.openReadingPipe(1,pipes[0]);
//收音机;
//radio.printDetails();
}
无效循环(无效)
{
收音机;
无符号整数get;
bool ok=radio.read(&get,8);
如果(确定)
{
//printf(“已成功接收\n”);
Serial.println(“成功接收”);
//printf(“收到的有效负载=%u\n”,get);
串行打印(“收到的有效载荷为”);
Serial.println(get);
}
其他的
//printf(“接收失败\n”);
Serial.println(“接收失败”);
停止收听;
//无符号整数传输=2014;
bool-ok2=无线电、写入和传输,8);
如果(确定)
//printf(“确定……传输成功!!!”;
Serial.println(“确定…传输成功..!!”;
其他的
//printf(“faiod to tramsmitt\n”);
Serial.println(“传输失败”);
延迟(1000);
}

当我编写代码时,甚至printf.h头文件似乎也不起作用,但在库示例中它们工作得很好。

检查串行窗口的波特率,大多数情况下9600波特会造成问题。尝试检查57600波特率

我对代码做了一些更改,它在57600波特率下开始工作