Ошибка: значение void не проигнорировано, как должно быть = radio.read(&Irms, sizeof(float));

Доброе утро всем, у меня был этот скетч, который работал, теперь при загрузке программы выдает ошибку:

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

float Irms ;
RF24 radio(9, 10);
const uint64_t pipe = 0xE8E8F0F0E1LL;

void setup(void) {

  radio.begin();
  radio.openReadingPipe(1, pipe);
  radio.startListening();
  Serial.println("setup() - Inizializzazione completata");
  delay(300);
}

void loop(void) {
  if ( radio.available() )
  {
    bool done = false;
    
    while (!done)
      delay(1000);

    {
      delay(1000);
      done = radio.read(&Irms, sizeof(float));

, 👍0

Обсуждение

Кстати, будьте осторожны, так как цикл while бесконечен (есть только delay(1000), а done никогда не меняется), @KIIV


1 ответ


0

Это заявление:

done = radio.read(&Irms, sizeof(float));

несовместимо с текущей библиотекой <RF24.h>.

Метод read() теперь имеет следующую сигнатуру:

void read (void *buf, uint8_t len)

Вы можете либо адаптировать свой код, либо использовать древнюю библиотеку «maniacbug» https://github.com/maniacbug/RF24 который имеет следующую сигнатуру для read():

bool read(void* buf, uint8_t len);

,

Можете ли вы помочь мне изменить мой код? Спасибо, @ksalva

@ksalva Ваш код в вопросе, похоже, усечен. Покажите весь ваш код, и я попытаюсь предложить исправление и добавить его в ответ., @6v6gt