Меню сайта
Календарь
|
TFT-shield (2.4) & STM32L DISCOVERY
Еще один LCD в моей "копилке".Предназначен для Arduino (соответствующее расположение пинов),причем качество изготовления шилда ,мягко говоря - неочень...Хотя на мой взгляд,за те деньги ,за которые я купил "девайс",он является хорошей альтернативой всяким цветным дисплеям от мобильных телефонов (в которых надо паять шлейфа) + немаловажная деталь слот для SD-карты.Купил чисто поиграться - подключить его к STM32.Подключается шилд по 8-ми битной шине. Продавец утверждал о наличии встроеного контролера st7781.Но на практике оказался ILI9325. Вообще с контролером LCD поначалу были полные непонятки,"китай" знаете ли...Пока разобрался ,пришлось оснавательно проштудировать инет.Сначала работал с платой STM32F4 Discovery ."Перелопатил" немало примеров,которые удалось вытянуть из сети.Остановился на варианте http://pastebin.com/wbn9Eqpx .Его основным достоинством ,на мой взгляд,является простота (без всяких там FSMC и ОС) - простой "ногодрыг". Также подключал дисплей к плате STM32F4 Discovery через FSMC,без ОС (https://github.com/stm32f4/library/tree/master/ILI9325).Код работает... Дабы не мучить F4 Discovery,своими эксперементами - решил перейти на платформу STM32L Discovery .На плате установлен микроконтролер STM32L152RBT6,в котором отсутсвует интерфейс FSMC.Хотя ,к слову, он имеется на более "мощных" чипах L-серии,например плата STM32L152-EVAL (Evaluation board for STM32L1 series - with STM32L152VB MCU).Поэтому в качестве основы использовал код http://pastebin.com/wbn9Eqpx. Первое ,что я зделал - это разогнал STM32L Discovery до максимальных 32 МГц,от встроеного генератора (на плате не установлен кварцевый резонатор),следуя рекомендациям отсюда http://chipspace.ru/stm32l-max-sysclk/.Скорость работы LCD зависит от скорости МК.Это особенно заметно после перехода с STM32F4 Discovery (168 МГц) на STM32L Discovery (32 Мгц) ... Сам код с источника http://pastebin.com/wbn9Eqpx ,я разделил на два файла TFT_lcd.с и TFT_lcd.h ,также в библиотеке имеется файл шрифта font.h . Кроме того код позволяет посмотреть ,на каком контролере работает LCD.В функции init файла TFT_lcd.с ,за это отвечают строки IC_CODE = readRegister(0x0); if(!IC_CODE) В моем случае ,при отладке в KEIL получилось следующее :
![]() В источнике https://elty.pl/pl/n/3 имеется такая таблица ,откуда выходит ,что контролер в моем LCD - ILI9325
Далее, еще одни "грабли" на которые я попал .Пин RESET LCD должен быть поключен к пину NRST платы Discovery. Кроме того, пины LCD_PINS (D0...D8) подключены к одному порту.Так-же к одному порту поддключены пины LCD_CONT .В моем случае LCD_PINS (D0...D8) - порт С , LCD_CONT (CS ,RS , WR ,RD) - порт В .Пины прописываются в файле TFT_lcd.h : #define LCD_IOP GPIOB //LCD_PINS #define CS GPIO_Pin_0 Схема подключения : Саму библиотеку пришлось немного переделать.Дело в том ,что функция drawString ,которая отвечает за вывод строки пригодна разве,что для разового вывода символов.На практике ,при выводе , например постоянно меняющейся переменной, один символ накладывается на другой.Для себя решение нашел в том,что прежде чем вывести символ, место под него закрашивается под цвет фона .В программе появились две новые функции , которые я назвал drawChars и drawStrings .Теперь кроме цвета сивола, нужно указать цвет фона ,например: drawStrings("Hello World",10,10, 2, WHITE, BLACK); где WHITE - цвет символа ; BLACK - цвет фона ; Это хотя полностью и не решает проблему (заметно некоторое мерцание), но все же позволяет работать с переменными.Далее предлагаю сообществу тестовый проект, где кроме стандартных функций вывода символов и геометрических фигур, организован вывод на экран дисплея часов реального времени (встроеных в STM32L). Cсылка на проект для Keil 5 - http://radiomanoff.at.ua/load/tft/1-1-0-26 . PS. Вообще-то библиотека нуждается в некоторой доработке,заинтересованых милости прошу на форум - http://radiomanoff.at.ua/forum/4-1-1. WARNING !!! Осторожно. Попался точно такой-же "шилд" , но с контролером ILI9341. О его подключении к STM32L Discovery во второй части - tft_shield_2_4_stm32l_discovery_part_2 . P.S.A также рабочий код для Keil 5 для STM32F103C8 - tft_shield_2_4_stm32f103c8 .
|
Архив записей
Друзья сайта
Статистика
Онлайн всього: 1 Гостей: 1 Користувачів: 0 |