Не отображает данные о принятой информации
- Войдите на сайт для отправки комментариев
Ср, 06/04/2022 - 21:20
Здравствуйте. Использую модуль 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!"); } } }
очень неаккуратный код. Это ваш первый скетч?
В одном коде node задан, в другом нет. Причем там где задан - он равен 00000. Вы думаете это что? - целое число? :)
Переменная incomingdata не инициализирована и при этом проверяется на равенство нулю... так оно точно работать не будет...
Отсылка данных идет непрерывно, без какого-либо интервала... Вы уверены, что это правильно - обрушивать на приемник непрерывный поток сообщений? Он не захлебнется?
В общем не код, а шляпа какая-то...