Ошибка String does not name a type
Я использую Arduino IDE для платы ESP32 WROOM. Я тестирую функцию OTA с помощью библиотеки ESP32httpUpdate. Я использую пример скетча библиотеки с именем httpUpdate.ino. Однако как только я меняю URL-адрес обновления с помощью указателя строки, который объявляю глобально, выдается ошибка компиляции, что String не называет тип. Есть идеи?
/**
* httpUpdate.ino
*
* Created on: 27.11.2015
*
*/
String* FIRMWARE_UPDATE_VERSION = "1000";
String* updateURL = "XYZ.php";
#include <Arduino.h>
#include <WiFi.h>
#include <HTTPClient.h>
#include <ESP32httpUpdate.h>
#define USE_SERIAL Serial
void setup() {
USE_SERIAL.begin(115200);
// USE_SERIAL.setDebugOutput(true);
USE_SERIAL.println();
USE_SERIAL.println();
USE_SERIAL.println();
for(uint8_t t = 4; t > 0; t--) {
USE_SERIAL.printf("[SETUP] WAIT %d...\n", t);
USE_SERIAL.flush();
delay(1000);
}
WiFi.begin("SSID", "PASSWORD");
}
void loop() {
// ждем подключения Wi-Fi
Serial.println("Yolo");
if((WiFi.status() == WL_CONNECTED)) {
t_httpUpdate_return ret = ESPhttpUpdate.update(updateURL, FIRMWARE_UPDATE_VERSION);
switch(ret) {
case HTTP_UPDATE_FAILED:
USE_SERIAL.printf("HTTP_UPDATE_FAILD Error (%d): %s", ESPhttpUpdate.getLastError(), ESPhttpUpdate.getLastErrorString().c_str());
break;
case HTTP_UPDATE_NO_UPDATES:
USE_SERIAL.println("HTTP_UPDATE_NO_UPDATES");
break;
case HTTP_UPDATE_OK:
USE_SERIAL.println("HTTP_UPDATE_OK");
break;
}
}
}
1 ответ
Лучший ответ:
▲ 4
String
включен в Arduino.h. До #include <Arduino.h>
String
не определена. Переместите #include <Arduino.h>
в начало файла или удалите его. Если вы удалите его, сборщик Arduino добавит его.
,
@Juraj
Спасибо. Это сработало!/, @peeyush tekriwal
Смотрите также:
- esp32, platformio A fatal error occurred: Packet content transfer stopped (received 8 bytes) *** [upload] Error 2
- Как выбрать альтернативные контакты I2C на ESP32?
- Драйверы для чипа последовательного порта CH9102X
- Как преобразовать форматированный оператор print в строковую переменную?
- ESP32 - "Детектор Браунаута был активирован" при запуске Wi-Fi
- Питание esp32cam от аккумулятора
- Контакты RX и TX на esp32
- ESP32: отключить детектор отключения питания
https://docs.google.com/document/d/1G28416DlDBxZEHrLdYylUgBE80ePzbWDJtMKpQ6lJKk/edit?usp=sharing, @peeyush tekriwal
ссылка на код, @peeyush tekriwal
Код, то есть такой короткий, следует скопировать непосредственно в вопрос и правильно отформатировать как код, выделив его и нажав кнопку
{}
в редакторе. Я сделал это для вас сейчас, но, пожалуйста, напомните об этом для следующего вопроса., @chrislЭй, спасибо. Я попытался добавить код в сам вопрос, но это получилось странно, и я не смог четко отформатировать, поэтому дал ссылку., @peeyush tekriwal
что такое
String* updateURL = "XYZ.php";
? вы назначаете указатель на постоянный массив символов указателю на объект String. Где вы видели что-то подобное? Это должен бытьconst char* updateURL = "XYZ.php";
илиString updateURL = "XYZ.php";
, @JurajСначала я начал со String updateURL = "XYZ.php", но возникла та же ошибка. Затем я увидел в библиотеке http, что функция httpUpdate принимает значение указателя, поэтому я попробовал использовать строковый указатель., @peeyush tekriwal