ожидаемый инициализатор перед 'RF24'

Я делаю такой код */

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <Servo.h>
#define CE_PIN   9
#define CSN_PIN 10

const uint64_t pipe = 0xE8E8F0F0E1LL;
int servoy;
int servox;
Servo Yservo; 
Servo Xservo; 

RF24 radio(CE_PIN, CSN_PIN);

int joystick[2];

void setup()RF24
{
  Serial.begin(9600);
  delay(1000);
  radio.begin();
  radio.openReadingPipe(1,pipe);
  radio.startListening();
  Xservo.attach(3);
  Yservo.attach(5);
}

void loop()
{
  if ( radio.available() )
  {
    bool done = false;
    while (!done)
    {
done = radio.read( joystick, sizeof(joystick) );
servox= joystick[0]/5.683; 
servoy= joystick[1]/5.683;    
      Serial.println(servoy);
      Yservo.write(servoy);
      Serial.println(servox);
      Xservo.write(servox);
    }
  }
  else
  {    
      Serial.println("NO RADIO CONECTION");
  }

}

и я не знаю, что случилось, говорят, что

 sketch_aug20b_rc_rc_rc_22:33:13: error: expected initializer before 'RF24'

 void setup()RF24

             ^

C:\Users\ASUS\Documents\Arduino\sketch_aug20b_rc_rc_rc_22\sketch_aug20b_rc_rc_rc_22.ino: In function 'void loop()':

sketch_aug20b_rc_rc_rc_22:51:6: error: void value not ignored as it ought to be

 done = radio.read( joystick, sizeof(joystick) );

      ^

exit status 1
expected initializer before 'RF24'

, 👍-1

Обсуждение

По сути, это говорит: «Почему у вас есть случайный «RF24» в середине вашего кода?» - и я спрашиваю о том же..., @Majenko


1 ответ


1

У вас две проблемы:

sketch_aug20b_rc_rc_rc_22:33:13: error: expected initializer before 'RF24'

void setup()RF24

         ^

Это в основном говорит: "Я не понимаю, что вы имеете в виду под RF24 здесь". Этот RF24 в этой строке не должен существовать. Я предполагаю, что вы сделали какую-то опечатку или ошибку копирования.

Второе:

C:\Users\ASUS\Documents\Arduino\sketch_aug20b_rc_rc_rc_22\sketch_aug20b_rc_rc_rc_22.ino: В функции 'void loop()':

sketch_aug20b_rc_rc_rc_22:51:6: error: void value not ignored as it ought to be

 done = radio.read( joystick, sizeof(joystick) );

Это говорит о том, что radio.read не возвращает значение, но вы пытаетесь присвоить несуществующее значение чему-то.

Согласно документации для RF24::read():

Прочитать доступную полезную нагрузку

Размер считываемых данных — это фиксированный размер полезной нагрузки, см. getPayloadSize()

Примечание

Я специально выбрал 'void*' в качестве типа данных, чтобы его было проще использовать новичкам. Кастинг не требуется.

Больше не логическое значение. Используйте available, чтобы определить, доступны ли пакеты. Флаги прерывания теперь сбрасываются во время чтения, а не при вызове available().

Параметры

  • buf Указатель на буфер, в который должны быть записаны данные
  • len Максимальное количество байтов для чтения в буфер

    если(радио.доступно()){ radio.read(&data,sizeof(data));

Возврат

Нет возвращаемого значения. Используйте доступный().

,