如何为Arduino代码声明C++函数



我得到了以下Arduino代码,用于从蓝牙接收文本并将其显示回LCD显示器。

输入时,应使用IP字符串作为参数调用detectarClase()

这是.ino代码:

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
#include <string.h>
LiquidCrystal_I2C lcd(0x20,16,2); 
boolean borrar = false;
String IP;
String detectarClase(String ip) {
  char var[ip.length()]
  ip.toCharArray(var, ip.length());
  int num= atoi(var);  
  if (num < 127 ) 
    return "Clase A";
  if (num == 127 ) 
    return "Direccion reservada";
  if (num > 127 && num < 192   )
    return "Clase B";
  if (num >= 192 && num < 224  )
    return "Clase C";
  if (num >= 224 && num < 240  )
    return "Clase D";
  if (num >= 240 && num < 255  )
    return "Clase E";
}
void setup()
{
  lcd.init();
  lcd.backlight();
  pinMode(13,OUTPUT);
  Serial.begin(9600);
  Serial1.begin(9600);
}
void loop() {
  while (Serial1.available()) { 
    char caracter = Serial1.read(); //Comprobamos el caracter 
    switch(caracter) {
    default:
                if (borrar) { 
                              IP = ""; 
                              lcd.clear();
                }
                lcd.print(caracter);
                delay(125);
                borrar = false;
                IP.concat(caracter);
                break;  
    case 'r':                
    case 0x0F:
    case 0x0A:  
                borrar = true;
                lcd.print(detectarClase(IP));
                break;  
  } //fin switch
}//serial disponible

}//fin programa

当我尝试编译时,我得到以下输出:

BluetoothLCD.cpp: In function ‘String detectarClase(String)’:
BluetoothLCD.cpp:17:3: error: expected initializer before ‘ip’
BluetoothLCD.cpp:19:25: error: ‘var’ was not declared in this scope

我真的不知道该如何声明函数,我该如何修改它?

尝试

char var[100];

数组在编译时可能需要恒定的大小。我看你错过了";"在那行的末尾。

最新更新