STM Урок 37. Дисплей TFT 240×320 8bit. Часть 9

 

 

 

Урок 37

Часть 9

 

Дисплей TFT 240×320 8bit

 

 

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

Сегодня мы продолжим данную работу.

Напишем прототип этой функции.

Добавим тест для вывода картинок на экран опять же в теле функции FileReadWrite

 

                        TFT9341_SetRotation(i%4);

                        }

                        TFT9341_SetRotation(0);

                        TFT9341_DrawBitmap(0, 0, "001.bmp");

                        HAL_Delay(5000);

                        TFT9341_DrawBitmap(0, 0, "002.bmp");

                        HAL_Delay(5000);

                        TFT9341_DrawBitmap(0, 0, "003.bmp");

                        HAL_Delay(5000);

                        TFT9341_DrawBitmap(0, 0, "004.bmp");

                        HAL_Delay(5000);

                        TFT9341_DrawBitmap(0, 0, "005.bmp");

                        HAL_Delay(5000);

                        TFT9341_DrawBitmap(0, 0, "006.bmp");

                        HAL_Delay(5000);

                        TFT9341_DrawBitmap(0, 0, "007.bmp");

                        HAL_Delay(5000);

                        TFT9341_DrawBitmap(0, 0, "008.bmp");

                        HAL_Delay(5000);

                        TFT9341_DrawBitmap(0, 0, "009.bmp");

                        HAL_Delay(5000);

                        TFT9341_DrawBitmap(0, 0, "010.bmp");

                        HAL_Delay(5000);

                        TFT9341_DrawBitmap(0, 0, "011.bmp");

                        HAL_Delay(5000);

                        TFT9341_DrawBitmap(0, 0, "012.bmp");

                        HAL_Delay(5000);

                        TFT9341_DrawBitmap(0, 0, "013.bmp");

                        HAL_Delay(5000);

                        TFT9341_DrawBitmap(0, 0, "014.bmp");

                        HAL_Delay(5000);

                        TFT9341_DrawBitmap(0, 0, "015.bmp");

                        HAL_Delay(5000);

                        TFT9341_DrawBitmap(0, 0, "016.bmp");

                        HAL_Delay(5000);

                        TFT9341_DrawBitmap(0, 0, "017.bmp");

                        HAL_Delay(5000);

                        TFT9341_DrawBitmap(0, 0, "018.bmp");

                        HAL_Delay(5000);

                        TFT9341_DrawBitmap(0, 0, "019.bmp");

                        HAL_Delay(5000);

                        TFT9341_DrawBitmap(0, 0, "020.bmp");

                        HAL_Delay(5000);

                        TFT9341_DrawBitmap(0, 0, "021.bmp");

                        HAL_Delay(5000);

                        TFT9341_DrawBitmap(0, 0, "022.bmp");

                        HAL_Delay(5000);        

 

 

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

 

image15

 

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

Раскомментируем предыдущие тесты и проверим код полностью.

 

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

 

Исходный код

 

Cодержимое FLASH Drive

Техническая документация на контроллер дисплея

 

 

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

STM32F4-DISCOVERY

Дисплей LCD 20×4

Где приобрести именно такой дисплей TFT 240×320, написать затрудняюсь, так как может прийти не всегда именно такой дисплей, какой заявлен в продаже. Либо придет подключаемый по SPI, либо с другим контроллером. Поэтому все тонкости уточняйте у продавца.

 

 

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

 

STM Дисплей TFT 240x320 8bit

12 комментариев на “STM Урок 37. Дисплей TFT 240×320 8bit. Часть 9
  1. Валерий:

    Владимир, добрый день! Спасибо за Ваши уроки, весьма полезные и качественные. Есть пожелание — оставляйте промежуточный код в частях урока, так проще с ними разбираться на пути освоения урока. При попытке повторить данный урок, я столкнулся с тем что у меня идет только часть теста графики и не идет часть с текстом и я уже не говорю о катрике. А урок весьма важный и полезный! И весьма интересна как сама шина, так ещё более интересен контроллер ILI9341!

  2. Валерий:

    Да и к тому же Ваш пример сильно мне помог! Я им проверял полученные дисплеи! И только 3-й дисплей оказался не бракованным и с нужным контроллером, хотя все заявляли что у них ILI9341! Спасибо!

  3. Алексей:

    а без LCD дисплея будет работать? Что-то подсветка горит, а картинки нет

  4. Игорь:

     

    Здравствуйте , Возникли проблемы по работе с данным дисплеем,

    У меня другая плата и команды Chip Select я выбрал NE4, команду LCD Register Select на A6

    1) Вопрос про вот эти значения откуда они берутся?

    #define ADDR_CMD *(uint8_t*)0x60000000

    #define ADDR_DATA *(uint8_t*)0x60010000

    2) в файле ili9341.c ругается на строку extern void Error_Handler(void);

    3) Обязательно ли подключать вывод RES на дисплее?  дело в том что у меня этот вывод идет на кнопку ресет.

  5. Илья:

    Очернь понравились уроки, дисплей с али заработал без проволочек

     Прошу не этом не останавливаться и например сделать урок гле, например, stm будет по дисплею крутить видео снятое на какой нить нокии 2690

    • Это нужен будет как минимум STM32F769, который поддерживает аппаратное декодирование JPEG.

      • Илья:

        так ведь там h263

         

        вот пример видео, очень старое

        https://yadi.sk/i/IYWyyTAh3MYYeR

         

        STM может потянуть такое?

         

        сведения их mediainfo

        Video
        ID                          : 1
        Format                      : H.263
        Format profile              : BaseLine@1.0
        Codec ID                    : s263
        Duration                    : 58 s 187 ms
        Bit rate                    : 69.9 kb/s
        Width                       : 176 pixels
        Height                      : 144 pixels
        Display aspect ratio        : 1.222
        Original display aspect rat : 4:3
        Frame rate mode             : Variable
        Frame rate                  : 9.796 FPS
        Minimum frame rate          : 1.458 FPS
        Maximum frame rate          : 43.388 FPS
        Color space                 : YUV
        Chroma subsampling          : 4:2:0
        Bit depth                   : 8 bits
        Compression mode            : Lossy
        Bits/(Pixel*Frame)          : 0.281
        Stream size                 : 496 KiB (83%)
        Writing library             : hant
        Language                    : English
        Encoded date                : UTC 2016-10-10 11:57:06
        Tagged date                 : UTC 2016-10-10 11:57:06

        Audio
        ID                          : 2
        Format                      : AMR
        Format/Info                 : Adaptive Multi-Rate
        Format profile              : Narrow band
        Codec ID                    : samr
        Duration                    : 58 s 320 ms
        Bit rate mode               : Constant
        Bit rate                    : 12.8 kb/s
        Channel(s)                  : 1 channel
        Sampling rate               : 8 000 Hz
        Bit depth                   : 13 bits
        Stream size                 : 91.1 KiB (15%)
        Writing library             : Nokia
        Language                    : English
        Encoded date                : UTC 2016-10-10 11:57:06
        Tagged date                 : UTC 2016-10-10 11:57:06

  6. Михаил:

    Добрый день. Отличный урок.

    Только есть один вопрос: как происходит совмещение логических уровней? 

    Ведь дисплейчик работает в пятивольтовой логике, а АРМ — в трехвольтовой. Может я что-то не заметил в Вашем уроке? Объясните, пожалуйста.

    • Здравтсвуйте!
      Да всё нормально там работает. Дисплей работает от 3 вольт. От 5 вольт работает подстветка. Вроде так. Ну если что как правило производители делают ножки толерантными к более низким уровням.

      • Михаил:

        Спасибо.  А то видел у какого-то итальянца, он отпаивал стабилизатор и шины на 3,3 и 5 вольт закорачивал, когда подключал к STM. Типа, это фича такая с этим дисплейчиком и STM.

        У Вас отличные уроки.

  7. Артём:

    Добрый вечер.
    Нужно бы урок с подключением touchscreen у этого шилда.

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

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

*