STM Урок 179. Дисплей TFT 240×320. SPI. Часть 2

 

 

 

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

 

Для следующего теста нужны будут маленькие задержки.

Добавим функцию задержки в микросекундах

 

 

А также нужна будет функция вывода точек на экран.

Поэтому идём в файл spi_ili9341.c и ниже функции TFT9341_FillScreen добавим данную функцию

 

 

Добавим на данную функцию прототип, вернёмся в наш бесконечный цикл и напишем там тест, который будет выводить в случайные места точки случайного цвета

 

 

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

 

 

Отлично!

В файле spi_ili9341.h подключим ещё одну библиотеку

 

 

Добавим в файле spi_ili9341.c после функции TFT9341_DrawPixel функцию отрисовки на дисплее прямой линии

 

 

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

 

 

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

 

 

В следующем тесте будем чертить отрезки случайного цвета из случайной точки в случайную точку

 

 

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

 

 

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

 

 

Добавим на данную функцию прототип в заголовочном файле и напишем тест в бесконечном цикле, который будет рисовать прямоугольники последовательно от края к центру экрана

 

 

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

 

 

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

 

 

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

 

 

Испытаем тест

 

 

Всё работает.

Теперь поработаем с текстом.

Для этого из репозитория Cube не важно для какого контроллера, можно и для нашего — F4, из папки UtilitiesFonts добавим файлы шрифтов (все файлы кроме Release_Notes.html) в папку Inc нашего проекта.

 

 

Заголовочный файл подключим в файле spi_ili9341.h

 

 

А остальные файлы подключим в файле spi_ili9341.c

 

 

Объявим тип структуры для инициализации шрифта и цвета текста

 

 

Выше функции инициализации дисплея добавим функцию первоначальной инициализации шрифтов

 

 

Вызовем её в самом конце тела функции инициализации дисплея

 

 

Ниже функции TFT9341_RandColor добавим три функции для установки цвета текста, цвета заливки и шрифта

 

 

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

 

 

Подобная функция у нас была в уроке 37 и не только, поэтому код её объяснять нет смысла.

Далее добавим функцию вывода строки в определённую позицию экрана

 

 

А также ниже добавим функцию изменения ориентации экрана

 

 

Такая функция тоже у нас была.

Добавим на эти функции прототипы в заголовочном файле

 

 

Вернёмся в бесконечный цикл и добавим там тест по выводу отдельных символов на экран дисплея

 

 

Соберём код, прошьём контроллер и посмотрим, как выводятся наши символы

 

 

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

 

 

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

 

 

Теперь можно раскомментировать остальные тесты и запустить их все вместе.

Итак, сегодня нам удалось запустить дисплей на контроллере ILI9341, подключенный по шине SPI к контроллеру STM32F4, также запустить на нём несколько тестов, используя возможности библиотеки HAL.

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

 

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

Исходный код

 

 

Отладочную плату и дисплей можно приобрести здесь:

STM32F4-DISCOVERY

2,8 дюймов 240×320 SPI TFT LCD

 

 

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

 

STM Name

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

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

*