Блоки для дисплеев TFT SPI

Конструктор из блоков на базе библиотеки TFT_eSPI которая оптимизирована для контроллеров STM32, ESP8266 и ESP32.

Пользовательские блоки для вывода информации на дисплеи и индикаторы, управления тачскрином, различными клавиатурами, добавления русских шрифтов для вывода на дисплеи типа HD44780
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Аватара пользователя
DrMario
Сержант
Сообщения: 296
Зарегистрирован: 07.11.2016{, 13:11}
Репутация: 30
Откуда: Камень-на-Оби
Имя: Евгений
Контактная информация:

Блоки для дисплеев TFT SPI

#1

Сообщение DrMario » 02.05.2020{, 13:07}

Набор блоков на базе библиотеки TFT_eSPI которая оптимизирована для контроллеров STM32, ESP8266 и ESP32.
Ссылка на источник библиотеки: https://github.com/Bodmer/TFT_eSPI
Список поддерживаемых чипов дисплеев с тачскрином и без, в том числе с параллельным интерфейсом:
ILI9341, ST7735, ILI9163, S6D02A1, ILI9486, HX8357D, ILI9481, ILI9486, ILI9488, ST7789, ST7789_2, R61581, RM68140, ST7796.
В наборе два основных блока для разных контроллеров и наличия тачскрина. При создании проектов нужно выбрать подходящий главный блок.
По умолчанию все настройки находятся в файле User_Setup.h. библиотеки TFT_eSPI и используются из этого файла.
Для контроллеров ESP достаточно внести необходимые изменения в файле User_Setup.h.
Внимание!
Перед компиляцией необходимо раскомментировать строку #include "FS.h" и вписать в первую очередь, или применять пользовательский контроллер со вписанной строкой.
Эта библиотека должна быть первой, но по непонятной причине меняется очередность.
Для более расширенных настроек, в том числе и для STM32 необходимо в файле User_Setup_Select.h. закомментировать строку #include <User_Setup.h>
и из списка раскомментировать нужный файл, например #include <User_Setups/Setup32_ILI9341_STM32F103.h> // Setup for "Blue Pill"
а все изменения делать в файле Setup32_ILI9341_STM32F103.h из каталога User_Setups.
Для подключения русских шрифтов необходимо в каталог TFT_eSPI\Fonts\GFXFF\ распаковать архив с дополнительными шрифтами, а в файл gfxfont.h добавить следующие строки:
// Cyrillic (Russian fonts)
#include <Fonts/GFXFF/rusMono13x13.h>
#include <Fonts/GFXFF/rusMonoBold13x13.h>
#include <Fonts/GFXFF/rusMono17x15.h>
#include <Fonts/GFXFF/rusMonoBold17x15.h>
#include <Fonts/GFXFF/rusSerifBold17.h>
// Additional fonts
#include <Fonts/GFXFF/battery_24x48.h>
#include <Fonts/GFXFF/Picopixel.h>
Архив со шрифтами лежит по аресу viewtopic.php?f=72&t=6388
Для физического подключения тачскрина нужно соединить выводы по следующей схеме:
T_CLK --> SCK (SPI TFT)
T_DIN --> MOSI (SPI TFT)
T_DOUT --> MISO (SPI TFT)
T_CS --> (Задается в настройках файла)
T_IRQ --> (Не задействован)
Управление подсветкой дисплея (контакт LED) нужно подключит к +3,3 или к выводу DAC ESP32 для управления яркостью.
В своих настройках для ESP32 и дисплея с тачскрином ILI9341 в файле User_Setup.h. я раскомментировал строки 188-196 и вписал следующие значения
#define TFT_MISO 19
#define TFT_MOSI 23
#define TFT_SCLK 18
#define TFT_CS 5 // Chip select control pin
#define TFT_DC 21 // Data Command control pin
//#define TFT_RST 4 // Контакт сброса (может подключиться к контакту RST)
#define TFT_RST -1 // Установите TFT_RST в -1, если дисплей RESET подключен к плате ESP32 RST
18.09.2020
Добавил блоки в новой редакции. Попытался максимально адаптировать библиотеку под FLProg. Огромная благодарность автору за эту возможность!
Описание внутри каждого блока. Все необходимые изменения по прежнему в файле User_Setup.h. каталога библиотеки.
По в блоках умолчанию контроллер ESP32 под дисплей ILI9341 с тачскрином.
TFT_eSPI_(Code_-_Professional).ubi
Новый редактор
(2.67 МБ) 297 скачиваний
Вложения
ESP32-ILI9341 Statr.flp
Пример. Для калибровки из КОМ порта отправить calibrate
(778.25 КБ) 346 скачиваний
TFT eSPI.ubl
Конструктор из блоков
(1.05 МБ) 325 скачиваний
Последний раз редактировалось DrMario 18.09.2020{, 05:43}, всего редактировалось 2 раза.

aidar_i
Полковник
Сообщения: 2522
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 423
Откуда: Уфа
Имя: Айдар
Контактная информация:

Блоки для дисплеев TFT SPI

#21

Сообщение aidar_i » 18.02.2022{, 11:10}

Rovki писал(а):
18.02.2022{, 10:53}
может сменить общий фон экрана тогда старые надписи не будут видны. Но как?
Стирай с выводом этого текста цветом фона экрана.

Аватара пользователя
Rovki
Полковник
Сообщения: 4320
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 209
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Блоки для дисплеев TFT SPI

#22

Сообщение Rovki » 18.02.2022{, 11:15}

Так где это задать- цвет стирания ?
Электронщик до мозга костей и не только

av
Подполковник
Сообщения: 1417
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 126
Имя: Алексей

Блоки для дисплеев TFT SPI

#23

Сообщение av » 18.02.2022{, 11:22}

Rovki, на этих дисплеях нужно реализовывать стирание старой информации перед выводом новой. Есть два варианта затирания. Первый простой, закрашивать прямоугольником с цветом фона дисплея. Второй посложней. После вывода строки или графической фигуры нужно запоминать координаты в переменную, а так же строку или фигуру. Далее при замене строки стираем старую строку из памяти по старым координатам цветом фона дисплея. И только после этого пишем новую строку. Я немного слукавил про два способа есть конечно еще команда полного стирания всего дисплея. Но он не подходит если нужно стереть только конкретную строку или фигуру.

Я с этими блоками не знаком и по этому неясно создал ли Автор автостирание. Из ваших слов не понятно каким цветом был старый текст перед заменой на новый. Есть вероятность что затирание текста производится не цветом фона дисплея, а как вы указали "Фиолетовый".

Аватара пользователя
Rovki
Полковник
Сообщения: 4320
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 209
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Блоки для дисплеев TFT SPI

#24

Сообщение Rovki » 18.02.2022{, 11:53}

Нашел ,нужно поставить FillColor =0 в главном блоке :yes:
Электронщик до мозга костей и не только

Аватара пользователя
Rovki
Полковник
Сообщения: 4320
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 209
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Блоки для дисплеев TFT SPI

#25

Сообщение Rovki » 19.02.2022{, 11:42}

Осталось забороть русский текст :smile390: , все сделал как в 1 посте , но русский текст не хочет отображаться, только латиница , где еще копать?
Электронщик до мозга костей и не только

av
Подполковник
Сообщения: 1417
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 126
Имя: Алексей

Блоки для дисплеев TFT SPI

#26

Сообщение av » 19.02.2022{, 13:56}

Rovki, можете показть код блока вывода текста, честно не хочется качать блоки и устанавливать их.

Аватара пользователя
Rovki
Полковник
Сообщения: 4320
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 209
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Блоки для дисплеев TFT SPI

#27

Сообщение Rovki » 19.02.2022{, 22:19}

Разобрался , не тот блок вывода текста использовал ,нужно принт UTF8 :smile427: Спасибо .
Осталось разобраться с тач скрином , в моем экране тачскрин висит на I2C /
Электронщик до мозга костей и не только

av
Подполковник
Сообщения: 1417
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 126
Имя: Алексей

Блоки для дисплеев TFT SPI

#28

Сообщение av » 19.02.2022{, 22:51}

Rovki писал(а):
19.02.2022{, 22:19}
Осталось разобраться с тач скрином , в моем экране тачскрин висит на I2C /
Возможно вам повезло, что тач на I2C. А вот с тачем на SPI проблема несоответствия скоростей шины с дисплеем. По даташиту у тачскрина максимальная скорость шины SPI 2 Мгц, а на дисплее в зависимости от используемого микроконтроллера. На ЕСП до 40 Мгц и при такай частоте шины тач не работает. В этом случае нужно городить в каждом блоке тачскрина и дисплея изменение скорости SPI на лету при использовании того или иного блока. Надеюсь что такой проблемы нет с тачскрином на интерфейсе I2C.
Rovki писал(а):
19.02.2022{, 22:19}
Разобрался , не тот блок вывода текста использовал ,нужно принт UTF8 Спасибо .
Я по этому и спрашивал у вас код блока вывода текста кириллицы. Для русских символов нужна функция преобразования, добавляется в блок. Имя функции utf8rus();

Аватара пользователя
Rovki
Полковник
Сообщения: 4320
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 209
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Блоки для дисплеев TFT SPI

#29

Сообщение Rovki » 20.02.2022{, 13:46}

Для это дисплея setUp 201. Но вот как теперь тачскрин заставить работать ,всю голову сломал , хотя есть скетчи которые считывают с него правильно координаты и выводят в монитор. https://github.com/seaniefs/WT32-SC01-Exp . Нужно вносить изменения в БП. :smile427:
Электронщик до мозга костей и не только

nilov82
Рядовой
Сообщения: 1
Зарегистрирован: 29.04.2021{, 12:42}
Репутация: 0
Имя: Алексей

Блоки для дисплеев TFT SPI

#30

Сообщение nilov82 » 24.03.2022{, 09:44}

Добрый день, не подскажете, возможно ли вывести картинку на этих блоках?

kissmanyuriy
Рядовой
Сообщения: 3
Зарегистрирован: 31.10.2020{, 12:48}
Репутация: 0
Имя: Юрий

Блоки для дисплеев TFT SPI

#31

Сообщение kissmanyuriy » 31.05.2022{, 18:37}

TFT_eSPI_(Code_-_Professional)- эти блоки заработали без проблем с компиляцией. Но есть вопросы: Все одним цветом? Как картинку вставить? В User_Setup- меняю инверсию не меняется в проекте.

kissmanyuriy
Рядовой
Сообщения: 3
Зарегистрирован: 31.10.2020{, 12:48}
Репутация: 0
Имя: Юрий

Блоки для дисплеев TFT SPI

#32

Сообщение kissmanyuriy » 08.06.2022{, 08:22}

Добрый день, как можно например цвет изображения сделать не общим параметром в "TFT_eSPI_(Code_-_Professional)". Хотелось бы иметь разные цвета изображения.Тоже ругается на крупные шрифты. Допилите пожалуйста.

svv
Рядовой
Сообщения: 11
Зарегистрирован: 06.02.2022{, 21:33}
Репутация: 0
Имя: vxxx1980

Блоки для дисплеев TFT SPI

#33

Сообщение svv » 27.06.2022{, 16:24}

Народ. А подскажите пожалуйста, как вывести текст разного шрифта и цвета?

set0205
Рядовой
Сообщения: 1
Зарегистрирован: 17.05.2021{, 11:54}
Репутация: 0
Имя: Юрий

Блоки для дисплеев TFT SPI

#34

Сообщение set0205 » 30.07.2022{, 10:43}

Здравствуйте, касательно шрифтов, сделал всё по инструкции, но есть проблема с выводом кириллицы. Не выводятся кириллические символы. Похоже с utf8rus какие то проблемы. Нет доработок на эту тему?

Отправлено спустя 1 час 20 минут 39 секунд:
Разобрался, сам неверно делал.

Ответить

Вернуться в «Дисплеи, индикаторы и клавиатуры»