Перейти к содержанию
    

Адаптация кода m5stack под esp32-wroom

Столкнулся с проблемой, которая на 100% связана с НЕ пониманием процесса работы библиотек ардуино и отсутствием собственной базы знаний по программированию.

Но это ведь не повод, не заниматься любимым делом, хобби и просто не пообщаться со знающими специалистами на этом форуме?

Исходные данные:

1. доступный на гитхабе пример кода, который написан "для" и запускается на устройстве - m5stack

2. микроконтроллер esp32-wroom(D0WDQ5 Rev 3) и дисплей на контроллере ST7789 который подключен по параллельному интерфейсу 8-бит

photo1687530562.thumb.jpeg.a63704bed2dbc9293560663e890e4021.jpeg

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

581649698_photo1687789985(1).thumb.jpeg.e86b9323f628d8682b07c1611577087c.jpeg

Но различные расширения класса дисплея, в файлах проекта

extern TFT_eSprite gdraw;

Окончательно запутали следы.

Отдельно библиотеку TFT_eSPI использую именно на этом "железе" и проблем никогда не было, ни с инициализацией, ни с подгрузкой шрифтов ни со спрайтами ни с extern.

photo1687542368.thumb.jpeg.72e7ddc3c4fdb76302b101d112d200ad.jpeg

Этот скетч как аномалия...

Поэтому прощу помощи с объяснением процесса, и разборками что и как.

 

Изменено пользователем eengineer

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...