Найти в Дзене
narod stream

ESP32 Урок 11. SPI. Дисплей TFT 240×320. Часть 3

В предыдущей части урока мы начали писать тесты для проверки работы дисплея, добавляя при этом дополнительные служебные функции.

Вернёмся в файл spi_ili9341.c и и выше функции TFT9341_ini добавим функцию вывода прямой линии на экран

Все эти функции нам знакомы ещё со времён работы с контроллерами AVR. На других контроллерах мы их только обкатывали и доводили до ума. Поэтому рассказывать о коде в их телах, думаю, что нет смысла.

Объявим на данную функцию прототип в заголовочной функции и добавим в бесконечном цикле в функции app_main файла main.c ещё один тест по выводу параллельных линий случайного цвета на экран

Посмотрим, как работает код данного теста

Линии выводятся не очень быстро, так как вывод идёт попиксельный. Можно, конечно сделать отдельные функции вывода горизонтальных и вертикальных линий, где выводить их как прямоугольники, но я заморачиваться не стал, думаю, это несложно и кому потребуется, тот сделает это самостоятельно.

Теперь добавим ещё один тест по выводу линий со случайными координатами

Посмотрим, как работает тест

-2
-3

Вернёмся в файл spi_ili9341.c и выше функции TFT9341_ini добавим функцию вывода неокрашенного прямоугольника (только его границы)

Добавим на функцию прототип в заголовочном файле и в бесконечном цикле в функции app_main файла main.c добавим ещё один тест по выводу прямоугольников на экран

Проверим, как работает тест

-4

Перейдём в файл spi_ili9341.c и выше функции TFT9341_ini добавим функцию вывода окружности определённого цвета и радиуса на экран

Объявим прототип данной функции в заголовочном файле и в бесконечном цикле в функции app_main файла main.c добавим ещё один тест по выводу окружностей определённого радиуса случайного цвета в случайные места экрана

Проверим данный тест

-5

Теперь вывод текста.

Из проекта урока 171 по контроллерам STM32 с именем ILI9341_SPI скопируем файлы fonts.hfont8.cfont12.cfont16.cfont20.c и font24.c в каталог main нашего проекта.

Подключим файл fonts.h в файле spi_ili9341.h

Не забываем также подключить файлы в CMakeLists.txt

set(COMPONENT_SRCS "main.c spi_ili9341.c font24.c font20.c font16.c font12.c font8.c")

В файле spi_ili9341.c объявим глобальную структуру вместе с переменной

Выше функции TFT9341_ini добавим функции инициализации цвета текста и фона, а также размера шрифта

Ниже добавим функцию вывода символа на экран

Ещё ниже — функцию вывода на экран строки текста

Ещё ниже — функцию изменения ориентации экрана

В заголовочном файле добавим на все эти 6 функций прототипы и в бесконечном цикле в функции app_main файла main.c добавим тест по выводу текста на экран — сначала посимвольно, а затем строками, используя шрифты различного размера, цвета на различном фоне, а также меняя ориентацию экрана

Испытаем работу данного теста

-6
-7
-8
-9
-10

Итак, на данном уроке мы закрепили знания по программированию передачи данных по шине SPI, также изучили некоторые новые тонкости по данной теме, подключив цветной дисплей TFT разрешением 320×240 к контроллеру ESP32.

Всем спасибо за внимание!

Оригинал статьи находится здесь.

<<Предыдущая часть | Следующий урок>>

Исходный код

Недорогие отладочные платы ESP32 можно купить здесь: Недорогие отладочные платы ESP32

Дисплей 2,8 дюймов 240×320 SPI TFT LCD

Логический анализатор 16 каналов можно приобрести здесь

Многофункциональный переходник CJMCU FT232H USB к JTAG UART FIFO SPI I2C

Видео в RuTube

Программирование МК ESP32. Урок 11. SPI. Дисплей TFT 240×320. Часть 3

Видео в Дзен

Видео в Youtube