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



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

 

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

 

 

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

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

 

 

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

 

 

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

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

 

 

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

 

 

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

 

 

 

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

 

 

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

 

 

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

 

 

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

 

 

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

 

 

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

Из проекта урока 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 добавим тест по выводу текста на экран — сначала посимвольно, а затем строками, используя шрифты различного размера, цвета на различном фоне, а также меняя ориентацию экрана

 

 

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

 

  

 

 

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

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

 

Данная статья в Дзен.

 

 

Предыдущая часть Программирование МК ESP32 Следующий урок

 

Исходный код

 

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

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

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

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

 

Смотреть ВИДЕОУРОК в YouTube (нажмите на картинку)

 

ESP32 SPI. Дисплей TFT 240×320

 

Смотреть ВИДЕОУРОК в Дзен (нажмите на картинку)

 

ESP32 SPI. Дисплей TFT 240×320

Один комментарий на “ESP32 Урок 11. SPI. Дисплей TFT 240×320. Часть 3
  1. Andry03:

    Здравствуйте!

    Большое спасибо за уроки. Всё прекрасно работает.
    Добавил в файлики шрифтов русские буквы,
    в подпрограмму вывода символа — несколько строчек распознавания
    кодов русских символов — и всё стало вообще великолепно.
    (шрифты рисовал сам давно, изучая 37 урок по stm32)
    в main немного похулиганил, добавив тесты вывода всех симолов
    на экран для разных шрифтов

    если интересно что получилось:
    https://disk.yandex.ru/d/aeoWxwXu-Rzxgw

    С уважением Андрей Охапкин, г.Калуга

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*