Не отображает данные о принятой информации

Alex-Nestor
Offline
Зарегистрирован: 31.03.2022

Здравствуйте. Использую модуль NRF24L01 чтобы передавать данные  между устройствами. Посылаю с одного устройства числовую информацию, и хочу отобразить на другом. Только вот оно не отображается в мониторе порта. В чём может быть ошибка?

// Client A
#include <RF24Network.h>
#include <RF24.h>
#include <SPI.h>

RF24 radio(10,9); //nRF2401 (CE,CSN)
RF24Network network(radio); //Include the radio in the network
const uint16_t server = 0000; // Address of the Server
 uint16_t this_node;
long FirstrandAddress;
long SRFA = 100;//code send a request for an address.

void setup() {
  // put your setup code here, to run once:
SPI.begin();
radio.begin();
network.begin(90,this_node); //(channell,node address)
radio.setDataRate(RF24_1MBPS);


}

void loop() {
  network.update();
  //==Receiving ==//
  while(network.available()){ // Is there any incoming data?
    RF24NetworkHeader header;
    unsigned long incomingData;
    network.read(header,&incomingData,sizeof(incomingData)); // Read the incoming data   
  }

  // == send a request for an address. ==//
  FirstrandAddress = random(10000,30000);
  if(this_node == 0){
  Send_request_for_address(FirstrandAddress);
}
}

 
// Function request_for_address
uint16_t Send_request_for_address(long firstaddress){
  RF24NetworkHeader header(server);
  bool firsAddress = network.write(header,&firstaddress,sizeof(firstaddress)); // Send first addres of device
  bool code_of_request = network.write(header,&SRFA,sizeof(SRFA));
  
}

-------------------------------------------------------------------------------------------------------------------

//Server
#include <RF24Network.h>
#include <RF24.h>
#include <SPI.h>


RF24 radio(10,9); //nRF24L01 (CE,CSN)
RF24Network network(radio); // Include the radio in the network
const uint16_t this_node = 0000 ;// Address of the server


void setup() {
Serial.begin(9600);
SPI.begin();
radio.begin();
network.begin(90,this_node); //(channel, node address)
radio.setDataRate(RF24_1MBPS);

}

void loop() {
network.update();
if(network.available()){ // Is there any incoming data?
RF24NetworkHeader header;
unsigned long incomingData;
network.read(header,&incomingData,sizeof(incomingData));// Read the incoming data
if(incomingData!=0)
Serial.println(incomingData);

else{
  Serial.println("No data!");
}
}
}

 

b707
Offline
Зарегистрирован: 26.05.2017

очень неаккуратный код.  Это ваш первый скетч?

В одном коде node задан, в другом нет. Причем там где задан - он равен 00000. Вы думаете это что? - целое число? :)

Переменная incomingdata не инициализирована и при этом проверяется на равенство нулю... так оно точно работать не будет...

Отсылка данных идет непрерывно, без какого-либо интервала... Вы уверены, что это правильно - обрушивать на приемник непрерывный поток сообщений? Он не захлебнется?

В общем не код, а шляпа какая-то...