mega 2560 编译报错-Arduino中文社区 - Powered by Discuz! Archiver

不喝可乐 发表于 2022-8-21 13:59

mega 2560 编译报错

/*
Test on MEGA 2560. use WT901CTTL sensor

WT901CTTL   MEGA 2560
    VCC <--->5V/3.3V
    TX<--->19(TX1)
    RX<--->18(RX1)
    GND <--->GND
*/
#include <REG.h>
#include <wit_c_sdk.h>
#define BLINKER_BLE
#include <Blinker.h>

BlinkerNumber PITCH("num-pitch");
BlinkerNumber ROLL("num-roll");

//#define ACC_UPDATE    0x01
//#define GYRO_UPDATE   0x02
#define ANGLE_UPDATE0x04
//#define MAG_UPDATE    0x08
#define READ_UPDATE   0x80
static volatile char s_cDataUpdate = 0, s_cCmd = 0xff;

static void CmdProcess(void);
static void AutoScanSensor(void);
static void SensorUartSend(uint8_t *p_data, uint32_t uiSize);
static void SensorDataUpdata(uint32_t uiReg, uint32_t uiRegNum);
static void Delayms(uint16_t ucMs);
const uint32_t c_uiBaud = {0,4800, 9600, 19200, 38400, 57600, 115200, 230400};


//void send_blinker()
//{   
//    PITCH.print(pitch_read);
//    ROLL.print(roll_read);
//    timer2 = millis();
//}

//void dataStorage(){
//   Blinker.dataStorage("num-pitch", pitch);
//   Blinker.dataStorage("num-roll", roll);
//}

void setup()
{
Serial.begin(115200);

//BLINKER_DEBUG.stream(Serial);
//pinMode(LED_BUILTIN, OUTPUT);
//digitalWrite(LED_BUILTIN, LOW);

//Blinker.begin(15, 14, 9600);
//Blinker.attachData(dataStorage);

WitInit(WIT_PROTOCOL_NORMAL, 0x50);
WitSerialWriteRegister(SensorUartSend);
WitRegisterCallBack(SensorDataUpdata);
WitDelayMsRegister(Delayms);
Serial.print("\r\n********************** wit-motion normal example************************\r\n");
AutoScanSensor();
}
int i;
float fAngle;
void loop()
{
//timer = millis();
    while (Serial1.available())
    {
      WitSerialDataIn(Serial1.read());
    }
    while (Serial.available())
    {
      CopeCmdData(Serial.read());
    }
// Print values
    if(s_cDataUpdate)
    {
      for(i = 0; i < 3; i++)
      {
      fAngle = sReg / 32768.0f * 180.0f;
      }
      if(s_cDataUpdate & ANGLE_UPDATE)
      {
      Serial.print("angle:");
      Serial.print(fAngle, 3);
      Serial.print(" ");
      Serial.print(fAngle, 3);
      Serial.print(" ");
      Serial.print(fAngle, 3);
      Serial.print("\r\n");
      s_cDataUpdate &= ~ANGLE_UPDATE;
      }
      s_cDataUpdate = 0;
    }
//delay((timeStep*1000) - (millis() - timer)); //makes sure we read only at a an interval of 0.01 secounds

//    PITCH.print(pitch);
//    ROLL.print(roll);
//    Blinker.run();
//    Blinker.delay(50);


//if ((millis()-timer2) > 200)
//    {
//      pitch_read = pitch;
//      roll_read = roll;
//    }

}
void CopeCmdData(unsigned char ucData)
{
static unsigned char s_ucData, s_ucRxCnt = 0;

s_ucData = ucData;
if(s_ucRxCnt<3)return;                  //Less than three data returned
if(s_ucRxCnt >= 50) s_ucRxCnt = 0;
if(s_ucRxCnt >= 3)
{
    if((s_ucData == '\r') && (s_ucData == '\n'))
    {
      s_cCmd = s_ucData;
      memset(s_ucData,0,50);
      s_ucRxCnt = 0;
    }
    else
    {
      s_ucData = s_ucData;
      s_ucData = s_ucData;
      s_ucRxCnt = 2;
      
    }
}
}
static void SensorUartSend(uint8_t *p_data, uint32_t uiSize)
{
Serial1.write(p_data, uiSize);
Serial1.flush();
}
static void Delayms(uint16_t ucMs)
{
delay(ucMs);
}
static void SensorDataUpdata(uint32_t uiReg, uint32_t uiRegNum)
{
int i;
    for(i = 0; i < uiRegNum; i++)
    {
      switch(uiReg)
      {
            case Yaw:
      s_cDataUpdate |= ANGLE_UPDATE;
            break;
            default:
      s_cDataUpdate |= READ_UPDATE;
      break;
      }
    uiReg++;
    }
}

static void AutoScanSensor(void)
{
int i, iRetry;

for(i = 0; i < sizeof(c_uiBaud)/sizeof(c_uiBaud); i++)
{
    Serial1.begin(c_uiBaud);
    Serial1.flush();
    iRetry = 2;
    s_cDataUpdate = 0;
    do
    {
      WitReadReg(AX, 3);
      delay(200);
      while (Serial1.available())
      {
      WitSerialDataIn(Serial1.read());
      }
      if(s_cDataUpdate != 0)
      {
      Serial.print(c_uiBaud);
      Serial.print(" baud find sensor\r\n\r\n");
//      ShowHelp();
      return ;
      }
      iRetry--;
    }while(iRetry);   
}
Serial.print("can not find sensor\r\n");
Serial.print("please check your connection\r\n");
}
In file included from F:\qingjiaoyi\arduino-1.8.19\libraries\blinker-library-0.3.9\src/BlinkerSerialBLE.h:25:0,
               from F:\qingjiaoyi\arduino-1.8.19\libraries\blinker-library-0.3.9\src/Blinker.h:21,
               from F:\qingjiaoyi\qingjiaoyi\qingjiaoyiblinker\qingjiaoyiblinker.ino:8:
F:\qingjiaoyi\arduino-1.8.19\libraries\blinker-library-0.3.9\src/Adapters/BlinkerSerial.h: In member function 'virtual char* BlinkerSerial::lastRead()':
F:\qingjiaoyi\arduino-1.8.19\libraries\blinker-library-0.3.9\src/Adapters/BlinkerSerial.h:36:75: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
         char * lastRead()   { if (isFresh) return streamData; else return ""; }
                                                                           ^~
In file included from F:\qingjiaoyi\arduino-1.8.19\libraries\blinker-library-0.3.9\src/Blinker/BlinkerApi.h:96:0,
               from F:\qingjiaoyi\arduino-1.8.19\libraries\blinker-library-0.3.9\src/BlinkerSerialBLE.h:26,
               from F:\qingjiaoyi\arduino-1.8.19\libraries\blinker-library-0.3.9\src/Blinker.h:21,
               from F:\qingjiaoyi\qingjiaoyi\qingjiaoyiblinker\qingjiaoyiblinker.ino:8:
F:\qingjiaoyi\arduino-1.8.19\libraries\blinker-library-0.3.9\src/Blinker/BlinkerProtocol.h: In member function 'char* BlinkerProtocol::dataParse()':
F:\qingjiaoyi\arduino-1.8.19\libraries\blinker-library-0.3.9\src/Blinker/BlinkerProtocol.h:257:86: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
         char* dataParse()       { if (canParse) return conn->lastRead(); else return ""; }
                                                                                    ^~
In file included from F:\qingjiaoyi\qingjiaoyi\qingjiaoyiblinker\qingjiaoyiblinker.ino:5:0:
F:\qingjiaoyi\arduino-1.8.19\libraries\blinker-library-0.3.9\src/Blinker/BlinkerApi.h: At global scope:
F:\qingjiaoyi\arduino-1.8.19\libraries\ArduinoJ61/REG.h:73:17: error: expected identifier before numeric constant
#define Yaw   0x3f
               ^
F:\qingjiaoyi\arduino-1.8.19\libraries\blinker-library-0.3.9\src/Blinker/BlinkerApi.h:106:5: note: in expansion of macro 'Yaw'
   Yaw,
   ^~~
F:\qingjiaoyi\arduino-1.8.19\libraries\ArduinoJ61/REG.h:73:17: error: expected '}' before numeric constant
#define Yaw   0x3f
               ^
F:\qingjiaoyi\arduino-1.8.19\libraries\blinker-library-0.3.9\src/Blinker/BlinkerApi.h:106:5: note: in expansion of macro 'Yaw'
   Yaw,
   ^~~
F:\qingjiaoyi\arduino-1.8.19\libraries\ArduinoJ61/REG.h:73:17: error: expected unqualified-id before numeric constant
#define Yaw   0x3f
               ^
F:\qingjiaoyi\arduino-1.8.19\libraries\blinker-library-0.3.9\src/Blinker/BlinkerApi.h:106:5: note: in expansion of macro 'Yaw'
   Yaw,
   ^~~
In file included from F:\qingjiaoyi\arduino-1.8.19\libraries\blinker-library-0.3.9\src/BlinkerSerialBLE.h:26:0,
               from F:\qingjiaoyi\arduino-1.8.19\libraries\blinker-library-0.3.9\src/Blinker.h:21,
               from F:\qingjiaoyi\qingjiaoyi\qingjiaoyiblinker\qingjiaoyiblinker.ino:8:
F:\qingjiaoyi\arduino-1.8.19\libraries\blinker-library-0.3.9\src/Blinker/BlinkerApi.h:109:1: error: expected declaration before '}' token
};
^
exit status 1
为开发板 Arduino Mega or Mega 2560 编译时出错。

奈何col 发表于 2022-8-21 23:10

F:\qingjiaoyi\arduino-1.8.19\libraries\ArduinoJ61/REG.h:73:17: error: expected identifier before numeric constant
#define Yaw   0x3f

看起来是您引用的库报错了
页: [1]
查看完整版本: mega 2560 编译报错