Компиляция для Wemos D1 mini с кодом Visual Studio
Я даю Visual Studio Code (VSC) попробовать и получаю неожиданные результаты. У меня есть программа (скетч), которая прекрасно компилируется в Arduino IDE. Я создаю рабочую область в VSC, инициализирую проект, и после еще нескольких неудачных попыток я получаю компиляцию там, кажется, успешно:
[Done] Finished verify sketch - RanchMonitor2.ino
Но панель консоли показывает четыре "проблемы":
Как компиляция может быть успешной, если есть проблемы?
То же самое происходит и с одним из образцов - HelloServer.ino В этом случае проблемы являются неполным типом и memcpy_P не определен.
Я бы не подумал, что это должно иметь какое-то значение, но я работаю без платы, физически подключенной к USB-порту.
ОБНОВЛЕНИЕ: Я думаю, что "Проблемы" - это проблемы, выявленные Intellisense. Они появляются еще до попытки компиляции. Все, что мне нужно сделать, это открыть рабочее пространство и подождать несколько секунд, а затем появятся "проблемы". Поэтому я предполагаю, что это предупреждения Intellisense, а не ошибки компиляции. Добавление "ESP8266" в раздел Defines раздела c_cpp_properties.json избавился от ошибки "WifiManager" is undefined.
@Llaves, 👍1
Обсуждение1 ответ
Intellisense сообщает о "Проблемах" - они отличаются от ошибок времени компиляции. Просто потому, что Intellisense не может разрешить литерал или что-то еще, это не значит, что он не будет разрешен в компиляторе; таким образом, можно заставить IDE сообщить о проблеме, но все же иметь возможность успешно скомпилировать. В случае, описанном выше, два изменения в свойствах c_cpp_properties.json-файл предоставлял Intellisense необходимую информацию. В раздел forcedInclude был добавлен заголовочный файл для предоставления определений ПИНов. Литерал "ESP8266" был добавлен в раздел определения, чтобы указать тип процессора. Это определение используется во многих заголовочных файлах, поэтому оно должно быть известно Intellisense при чтении заголовков. Вот соответствующие разделы этого файла .json:
"forcedInclude": [
"C:\\Users\\David\\AppData\\Local\\Arduino15\\packages\\esp8266\\hardware\\esp8266\\2.7.1\\variants\\d1_mini\\pins_arduino.h"
],
"defines": [
"USBCON",
"ESP8266"
],
- ESP-01 не посылает данных по последовательному каналу, как только он подключен к Wi-Fi-маршрутизатору
- Как читать и записывать EEPROM в ESP8266
- Как сделать выводы Tx и Rx на ESP-8266-01 в выводах GPIO?
- Как навсегда изменить скорость передачи данных ESP8266 (12e)?
- Как заставить 5-вольтовое реле работать с NodeMCU
- Как исправить: Invalid conversion from 'const char*' to 'char*' [-fpermissive]
- ESP8266 не подключается к Wi-Fi
- AT-команда не отвечает на последовательный монитор
Если компиляция завершается неудачно, она возвращает код ошибки 1 и не говорит "готово". Я проверил это, вызвав сбой, удалив точку с запятой в конце строки. См. раздел Правка в вопрос., @Llaves