eengineer 0 27 июня, 2023 Опубликовано 27 июня, 2023 (изменено) · Жалоба Столкнулся с проблемой, которая на 100% связана с НЕ пониманием процесса работы библиотек ардуино и отсутствием собственной базы знаний по программированию. Но это ведь не повод, не заниматься любимым делом, хобби и просто не пообщаться со знающими специалистами на этом форуме? Исходные данные: 1. доступный на гитхабе пример кода, который написан "для" и запускается на устройстве - m5stack 2. микроконтроллер esp32-wroom(D0WDQ5 Rev 3) и дисплей на контроллере ST7789 который подключен по параллельному интерфейсу 8-бит 3. давно использую библиотеку TFT_eSPI и "железо", указанное в пункте 2 успешно работает и отображает все примеры из библиотеки Что сделано: 1. скачаны примеры кода и установлены как библиотека в папку C:\Users\Admin\Documents\Arduino\libraries 2. скачаны файлы m5stack и также установлены в папку с библиотеками Собственно сборка(компиляция) кода. По умолчанию, код примера GaugeWidgets_demo.ino написан в виде скетча и включает следующие библиотеки #include <GaugeWidgets.h> #include <M5Stack.h> #include <Free_Fonts.h> Если начать компиляцию, предварительно выбрав плату в менеджере(забегая вперед, скажу, что результат не изменяется в зависимости от выбранной платы) ESP32 Dev Module или M5Stack-Core-ESP32 Код примера успешно компилируется, загружается в плату esp32 и работает...только изображения нет. А оно и понятно, у меня же дисплей подключен не по SPI как у M5Stack, а по 8-битному параллельному интерфейсу. Используя библиотеку TFT_eSPI, как писал выше, хочу запустить исходный код на своем "железе". Стал разбираться, в головном файле-скетче GaugeWidgets_demo.ino включен файл библиотеки #include <M5Stack.h> Файл подключен именно как "библиотека" и должен быть в своей папке, как я писал выше. Файл, собственно и является, точкой входа во все будущие приключения. В этом файле подгружаются файлы библиотек для работы с кнопками устройства, с датчиками положения и динамиком. Ну и собственно, самой интересной для меня части - дисплеем и файлом #include "M5Display.h" который подключается как вложение из той же папки, что и библиотека. В файле * происходит подключение файлов для работы с дисплеем #include "utility/Config.h" #include "utility/In_eSPI.h" Файлы In_eSPI.h и In_eSPI.cpp это урезанные и устаревшие файлы библиотеки TFT_eSPI Bodmer'а В файле In_eSPI.h есть файл In_eSPI_Setup.h, подключенный так #include "In_eSPI_Setup.h" В этом файле настройки самой библиотеки TFT_eSPI и я стал экспериментировать. Добавил следующие дефайны #define ESP32_PARALLEL #define ST7789_2_DRIVER взамен #define ILI9341_DRIVER Также добавил файлы, определяющие настройки инициализации моего дисплея ST7789 #include "In_eSPI_Drivers/ST7789_2_Defines.h" #define TFT_DRIVER 0x7789 Добавил все в папки, проверил, что файлы открываются и пути правильные. Код примера GaugeWidgets_demo.ino успешно откомпилировался, но дисплей белый... Могу только менять яркость кнопками, это говорит лишь об одно - библиотека дисплея не подключилась должным образом. Пробовал включить библиотеку TFT_eSPI в главный файл скетча GaugeWidgets_demo.ino Но получаю ошибки шрифтов Free_Fonts.h Вообще не понятна линковка в ардуино IDE - файл находиться выше на два уровня, чем папка со скетчем, подключаешь файл через кавычки и файл не определяется при компиляции. #define "../../Free_Fonts.h" И компилятор выдает ошибку. Пробовал и в главном файле скетча добавлять библиотеку #include <TFT_eSPI.h> Но результат нет. Как вообще правильно собрать проект? Столько разных проектов и кодов раньше запускал, пробовал, а здесь прям мистика какая то. Можно вообще как то исключить эту "надстройку" для m5stack и инициализировать библиотеку дисплея TFT_eSPI как то в файле GaugeWidgets_demo.ino Понимаю, у меня пока сумбур, много текста и отсутствие результата. Кто как играми с отдельными проектами, написанными для вывода логотипа в формате PROGMEM на той же библиотеке TFT_eSPI Но различные расширения класса дисплея, в файлах проекта extern TFT_eSprite gdraw; Окончательно запутали следы. Отдельно библиотеку TFT_eSPI использую именно на этом "железе" и проблем никогда не было, ни с инициализацией, ни с подгрузкой шрифтов ни со спрайтами ни с extern. Этот скетч как аномалия... Поэтому прощу помощи с объяснением процесса, и разборками что и как. Изменено 27 июня, 2023 пользователем eengineer Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться