Ошибка : заблудиться '\' в программе
Я получил эту ошибку в следующей программе:
#include <SoftwareSerial.h>
#include <dht.h>
dht DHT;
int a;
String temp;
String humid;
SoftwareSerial esp(0, 1);
#define SSID "abcd"
#define PASS "99999999"
void sendAT(String cmd) {
Serial.print("SEND=");
esp.println("cmd");
Serial.println("cmd");
}
boolean connectwifi() {
Serial.println("AT+CWMODE=1");
delay(2000);
Serial.println("AT+CWLAP");
String cmd="AT+CWJAP="\"abcd"\",\"99999999"\";
sendAT(cmd);
delay(5000);
if (Serial.find("ERROR")){
Serial.println("Recieved:Error could not connect");
return false;
}
else{
Serial.println("Wifi connected \n");
}
cmd="AT+CIPMUX=0";
sendAT(cmd);
if(Serial.find("Error")){
esp.print("RECIEVED ERROR");
return false;
}
}
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
esp.begin(115200);
send("AT");
delay(5000);
if(Serial.find("OK")){
Serial.println("Recieved:OK\n ESP ready to send data\n");
connectwifi();
}
}
void loop() {
// put your main code here, to run repeatedly:
a=DHT.read11(5);
temp=DHT.temperature;
humid=DHT.humidity;
Serial.println("temperature: ");
Serial.println(temp);
Serial.println("humidity: ");
Serial.println(humid);
Serial.print("\n");
updateTS(temp,humid);
delay(3000);
}
void updateTS(String T, String H){
String cmd="AT+CIPSTATRT=\"TCP\",\"api.thingspeak.com\",80";
sendAt(cmd);
delay (2000);
if (Serial.find("Error")){
Serial.print("Recieved :Error\n EXIT1");
return;
}
cmd="GET/update?key=CJWN3VJZCQVTJD2J&field1="+T+"&field2+"+H+"\r\n";
Serial.println("AT+CIPSEND=");
Serial.println(cmd length());
if (Serial.find(">")){
esp.print(">");
esp.print(cmd);
Serial.println(cmd);
}
else{
sendAT("AT+CIPCLOSE");
}
if (Serial.find("Error")){
Serial.println("Recieved: Error \n EXIT2");
}
Serial.println();
}
}
}
Отображается сообщение об ошибке:
arduinoo_sketch:21: error: stray '\' in program
String cmd="AT+CWJAP="\"abcd"\",\"99999999"\";
^
arduinoo_sketch:21: error: stray '\' in program
arduinoo_sketch:21: error: stray '\' in program
C:\Users\lenovo\Documents\Arduino\arduinoo_sketch\arduinoo_sketch.ino:21:47: warning: missing terminating " character
String cmd="AT+CWJAP="\"abcd"\",\"99999999"\";
^
arduinoo_sketch:21: error: missing terminating " character
String cmd="AT+CWJAP="\"abcd"\",\"99999999"\";
^
C:\Users\lenovo\Documents\Arduino\arduinoo_sketch\arduinoo_sketch.ino: In function 'boolean connectwifi()':
arduinoo_sketch:22: error: expected ',' or ';' before 'sendAT'
sendAT(cmd);
^
C:\Users\lenovo\Documents\Arduino\arduinoo_sketch\arduinoo_sketch.ino:24:26: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
if (Serial.find("ERROR")){
^
C:\Users\lenovo\Documents\Arduino\arduinoo_sketch\arduinoo_sketch.ino:34:25: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
if(Serial.find("Error")){
^
C:\Users\lenovo\Documents\Arduino\arduinoo_sketch\arduinoo_sketch.ino: In function 'void setup()':
arduinoo_sketch:44: error: 'send' was not declared in this scope
send("AT");
^
C:\Users\lenovo\Documents\Arduino\arduinoo_sketch\arduinoo_sketch.ino:46:22: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
if(Serial.find("OK")){
^
C:\Users\lenovo\Documents\Arduino\arduinoo_sketch\arduinoo_sketch.ino: In function 'void loop()':
arduinoo_sketch:64: error: 'updateTS' was not declared in this scope
updateTS(temp,humid);
^
C:\Users\lenovo\Documents\Arduino\arduinoo_sketch\arduinoo_sketch.ino: In function 'void updateTS(String, String)':
arduinoo_sketch:75: error: 'sendAt' was not declared in this scope
sendAt(cmd);
^
C:\Users\lenovo\Documents\Arduino\arduinoo_sketch\arduinoo_sketch.ino:77:26: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
if (Serial.find("Error")){
^
arduinoo_sketch:83: error: expected ')' before 'length'
Serial.println(cmd length());
^
C:\Users\lenovo\Documents\Arduino\arduinoo_sketch\arduinoo_sketch.ino:84:22: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
if (Serial.find(">")){
^
C:\Users\lenovo\Documents\Arduino\arduinoo_sketch\arduinoo_sketch.ino:92:28: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
if (Serial.find("Error")){
^
C:\Users\lenovo\Documents\Arduino\arduinoo_sketch\arduinoo_sketch.ino: At global scope:
arduinoo_sketch:97: error: expected declaration before '}' token
}
^
exit status 1
stray '\' in
@ayushi p, 👍-1
Обсуждение2 ответа
▲ 1
По крайней мере, один пример здесь:
String cmd="AT+CWJAP="\"abcd"\",\"99999999"\";
Вы, вероятно, имели в виду
String cmd="AT+CWJAP=\"abcd\",\"99999999\"";
Это довольно тривиальная проблема, вы должны быть в состоянии решить ее, просто тщательно вычитав свой скетч.
,
@Chris Stratton
▲ 2
Правильно отформатировав свой код (ctrl-T в IDE), вы поймете, что не так с вашим кодом... В
String cmd = "AT+CWJAP="\"abcd"\",\"99999999"\";
sendAT(cmd);
Посмотрите, как sendAT(cmd);
имеет отступ, как если бы он был частью предыдущей строки? Это означает, что у вас возникли некоторые проблемы с котировками.
,
@dda
Смотрите также:
- Ошибка: expected unqualified-id before 'if'
- Ошибка компиляции кода для Arduino/Genuino Uno
- Ошибка: invalid application of 'sizeof' to incomplete type 'int []' при попытке вычислить размер массива в библиотеке
- ошибка: expected primary-expression before '(' token
- Недопустимое преобразование из 'char' в 'const char*' [-fpermissive] в строке
- Ошибка компиляции в nodeMCU вместе с датчиком температуры oneWire ds18b20 и ЖК-дисплеем 2x16 (не I2C)
- Ошибка компиляции: "cannot declare 'client' to be of abstract type 'Client'"
- Ошибка: function was not declared in this scope when using a library without classes
Подсветка синтаксиса должна была дать вам подсказку., @gre_gor
Навскидку я заметил это там, где написано
String cmd="AT+CWJAP="\"abcd"\",\"99999999"\";
он должен сказатьString cmd="AT+CWJAP="\"abcd"\",\"99999999\";
- до того, как я увидел сообщения об ошибках - компилятор поймал его - поэтому просто гонитесь за каждой строкой, указанной в сообщениях об ошибках., @SDsolar