• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Ошибка компиляции в PlatformIO

allleksey

New member
Добрый день, коллеги!

Ошибка в компиляции. Подскажите, пожалуйста, в чем я накосячил.
Код:
#include <Arduino.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
#define OLED_RESET     -1 // Reset pin # (or -1 if sharing Arduino resetpin)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

void setup() {

}

void loop() {

}
Выдает ошибку:
lib/Wire/utility/twi.c:25:10: fatal error: avr/io.h: No such file or directory
#include <avr/io.h>
^~~~~~~~~~
compilation terminated.
Compiling .pio\build\upesy_wrover\liba7c\Adafruit BusIO\Adafruit_I2CDevice.cpp.o
Compiling .pio\build\upesy_wrover\lib218\Adafruit-GFX-Library-master\Adafruit_GFX.cpp.o
*** [.pio\build\upesy_wrover\lib310\Wire\utility\twi.c.o] Error 1
.pio/libdeps/upesy_wrover/Adafruit BusIO/Adafruit_I2CDevice.cpp: In constructor 'Adafruit_I2CDevice::Adafruit_I2CDevice(uint8_t, TwoWire*)':
.pio/libdeps/upesy_wrover/Adafruit BusIO/Adafruit_I2CDevice.cpp:17:20: error: 'I2C_BUFFER_LENGTH' was not declared in this scope
_maxBufferSize = I2C_BUFFER_LENGTH;
^~~~~~~~~~~~~~~~~
.pio/libdeps/upesy_wrover/Adafruit BusIO/Adafruit_I2CDevice.cpp:17:20: note: suggested alternative: 'BUFFER_LENGTH'
_maxBufferSize = I2C_BUFFER_LENGTH;

^~~~~~~~~~~~~~~~~
BUFFER_LENGTH
.pio/libdeps/upesy_wrover/Adafruit BusIO/Adafruit_I2CDevice.cpp: In member function 'bool Adafruit_I2CDevice::setSpeed(uint32_t)':

.pio/libdeps/upesy_wrover/Adafruit BusIO/Adafruit_I2CDevice.cpp:306:10: error: 'class TwoWire' has no member named 'setClock'
_wire->setClock(desiredclk);
^~~~~~~~
*** [.pio\build\upesy_wrover\liba7c\Adafruit BusIO\Adafruit_I2CDevice.cpp.o] Error 1
================================================================================================== [FAILED] Took 12.60 seconds =================================================================================================
 

aZholtikov

Active member
Начинает ругаться при подключении библиотеки Wire
Предлагаю обнулить кэш или переустановить PlatformIO.
Это компилируется нормально:

[env:esp32]
platform = espressif32
board = upesy_wrover
framework = arduino
lib_deps =
adafruit/Adafruit GFX Library@^1.11.3
adafruit/Adafruit SSD1306@^2.5.7

#include <Arduino.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
#define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino resetpin)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
void setup()
{
}
void loop()
{
}
 

aZholtikov

Active member
а где такой скачать?
Как обнулить кэш?
Обновить - по пунктам меню. PlatformIO - PIO Home - Platforms - Updates.
Почистить - Удалить PlatformIO. Закрыть VSCode. В папке пользователя на ПК есть папка .platformio (скрытая). Стереть найух! :) Запустить VSCode. Переустановить PlatformIO.
 

allleksey

New member
Еще раз снес PlatformIO (с удалением папки на компьютере) и установил заново.
Ошибок меньше, но есть.
Compiling .pio\build\esp32\libc71\Wire\utility\twi.c.o
lib/Wire/utility/twi.c:25:10: fatal error: avr/io.h: No such file or directory
#include <avr/io.h>
^~~~~~~~~~
compilation terminated.
Compiling .pio\build\esp32\libb4f\SPI\SPI.cpp.o
Compiling .pio\build\esp32\libcd9\Adafruit_BusIO-master\Adafruit_BusIO_Register.cpp.o
*** [.pio\build\esp32\libc71\Wire\utility\twi.c.o] Error 1

======================================================================================== [FAILED] Took 9.25 seconds =========
 

aZholtikov

Active member
Еще раз снес PlatformIO (с удалением папки на компьютере) и установил заново.
Ошибок меньше, но есть.
Попробуй именно этот конфиг полностью без изменений и дополнений и в коде убери Wire.h

[env:esp32]
platform = espressif32
board = upesy_wrover
framework = arduino
lib_deps =
adafruit/Adafruit GFX Library@^1.11.3
adafruit/Adafruit SSD1306@^2.5.7
 

allleksey

New member
Error: Invalid 'C:\Users\FedosovAN\Documents\PlatformIO\Projects\Trek\platformio.ini' (project configuration file): 'Source contains parsing errors: 'C:\\Users\\FedosovAN\\Documents\\PlatformIO\\Projects\\Trek\\platformio.ini'
[line 17]: 'adafruit/Adafruit GFX Library@^1.11.3\n'
[line 18]: 'adafruit/Adafruit SSD1306@^2.5.7\n''


Файл вот так выглядит
[env:esp32]
platform = espressif32
board = upesy_wrover
framework = arduino
upload_port = COM[9]
lib_deps =
adafruit/Adafruit GFX Library@^1.11.3
adafruit/Adafruit SSD1306@^2.5.7
 

aZholtikov

Active member
Error: Invalid 'C:\Users\FedosovAN\Documents\PlatformIO\Projects\Trek\platformio.ini' (project configuration file): 'Source contains parsing errors: 'C:\\Users\\FedosovAN\\Documents\\PlatformIO\\Projects\\Trek\\platformio.ini'
[line 17]: 'adafruit/Adafruit GFX Library@^1.11.3\n'
[line 18]: 'adafruit/Adafruit SSD1306@^2.5.7\n''
Там надо ТАБ перед ссылкой.
Код:
[env:esp32]
platform = espressif32
board = upesy_wrover
framework = arduino
lib_deps =
    adafruit/Adafruit GFX Library@^1.11.3
    adafruit/Adafruit SSD1306@^2.5.7
 
Сверху Снизу