Как подключить дисплей 3.2 LCD Module

AlexRyzh
Offline
Зарегистрирован: 11.11.2015

Вместе с Мега 2560 заказал вот такой дисплей

http://ru.aliexpress.com/item/Free-Shipping-1pcs-lot-3-2-TFT-LCD-Module-...

Подскажите как его подключить? Это возможно без дополнительной платы? Как разобраться с распиновкой, что куда присоединять? К сожалению там фото обратной стороны платы нет. Вот я сфотал его заднюю сторону:

 

038d69f8e6dat.jpg

 

AlexRyzh
Offline
Зарегистрирован: 11.11.2015

И еще вопрос. Я купил эту Ардуину http://www.aliexpress.com/snapshot/7094119787.html?orderId=70976858832287

Эта модель должна иметь какую тактовую частоту? 16000?

Здесь у меня написано 12000 это так должно быть? Это указана тактовая частота?

Можно ли это объявить несоответствием описанию?

46ed7cc63f14t.jpg

Radjah
Offline
Зарегистрирован: 06.08.2014

Это кварц к контроллеру вообще отношения не умеет. Он для UART-USB.

diger67
Offline
Зарегистрирован: 25.07.2015

AlexRyzh пишет:

И еще вопрос. Я купил эту Ардуину http://www.aliexpress.com/snapshot/7094119787.html?orderId=70976858832287

Эта модель должна иметь какую тактовую частоту? 16000?

Здесь у меня написано 12000 это так должно быть? Это указана тактовая частота?

Можно ли это объявить несоответствием описанию?

46ed7cc63f14t.jpg

Кварц становлен SMD,  по размеру ну очень мелкий, установлен рядом с megs2560. Теперь как проверить тот ли кварц. Заливаем Blink скетч, ставим задержку 1000 mS, смотрим с какой частотой мигает светодиод.

slider
Offline
Зарегистрирован: 17.06.2014

Переходим из соседней темы http://arduino.ru/forum/apparatnye-voprosy/tft-35-i-arduino?page=17

дабы её не загаживать . 

повторюсь: 


Трёхнога "662K" в корпусе sot23 похожа на стабилизатор +3,3в. Перемычку J1 не трогайте, она закорачивает внутренние дисплейные 3,3в на VDD. На место U3 можно по желанию запаять микросхемку внешней памяти SPI FLASH , к примеру вроде для хранения своих картинок, шрифтов, и всякого другого.
1. RD (Read Data) - чтение данных из дисплея. пока через резистор подключите на 42пин Меги, узнаете какой контроллер в дисплее стоит. Читалка  ID v2.0 https://yadi.sk/d/I7C36vqtkpb86  (прочтите здесь хоть несколько страниц ранее, как посмотреть и выложить здесь)., потому как на Али на похожих пишут про SSD1289/HX8347/ILI9341 Потом подключите RD  через резистор на 5в . 
2.3.    GND   и  VDD (+5,5v)  подключаются напрямую, как можно короче и если есть потолще  провода. Сигнал подсветки BL можно попробовать подключить  на  +5в (по фото он вроде через 1ком резистором управляет транзистором. 
 Другие пины (карты памяти, тача , флэша  и их включение (ChipSelect:   SD_CS, T_CS , F_CS ) пока не используйте, запустите сначала дисплей. 

Подключайте так как вы перерисовали:

Только каждому DB по своему резистору 10кОм, а не все вместе одним как на рисунке. 

 Макетка с модулем питания 5в3.3в не нужна. Подаете питание, удостоверяетесь, чта на "662К" есть +3,3в . Если выше 3,6в, то поставьте стабилитрон на +3,3в  // (параллельно кондеру С1.       Т.е. на +3,3в - катодом вверх(черная полоска на стобилитроне) , а на GND  анодом вниз) 

запускаете читалку ID, открываете монитор сериал порта в Ардуино IDE , скорость 9600.  и смотрите что он выдал.  Копируете сюда (вставляете через "вставка-редактирование кода" , там в "дополнительно" ставите галку   Сворачитьвать код по умолчанию

AlexRyzh
Offline
Зарегистрирован: 11.11.2015

Естественно на каждый ДБ свой резистор. Спасибо, что напомнили, но если даже этого не понимать, то браться за подобное не стоит:)

Подал питание 3.3 с Ардуино, на "662К" показало 3.1В, а подключил 5В на "662К" показало 3.3В

Запустил читалку, вот данные с монитора

На BL, (подсветку дисплея) подавал 3.3 и 5 В без разницы, яркость одна

start... 
UTFT normal   pin29-22(PORTA)-byteH(DB15-0) , pin37-30(PORTC)-byteL(DB7-0)

register 00h for ILI9320(9320), ILI9325(9325), ILI9326(9326), SSD1289(1289,8989)
                 HX8347D(047),  HX8347G(075),  HX8352A(052),  HX8352B(065), HX8352C(072)
                 R61509V(B509), R61505W(C505), SPFD5420A(5408) 
if  (0 93 0 27) -> 8bit  .  if  (93 27 93 27) -> 16bit 
register 0 0
1 Parameter   0 0
2 Parameter   0 0
3 Parameter   0 0
4 Parameter   0 0
5 Parameter   0 0
6 Parameter   0 0

register EFh for ILI9327(0 02 04 93 27 FF),   
register 0 EF
1 Parameter   0 0
2 Parameter   0 FF
3 Parameter   0 F
4 Parameter   0 FF
5 Parameter   0 F
6 Parameter   0 FF

register BFh for ILI9481(0 0 94 81 xx xx)  
register 0 BF
1 Parameter   0 0
2 Parameter   0 0
3 Parameter   0 0
4 Parameter   0 0
5 Parameter   0 0
6 Parameter   0 0

register D3h for ILI9488(0 0 94 88 xx xx)   
register 0 D3
1 Parameter   0 0
2 Parameter   0 0
3 Parameter   0 0
4 Parameter   0 0
5 Parameter   0 0
6 Parameter   0 0

register 04h for HX8357(?DA-DC), HX8353(?80-85),   
register 0 4
1 Parameter   0 0
2 Parameter   0 0
3 Parameter   0 0
4 Parameter   0 0
5 Parameter   0 0
6 Parameter   0 0
AlexRyzh
Offline
Зарегистрирован: 11.11.2015

Теперь подключил RD на 5В через резистор 10К. Пытаюсь загрузить демонстрацию экрана из примеров, экран белый светится и ничего не происходит. Может скетчи не подходят для этого экрана? 

На самой Ардуино светодиод мигает (похоже программа работает) но мдисплей молчит.

Может подскажите скетч, который точно должен работать на этом дисплее?

slider
Offline
Зарегистрирован: 17.06.2014

читалка могла определить работоспособность, тип контроллера, битность, т.е. какой именно скетч(инициализация) подойдёт. Есть подозрение что старому типу контроллера ssd1289 чтото ещё надо, мож первых времен или неисправен. Возможно уменьшить номиналы резисторов. Пошукай в прошлой теме, там встречался не такой, но немного похожий синий шилд, там форумчанин подключал напрямую и проводил исследование , при каких номиналах резисторов он работоспособен.   У меня ssd1289 , читалка считывает 0x8989 - это доработанная версия контрололера 1289, работает как и все на 10кОм.

отпишись вместо лички на  segun соб. яндekc ру . и фотку скинь на столе как получилось.

AlexRyzh
Offline
Зарегистрирован: 11.11.2015

Подскажите скетч демо экрана, который точно должен работать при данной распиновке. А так я даже не знаю как должен вести себя экран :(

AlexRyzh
Offline
Зарегистрирован: 11.11.2015

slider пишет:

читалка могла определить работоспособность, тип контроллера, битность, т.е. какой именно скетч(инициализация) подойдёт. Есть подозрение что старому типу контроллера ssd1289 чтото ещё надо, мож первых времен или неисправен. Возможно уменьшить номиналы резисторов. Пошукай в прошлой теме, там встречался не такой, но немного похожий синий шилд, там форумчанин подключал напрямую и проводил исследование , при каких номиналах резисторов он работоспособен.   У меня ssd1289 , читалка считывает 0x8989 - это доработанная версия контрололера 1289, работает как и все на 10кОм.

отпишись вместо лички на  segun соб. яндekc ру . и фотку скинь на столе как получилось.

Т.е читалка определила что тип контроллера ssd1289? Там много цифр, как понять по читалке какой контроллер?

AlexRyzh
Offline
Зарегистрирован: 11.11.2015

Соединил напрямую без резисторов. Снова запустил читалку, цифры другие стали вот результат:

Вот название дисплея у продавца. Контроллер ssd1289 по ходу

1 шт. / lot 3,2 " TFT жк-дисплей модуль дисплей + сенсорный экран панель + печатная плата адаптер синий SSD1289 с карта SD orignal

start... 
UTFT normal   pin29-22(PORTA)-byteH(DB15-0) , pin37-30(PORTC)-byteL(DB7-0)

register 00h for ILI9320(9320), ILI9325(9325), ILI9326(9326), SSD1289(1289,8989)
                 HX8347D(047),  HX8347G(075),  HX8352A(052),  HX8352B(065), HX8352C(072)
                 R61509V(B509), R61505W(C505), SPFD5420A(5408) 
if  (0 93 0 27) -> 8bit  .  if  (93 27 93 27) -> 16bit 
register 0 0
1 Parameter   0 0
2 Parameter   0 0
3 Parameter   0 0
4 Parameter   0 0
5 Parameter   0 0
6 Parameter   0 0

register EFh for ILI9327(0 02 04 93 27 FF),   
register 0 EF
1 Parameter   0 0
2 Parameter   0 3
3 Parameter   0 80
4 Parameter   0 2
5 Parameter   0 2
6 Parameter   0 2

register BFh for ILI9481(0 0 94 81 xx xx)  
register 0 BF
1 Parameter   0 0
2 Parameter   0 0
3 Parameter   0 0
4 Parameter   0 0
5 Parameter   0 0
6 Parameter   0 0

register D3h for ILI9488(0 0 94 88 xx xx)   
register 0 D3
1 Parameter   0 0
2 Parameter   0 0
3 Parameter   0 93
4 Parameter   0 41
5 Parameter   0 41
6 Parameter   0 41

register 04h for HX8357(?DA-DC), HX8353(?80-85),   
register 0 4
1 Parameter   0 0
2 Parameter   0 0
3 Parameter   0 0
4 Parameter   0 0
5 Parameter   0 0
6 Parameter   0 0

Перествил RD 5В, загрузил демку из библиотеки UTFT работает только подсветка (белый экран). Подсветка включается одновременно с присоединением USB

AlexRyzh
Offline
Зарегистрирован: 11.11.2015

Что означают эти цифры, и как понять какие цифры прописать для своего дисплея?

// Remember to change the model parameter to suit your display module!
UTFT myGLCD(SSD1289,15,18,11,32);
diger67
Offline
Зарегистрирован: 25.07.2015

AlexRyzh пишет:

Соединил напрямую без резисторов. Снова запустил читалку, цифры другие стали вот результат:

Вот название дисплея у продавца. Контроллер ssd1289 по ходу

1 шт. / lot 3,2 " TFT жк-дисплей модуль дисплей + сенсорный экран панель + печатная плата адаптер синий SSD1289 с карта SD orignal

start... 
UTFT normal   pin29-22(PORTA)-byteH(DB15-0) , pin37-30(PORTC)-byteL(DB7-0)

register 00h for ILI9320(9320), ILI9325(9325), ILI9326(9326), SSD1289(1289,8989)
                 HX8347D(047),  HX8347G(075),  HX8352A(052),  HX8352B(065), HX8352C(072)
                 R61509V(B509), R61505W(C505), SPFD5420A(5408) 
if  (0 93 0 27) -> 8bit  .  if  (93 27 93 27) -> 16bit 
register 0 0
1 Parameter   0 0
2 Parameter   0 0
3 Parameter   0 0
4 Parameter   0 0
5 Parameter   0 0
6 Parameter   0 0

register EFh for ILI9327(0 02 04 93 27 FF),   
register 0 EF
1 Parameter   0 0
2 Parameter   0 3
3 Parameter   0 80
4 Parameter   0 2
5 Parameter   0 2
6 Parameter   0 2

register BFh for ILI9481(0 0 94 81 xx xx)  
register 0 BF
1 Parameter   0 0
2 Parameter   0 0
3 Parameter   0 0
4 Parameter   0 0
5 Parameter   0 0
6 Parameter   0 0

register D3h for ILI9488(0 0 94 88 xx xx)   
register 0 D3
1 Parameter   0 0
2 Parameter   0 0
3 Parameter   0 93
4 Parameter   0 41
5 Parameter   0 41
6 Parameter   0 41

register 04h for HX8357(?DA-DC), HX8353(?80-85),   
register 0 4
1 Parameter   0 0
2 Parameter   0 0
3 Parameter   0 0
4 Parameter   0 0
5 Parameter   0 0
6 Parameter   0 0

Перествил RD 5В, загрузил демку из библиотеки UTFT работает только подсветка (белый экран). Подсветка включается одновременно с присоединением USB

Я уже писал вам, это ili9341, о чем говорит ответ на запрос ili9488. у них одинаковый протоколл и инициализация, разница в разрешении. У первого 320х240, у второго 480х320. Инициализируйте его как ili9341 с разрешением 320х240. В UTFT к сожалению надо править для работы с этим контроллером. Или если есть либа для ili9488 16bit изменить разрешение на 320х240 и залить скомпилированный с этими параметрами скетч.

diger67
Offline
Зарегистрирован: 25.07.2015

AlexRyzh пишет:

Что означают эти цифры, и как понять какие цифры прописать для своего дисплея?

// Remember to change the model parameter to suit your display module!
UTFT myGLCD(SSD1289,15,18,11,32);

Указывают с каким чипом и по каким пинам ардуино выдает управляющие сигналы.(RD, WR, RS, CS)

Какой сигнал по какому пину смотрите в прототипе функции

AlexRyzh
Offline
Зарегистрирован: 11.11.2015

А как же RD прописать, если slider сказал подключть его на 5В "...Потом подключите RD  через резистор на 5в . ..."  http://arduino.ru/forum/apparatnye-voprosy/tft-35-i-arduino?page=17#comment-154232

AlexRyzh
Offline
Зарегистрирован: 11.11.2015

Вот slider давл ссылку, посмотреть распиновку. Тут точно такой дисплей как у меня http://ru.aliexpress.com/item/Wholesale-3-2-Inch-240-320-Touch-Tft-Display-LCD-Module-Pcb-Parallel-Port-SSD1289-ILI9341/32368408414.html

Там есть распиновка для SMT32, для Ардуино нет. Получается она не предназначена для Ардуино

diger67
Offline
Зарегистрирован: 25.07.2015

AlexRyzh пишет:

Вот slider давл ссылку, посмотреть распиновку. Тут точно такой дисплей как у меня http://ru.aliexpress.com/item/Wholesale-3-2-Inch-240-320-Touch-Tft-Display-LCD-Module-Pcb-Parallel-Port-SSD1289-ILI9341/32368408414.html

Там есть распиновка для SMT32, для Ардуино нет. Получается она не предназначена для Ардуино

В ссылке указано, что шилд поставляется или с SSD1289, или с ILI9341. Это разные чипы. Использовать его можно и с  AVR и c ARM. Все что нужно для подключения к arduino slider писал и не раз....

AlexRyzh
Offline
Зарегистрирован: 11.11.2015

diger67 пишет:

AlexRyzh пишет:

Что означают эти цифры, и как понять какие цифры прописать для своего дисплея?

// Remember to change the model parameter to suit your display module!
UTFT myGLCD(SSD1289,15,18,11,32);

Указывают с каким чипом и по каким пинам ардуино выдает управляющие сигналы.(RD, WR, RS, CS)

Какой сигнал по какому пину смотрите в прототипе функции

Всетаки как правильно идентифицировать дисплей? Если RD подключается  к 5В через резистор, а здесь по таблице к 3.3В (здесь видно что резисторы 1К, буду такие ставить)  http://store.iteadstudio.com/images/produce/Shield/ITDB02MEGAShield/ITDB02MEGAshield_DS.pdf

И если согласно этого (RD, WR, RS, CS), то WR, RS, CS я подключил к пинам 39, 38, 40, а как указать RD?, если подключается к 5В? Выше есть картинка подключения.

И как прописать все-же контроллер? Продавец заявил что контроллер SSD1289? diger67 утверждает что контроллер "...это ili9341, о чем говорит ответ на запрос ili9488..."

Кроме того, если я в строке инициализации пишу просто ILI9341, то компиляция не проходит, т.к. в библиотеке записано как ILI9341_S5P или ILI9341_S4P. И еще есть такая запись в этой библиотеке:

#define TFT01_18SP 24 // ST7735S  (Serial 5Pin)

#define TFT01_22SP 25 // ILI9341 (Serial 5Pin)
#define TFT01_24SP 25 // ILI9341 (Serial 5Pin)
#define TFT22SHLD 25 // ILI9341 (Serial 5Pin)
#define DMTFT28105      25  // ILI9341  (Serial 5Pin)
#define MI0283QT9 26  // ILI9341 (Serial 4Pin)
Но с этим можно поиграться, подставлять разные названия контроллеров, а вот как быть с числами???
slider
Offline
Зарегистрирован: 17.06.2014

поищите пока в соседней ветке, я выкладывал модификациию UTFT для ili9341 16бит. ну или пользуйте Adafruit .

slider
Offline
Зарегистрирован: 17.06.2014

RD в UTFT не используется, для работы библиотеки надо подавать на него лог.1  (+3.3в  или через резистор на +5в)

Раз при подключении напрямую, читалка заработала, так и оставляйте.  Только замерьте напр. +3,3в на шилде.

Читалка ID выдала что внятно ответил регистр 0хD3 данными 9341 . Это одноименный контроллер ili9341. 

Так всё ясно, можно запускать и пользоваться. Adafruit заработает, в UTFT внести маленькое изменение.

 Но для  получения опыта предлагаю:

1. попробуйте все резисторы поменять на 1кОм , и запустить читалку, разместите сюда что выдала.

2. подключаете RD на +. Скачиваете девственную UTFT, открываете в блокноте UTFT.cpp , находите строчку  byte dtm[] = {16, 16, 16, 8, 8, ......  , SERIAL_5PIN, SERIAL_5PIN}; и все параметры в ней заменяете на 16 . Сохраняете. Запускаете UTFT\examples\Arduino (AVR)\UTFT_Demo_320x240 , перебираете по очереди в строчке инициализации первое число от 0 до 31     ( UTFT myGLCD(0,38,39,40,41); до UTFT myGLCD(31,38,39,40,41); ) , каждый раз заливая этот скетч, ждете секунд 5, записываете какое изображение показывает экран (белый, перевёрнутое изображение, зеркальное, мельчешащее, серое, чёткое с правильной цветопередачей) - напишите сюда на каких инициализациях картинка хорошая. Эт мы узнаем какие инициализации ещё подходят для ili9341, кроме её собственной. //просто я встречал, подобными переборами удавалось подобрать лучшую инициализачию, чем ранее предполагалось.

 

 

AlexRyzh
Offline
Зарегистрирован: 11.11.2015

Подключил через 1К вот читалка:

start... 
UTFT normal   pin29-22(PORTA)-byteH(DB15-0) , pin37-30(PORTC)-byteL(DB7-0)

register 00h for ILI9320(9320), ILI9325(9325), ILI9326(9326), SSD1289(1289,8989)
                 HX8347D(047),  HX8347G(075),  HX8352A(052),  HX8352B(065), HX8352C(072)
                 R61509V(B509), R61505W(C505), SPFD5420A(5408) 
if  (0 93 0 27) -> 8bit  .  if  (93 27 93 27) -> 16bit 
register 0 0
1 Parameter   0 0
2 Parameter   0 0
3 Parameter   0 0
4 Parameter   0 0
5 Parameter   0 0
6 Parameter   0 0

register EFh for ILI9327(0 02 04 93 27 FF),   
register 0 EF
1 Parameter   0 0
2 Parameter   0 3
3 Parameter   0 80
4 Parameter   0 2
5 Parameter   0 2
6 Parameter   0 2

register BFh for ILI9481(0 0 94 81 xx xx)  
register 0 BF
1 Parameter   0 0
2 Parameter   0 0
3 Parameter   0 0
4 Parameter   0 0
5 Parameter   0 0
6 Parameter   0 0

register D3h for ILI9488(0 0 94 88 xx xx)   
register 0 D3
1 Parameter   0 0
2 Parameter   0 0
3 Parameter   0 93
4 Parameter   0 41
5 Parameter   0 41
6 Parameter   0 41

register 04h for HX8357(?DA-DC), HX8353(?80-85),   
register 0 4
1 Parameter   0 0
2 Parameter   0 0
3 Parameter   0 0
4 Parameter   0 0
5 Parameter   0 0
6 Parameter   0 0

А пока поработаю над пунктом 2 (... 2. подключаете RD на +. Скачиваете девственную UTFT, открываете в блокноте UTFT.cpp , находите строчку  byte dtm[] = {16, 16, 16, 8, 8, ......  , SERIAL_5PIN, SERIAL_5PIN}; и все параметры ....)

slider
Offline
Зарегистрирован: 17.06.2014

AlexRyzh пишет:

Подключил через 1К вот читалка:

...

ну круто, работает, так и оставляйте тогда на 1кОме. Что там по +3,3в на шилде, в норме?

AlexRyzh
Offline
Зарегистрирован: 11.11.2015

Нашел строчку, вот она 

byte dtm[] = {16, 16, 16, 8, 8, 16, 8, SERIAL_4PIN, 16, SERIAL_5PIN, SERIAL_5PIN, 16, 16, 16, 8, 16, LATCHED_16, 0, 0, 8, 16, 16, 16, 8, SERIAL_5PIN, SERIAL_5PIN, SERIAL_4PIN, 16, 16, 16, SERIAL_5PIN, SERIAL_5PIN};

Заменил так: правильно? или только цифры нужно было менять?

byte dtm[] = {16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16};

slider
Offline
Зарегистрирован: 17.06.2014

верно. После заливки каждого скетча, при переборе инициализаций, ждите изображение теста секунд 3-5ть. смотрите, и подбирайте следующую инициализацию

AlexRyzh
Offline
Зарегистрирован: 11.11.2015

Да на шилде на стабилизаторе ровно 3.3В

AlexRyzh
Offline
Зарегистрирован: 11.11.2015
// UTFT myGLCD(ITDB32S,38,39,40,41);

UTFT myGLCD(0,38,39,40,41);

Сделал так, выдает ошибку компиляции 

Arduino: 1.6.6 (Windows 10), Плата:"Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

C:\Users\836D~1\AppData\Local\Temp\arduino_18c601fbbf1481a8267e26d9f334acac\UTFT_Demo_320x240.ino: In function 'void loop()':

C:\Users\836D~1\AppData\Local\Temp\arduino_18c601fbbf1481a8267e26d9f334acac\UTFT_Demo_320x240.ino:60:68: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

   myGLCD.print("* Universal Color TFT Display Library *", CENTER, 1);

                                                                    ^

C:\Users\836D~1\AppData\Local\Temp\arduino_18c601fbbf1481a8267e26d9f334acac\UTFT_Demo_320x240.ino:63:69: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

   myGLCD.print("<http://www.RinkyDinkElectronics.com/>", CENTER, 227);

                                                                     ^

C:\Users\836D~1\AppData\Local\Temp\arduino_18c601fbbf1481a8267e26d9f334acac\UTFT_Demo_320x240.ino:80:28: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

   myGLCD.print("Sin", 5, 15);

                            ^

C:\Users\836D~1\AppData\Local\Temp\arduino_18c601fbbf1481a8267e26d9f334acac\UTFT_Demo_320x240.ino:87:28: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

   myGLCD.print("Cos", 5, 27);

                            ^

C:\Users\836D~1\AppData\Local\Temp\arduino_18c601fbbf1481a8267e26d9f334acac\UTFT_Demo_320x240.ino:94:28: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

   myGLCD.print("Tan", 5, 39);

                            ^

C:\Users\836D~1\AppData\Local\Temp\arduino_18c601fbbf1481a8267e26d9f334acac\UTFT_Demo_320x240.ino:325:40: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

   myGLCD.print("That's it!", CENTER, 93);

                                        ^

C:\Users\836D~1\AppData\Local\Temp\arduino_18c601fbbf1481a8267e26d9f334acac\UTFT_Demo_320x240.ino:326:46: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

   myGLCD.print("Restarting in a", CENTER, 119);

                                              ^

C:\Users\836D~1\AppData\Local\Temp\arduino_18c601fbbf1481a8267e26d9f334acac\UTFT_Demo_320x240.ino:327:45: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

   myGLCD.print("few seconds...", CENTER, 132);

                                             ^

C:\Users\836D~1\AppData\Local\Temp\arduino_18c601fbbf1481a8267e26d9f334acac\UTFT_Demo_320x240.ino:331:47: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

   myGLCD.print("Runtime: (msecs)", CENTER, 210);

                                               ^

Неверная библиотека найдена в C:\Program Files (x86)\Arduino\libraries\DHT.h: C:\Program Files (x86)\Arduino\libraries\DHT.h
Неверная библиотека найдена в C:\Users\Администратор\Documents\Arduino\libraries\sketch_dec13b: C:\Users\Администратор\Documents\Arduino\libraries\sketch_dec13b
libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::_convert_float(char*, double, int, unsigned char)'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/bin/ld.exe: Disabling relaxation: it will not work with multiple definitions

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::_hw_special_init()'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::LCD_Writ_Bus(char, char, unsigned char)'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::_set_direction_registers(unsigned char)'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::_fast_fill_16(int, int, long)'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::_fast_fill_8(int, long)'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::UTFT()'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::UTFT()'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::UTFT(unsigned char, int, int, int, int, int)'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::UTFT(unsigned char, int, int, int, int, int)'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::LCD_Write_COM(char)'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::LCD_Write_DATA(char, char)'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::LCD_Write_DATA(char)'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::LCD_Write_COM_DATA(char, int)'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::setXY(unsigned int, unsigned int, unsigned int, unsigned int)'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::InitLCD(unsigned char)'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::clrXY()'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::drawCircle(int, int, int)'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::clrScr()'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::fillScr(unsigned int)'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::fillScr(unsigned char, unsigned char, unsigned char)'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::setColor(unsigned char, unsigned char, unsigned char)'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::setColor(unsigned int)'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::getColor()'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::setBackColor(unsigned char, unsigned char, unsigned char)'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::setBackColor(unsigned long)'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::getBackColor()'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::setPixel(unsigned int)'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::drawPixel(int, int)'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::drawHLine(int, int, int)'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::fillRoundRect(int, int, int, int)'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::fillCircle(int, int, int)'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::drawVLine(int, int, int)'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::drawRect(int, int, int, int)'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::drawRoundRect(int, int, int, int)'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::fillRect(int, int, int, int)'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::drawLine(int, int, int, int)'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::printChar(unsigned char, int, int)'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::rotateChar(unsigned char, int, int, int, int)'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::print(char*, int, int, int)'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::print(String, int, int, int)'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::printNumI(long, int, int, int, char)'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::printNumF(double, unsigned char, int, int, char, int, char)'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::setFont(unsigned char*)'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::getFont()'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::getFontXsize()'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::getFontYsize()'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::drawBitmap(int, int, int, int, unsigned int*, int)'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::drawBitmap(int, int, int, int, unsigned int*, int, int, int)'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::lcdOff()'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::lcdOn()'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::setContrast(char)'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::getDisplayXSize()'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::getDisplayYSize()'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::setBrightness(unsigned char)'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::setDisplayPage(unsigned char)'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

libraries\UTFT\UTFT.cpp.o: In function `UTFT::_convert_float(char*, double, int, unsigned char)':

C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: multiple definition of `UTFT::setWritePage(unsigned char)'

libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

collect2.exe: error: ld returned 1 exit status

exit status 1
Ошибка компиляции.
Неверная библиотека найдена в C:\Program Files (x86)\Arduino\libraries\DHT.h: C:\Program Files (x86)\Arduino\libraries\DHT.h
Неверная библиотека найдена в C:\Users\Администратор\Documents\Arduino\libraries\sketch_dec13b: C:\Users\Администратор\Documents\Arduino\libraries\sketch_dec13b
Неверная библиотека найдена в C:\Program Files (x86)\Arduino\libraries\DHT.h: C:\Program Files (x86)\Arduino\libraries\DHT.h
Неверная библиотека найдена в C:\Users\Администратор\Documents\Arduino\libraries\sketch_dec13b: C:\Users\Администратор\Documents\Arduino\libraries\sketch_dec13b

  Это сообщение будет содержать больше информации чем
  "Отображать вывод во время компиляции"
  включено в Файл > Настройки

 

AlexRyzh
Offline
Зарегистрирован: 11.11.2015

Вернул файл UTFT/cpp  в исходное состояние, ошибку компиляции не дает. Но и экран белым остается

slider
Offline
Зарегистрирован: 17.06.2014

Следущие 1, 2 , 3 ... 31?   ILI9341_S5P   ILI9341_S4P  ?

Иногда сбойное сочетание  Arduino: 1.6.6 (Windows 10)проверте на по старее IDE 1.5... и Win7 .

AlexRyzh
Offline
Зарегистрирован: 11.11.2015

При измененном файле UTFT.cpp все варианты дают ошибку компиляции.

При исходном файле пробовал ILI9341_S5P   ILI9341_S4P без изменений.

Смущают меня три последние цифры. У меня к этим пинам ничего не подключено

AlexRyzh
Offline
Зарегистрирован: 11.11.2015

Мдаааа... по ходу без переходной платы он работать не будет... да и платой не факт... видимо придется пылится ему на полке

diger67
Offline
Зарегистрирован: 25.07.2015

Вот попробавал подправить либу http://178.130.34.198/adafruit/UTFT.rar Запустите скетч 320х240, должно заработать.

slider
Offline
Зарегистрирован: 17.06.2014

AlexRyzh пишет:

// UTFT myGLCD(ITDB32S,38,39,40,41);

UTFT myGLCD(0,38,39,40,41);

Сделал так, выдает ошибку компиляции 

...

у меня компилируется без проблем

UTFT myGLCD(0,38,39,40,41);

Sketch uses 33 650 bytes (13%) of program storage space. Maximum is 253 952 bytes. Global variables use 380 bytes (4%) of dynamic memory, leaving 7 812 bytes for local variables. Maximum is 8 192 bytes.

 

UTFT myGLCD(ILI9341_S5P,38,39,40,41);

Sketch uses 33 650 bytes (13%) of program storage space. Maximum is 253 952 bytes.
Global variables use 380 bytes (4%) of dynamic memory, leaving 7 812 bytes for local variables. Maximum is 8 192 bytes.
 
Видимо что-то у вас с IDE или библиотеками путанница, не там они лежат, не от туда запускаете, и DHT тут причём? раз он у вас выдает такую фигню: 

AlexRyzh пишет:

// UTFT myGLCD(ITDB32S,38,39,40,41);

UTFT myGLCD(0,38,39,40,41);

Сделал так, выдает ошибку компиляции 

Arduino: 1.6.6 (Windows 10), Плата:"Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

C:\Users\836D~1\AppData\Local\Temp\arduino_18c601fbbf1481a8267e26d9f334acac\UTFT_Demo_320x240.ino: In function 'void loop()':

....
libraries\UTFT\UTFT — копия.cpp.o:C:\Program Files (x86)\Arduino\libraries\UTFT\hardware/avr/HW_AVR.h:2: first defined here

collect2.exe: error: ld returned 1 exit status

exit status 1
Ошибка компиляции.
Неверная библиотека найдена в C:\Program Files (x86)\Arduino\libraries\DHT.h: C:\Program Files (x86)\Arduino\libraries\DHT.h
Неверная библиотека найдена в C:\Users\Администратор\Documents\Arduino\libraries\sketch_dec13b: C:\Users\Администратор\Documents\Arduino\libraries\sketch_dec13b
Неверная библиотека найдена в C:\Program Files (x86)\Arduino\libraries\DHT.h: C:\Program Files (x86)\Arduino\libraries\DHT.h
Неверная библиотека найдена в C:\Users\Администратор\Documents\Arduino\libraries\sketch_dec13b: C:\Users\Администратор\Documents\Arduino\libraries\sketch_dec13b
...

 

1. Библиотеки надо распаковывать! чтоб небыло как у вас  :\Users\836D~1\AppData\Local\Temp\arduino_18c601fbbf1481a8267e26d9f334acac\

2. Библиотеки надо скидывать в  Мои документы\Arduino\libraries\

(   C:\Users\......\Documents\Arduino\libraries\  )

3. И запускать примеры из IDE   
Файл->Образцы->UTFT->Arduino (AVR)->UTFT_Demo_320x240
 
Да, ладно, все это проходили, понемногу тож осилите, если раз уж интерес к ардуино появился :)

 

AlexRyzh
Offline
Зарегистрирован: 11.11.2015

А я библиотеки в C:\Program Files (x86)\Arduino\libraries распаковывал, тперь буду знать

Су тра снова тщетные попытки запустить дисплей... уже и библиотеку привел в порядок. В C:\Program Files (x86)\Arduino\libraries лишнее поудалял, распаковал UTFT в библиотеку как положено.

Демо компилируется без проблем, Ардуинка светодиодом подмигивает, типа "идет демка", но дисплей так ни разу и не подал признаков жизни, кроме как светится белым (по ходу только подсветка работает).

Видимо там аппаратная проблема, или контроллер дохлый или распиновка напутана (как любят делать Китайцы, паяют паяют там ночами в полудрёме...)

Но ничего не проходит зря, пока разбирался много знаний почерпнул :) Всем спасибо, что пытались помочь... но в этой войне китаец победил :(

slider
Offline
Зарегистрирован: 17.06.2014

Аппаратная проблема почти исключена, потому как читалка посылала команды дисплею и он отвечал, причём правильно. Попробуйте на стареньком компе (winXP или win7) и старой IDE 1.5... Со всеми замечаниями и переделками подстановками  в файлах библиотеки. 
 

AlexRyzh
Offline
Зарегистрирован: 11.11.2015

Ок, попробую отпишусь, У меня есть ноут с вин7 (на моем рабочем компе ВИн10) Драйвера и ИДЕ на ноут установлю. 

AlexRyzh
Offline
Зарегистрирован: 11.11.2015

Поставил на ноут прогу Ардуино 5.5, с установкой драйверов. При подключении Ардуины появляется порт, порт работает, но с восклицательным знаком, по тому что нет цифровой подписи. 

Запускаю программу ИДЕ настраиваю на свою АРдуино 2560, но выбрать порт невозможно, меню "Порт" не активна. Поставил библиотеку, запустил демку, но залить в Ардуино не получается, т.к. выдает ошибку, что к порту1 она не подключена!!!!

AlexRyzh
Offline
Зарегистрирован: 11.11.2015

Ставил и другие версии на ноут, проблема с портом та-же.

Но полученные .hex файлы залил с помощью XLoader (Arduino HEX uploader)

Как я и ожидал результат нулевой

Переустановил на своей Вин10 ИДЕ 5.5 поставил, прошиваю - тоже белый экран и никакой реакции

AlexRyzh
Offline
Зарегистрирован: 11.11.2015

Еще раз запустил читалку

start... 
UTFT normal   pin29-22(PORTA)-byteH(DB15-0) , pin37-30(PORTC)-byteL(DB7-0)

register 00h for ILI9320(9320), ILI9325(9325), ILI9326(9326), SSD1289(1289,8989)
                 HX8347D(047),  HX8347G(075),  HX8352A(052),  HX8352B(065), HX8352C(072)
                 R61509V(B509), R61505W(C505), SPFD5420A(5408) 
if  (0 93 0 27) -> 8bit  .  if  (93 27 93 27) -> 16bit 
register 0 0
1 Parameter   0 0
2 Parameter   0 0
3 Parameter   0 0
4 Parameter   0 0
5 Parameter   0 0
6 Parameter   0 0

register EFh for ILI9327(0 02 04 93 27 FF),   
register 0 EF
1 Parameter   0 0
2 Parameter   0 3
3 Parameter   0 80
4 Parameter   0 2
5 Parameter   0 2
6 Parameter   0 2

register BFh for ILI9481(0 0 94 81 xx xx)  
register 0 BF
1 Parameter   0 0
2 Parameter   0 0
3 Parameter   0 0
4 Parameter   0 0
5 Parameter   0 0
6 Parameter   0 0

register D3h for ILI9488(0 0 94 88 xx xx)   
register 0 D3
1 Parameter   0 0
2 Parameter   0 0
3 Parameter   0 93
4 Parameter   0 41
5 Parameter   0 41
6 Parameter   0 41

register 04h for HX8357(?DA-DC), HX8353(?80-85),   
register 0 4
1 Parameter   0 0
2 Parameter   0 0
3 Parameter   0 0
4 Parameter   0 0
5 Parameter   0 0
6 Parameter   0 0

 

AlexRyzh
Offline
Зарегистрирован: 11.11.2015

А это тестовая сборка 

ba69a84076c2t.jpg

AlexRyzh
Offline
Зарегистрирован: 11.11.2015

А може не работает из=за того, что не все пины подключены на дисплее? Может хитрые Китайцы сделали так, что если какой-то пин не подключен работать не будет? У меня больше нет версий причины неработы дисплея .

diger67
Offline
Зарегистрирован: 25.07.2015

AlexRyzh пишет:

А може не работает из=за того, что не все пины подключены на дисплее? Может хитрые Китайцы сделали так, что если какой-то пин не подключен работать не будет? У меня больше нет версий причины неработы дисплея .

Для запуска экрана надо подключить VDD, GND, 16 выводов DB0-DB15, RS, WR, RST, CS, RD и BL на +3.3В. Остальные выводы шилда используются для подключения чипа xpt2046, слота SD карты и (или) при наличии SPI Flash ROM. Попробуйте скачать библиотеку из поста #30 данной темы, я там попытался добавить данный чип ILI9341 16bit. Вот он в работе, правда работает с stm32, но библиотека портирована с arduino. По всем признакам ваш шилд не инициализировался, иначе даже при неправильном подключении DB8-DB15 вы бы получли неправильные цвета и искаженное изображение.

vis22
Offline
Зарегистрирован: 24.10.2015

Согласно документации на библиотеку UTFT контроллер ILI9341 поддерживается только Serial mode.

Поэтому инициализироваться он должен как сериальный с подключением к шине SPI Arduino:

Соответственно подключение к шине SPI должно быть выполнено в соответствии:

 

 И строка инициализации должна быть вида

myGLCD(<model code>, SDA, SCL, CS, RST[, RS]); где нужно указать пины вашего Arduino на которые выводятся эти сигналы.

Шину данных DB0-DB15 подключать не требуется.

Поробуйте поискать примеры  в Интернете запросом: UTFT 9341.  
 

 

 

diger67
Offline
Зарегистрирован: 25.07.2015

Согласен, что штатная библиотека работает только по последовательному порту 8 бит и 9 бит. Но если человек понимает в програмировании то внести изменения нет никаких проблем. Я без проблем используя рабочие либы пишу их под любой чип. Главное это дамп инициализации. Вот к примеру частично партированная либа adafruit на платформу stm32. Если вы знаете adafruit написана для 8бит шилдов, у меня работает по SPI с использованием DMA.

#include "stm32f4xx_gpio.h"
#include "stm32f4xx_rcc.h"
#include "stm32f4xx_spi.h"
#include "stm32f4xx.h"
#include "stm32f4xx_tim.h"
#include "stm32f4xx_dma.h"
//#include "Delay.h"
#include "reg_9341.h"

//#define HSE_VALUE            ((uint32_t)8000000)


#define RED_ON()  GPIO_SetBits(GPIOD, GPIO_Pin_14)
#define RED_OFF()  GPIO_ResetBits(GPIOD, GPIO_Pin_14)
#define BLUE_ON()  GPIO_SetBits(GPIOD, GPIO_Pin_15)
#define BLUE_OFF()  GPIO_ResetBits(GPIOD, GPIO_Pin_15)
#define GREEN_ON()  GPIO_SetBits(GPIOD, GPIO_Pin_12)
#define GREEN_OFF()  GPIO_ResetBits(GPIOD, GPIO_Pin_12)
#define YELLOW_ON()  GPIO_SetBits(GPIOD, GPIO_Pin_13)
#define YELLOW_OFF() GPIO_ResetBits(GPIOD, GPIO_Pin_13)
#define TOGGLE_YELLOW() GPIO_ToggleBits(GPIOD, GPIO_Pin_13)
#define DELAY   100

#define CS_ON()  GPIO_ResetBits(GPIOE, GPIO_Pin_3)
#define CS_OFF() GPIO_SetBits(GPIOE, GPIO_Pin_3)
//#define RED_ON() GPIO_SetBits(GPIOD, GPIO_Pin_14)
//#define GREEN_ON() GPIO_SetBits(GPIOD, GPIO_Pin_12)

#define DELAY_TIME 1
#define TFTWIDTH 240
#define TFTHEIGHT 320

#define SCK GPIO_Pin_13
#define MISO GPIO_Pin_14
#define MOSI GPIO_Pin_15
#define SS GPIO_Pin_0
#define RS GPIO_Pin_1
#define RST GPIO_Pin_2

#define SS_ON() GPIO_ResetBits(GPIOA, GPIO_Pin_0) //low
#define SS_OFF() GPIO_SetBits(GPIOA, GPIO_Pin_0) //high
#define COM() GPIO_ResetBits(GPIOA, GPIO_Pin_1) //low
#define DATA() GPIO_SetBits(GPIOA, GPIO_Pin_1)  //high
#define RST_ON() GPIO_ResetBits(GPIOA, GPIO_Pin_2) //low
#define RST_OFF() GPIO_SetBits(GPIOA, GPIO_Pin_2) //high

#define buff_size 2
#define fill_size 240

char fill_buff[fill_size]={0};

char buffer[buff_size]={0};

__IO count_buff = 0;

uint8_t
  SPIData = 0,
  rotation;
int16_t
 delay_count,
    _width, _height; // Display w/h as modified by current rotation
//----------------------------------------------------------------------

void DMA2_Stream3_IRQHandler(void)
{
 if(DMA_GetITStatus(DMA2_Stream3, DMA_IT_TCIF3) == SET)
 {
  DMA_ClearITPendingBit(DMA2_Stream3, DMA_IT_TCIF3);
 }
}
//----------------------------------------------------------------------

void SysTick_Handler(void)
{
 if(delay_count > 0)
  delay_count--;
}

//----------------------------------------------------------------------

void delay_ms(uint16_t delay_temp)
{
 delay_count = delay_temp/2;
 while(delay_count){}
}

//----------------------------------------------------------------------

int main(void)
{
 //SystemInit();
 //SystemCoreClockUpdate();

 GPIO_InitTypeDef Init_gpio;
 SPI_InitTypeDef SPI_init_user;
 SPI_InitTypeDef SPI_init_lcd;
 TIM_TimeBaseInitTypeDef TIM_TimeBaseInit_del;
 DMA_InitTypeDef DMA_init_SPI1;

//--------------------------------------------------------------

 SysTick_Config(SystemCoreClock/1000);

//--------------------------------------------------------------

 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);

 Init_gpio.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_14 |GPIO_Pin_15;
 Init_gpio.GPIO_Mode = GPIO_Mode_AF;
 Init_gpio.GPIO_Speed = GPIO_Speed_50MHz;
 Init_gpio.GPIO_OType  = GPIO_OType_PP;
 Init_gpio.GPIO_PuPd = GPIO_PuPd_NOPULL;
 GPIO_Init(GPIOB, &Init_gpio);

 GPIO_PinAFConfig(GPIOB, GPIO_PinSource13, GPIO_AF_SPI2);
 GPIO_PinAFConfig(GPIOB, GPIO_PinSource14, GPIO_AF_SPI2);
 GPIO_PinAFConfig(GPIOB, GPIO_PinSource15, GPIO_AF_SPI2);
//--------------------------------------------------------------
 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);

 Init_gpio.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6 |GPIO_Pin_7;
 Init_gpio.GPIO_Mode = GPIO_Mode_AF;
 Init_gpio.GPIO_Speed = GPIO_Speed_50MHz;
 Init_gpio.GPIO_OType  = GPIO_OType_PP;
 Init_gpio.GPIO_PuPd = GPIO_PuPd_NOPULL;
 GPIO_Init(GPIOA, &Init_gpio);
 Init_gpio.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 |GPIO_Pin_2;
 Init_gpio.GPIO_Mode = GPIO_Mode_OUT;
 Init_gpio.GPIO_OType  = GPIO_OType_PP;
 Init_gpio.GPIO_PuPd = GPIO_PuPd_NOPULL;
 GPIO_Init(GPIOA, &Init_gpio);

 GPIO_PinAFConfig(GPIOA, GPIO_PinSource5, GPIO_AF_SPI1);
 GPIO_PinAFConfig(GPIOA, GPIO_PinSource6, GPIO_AF_SPI1);
 GPIO_PinAFConfig(GPIOA, GPIO_PinSource7, GPIO_AF_SPI1);
//--------------------------------------------------------------
 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE, ENABLE);

 Init_gpio.GPIO_Pin = GPIO_Pin_3;
 Init_gpio.GPIO_Mode = GPIO_Mode_OUT;
 Init_gpio.GPIO_Speed = GPIO_Speed_50MHz;
 Init_gpio.GPIO_OType  = GPIO_OType_PP;
 Init_gpio.GPIO_PuPd = GPIO_PuPd_NOPULL;
 GPIO_Init(GPIOE, &Init_gpio);
//--------------------------------------------------------------
 CS_OFF();
//--------------------------------------------------------------
 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA2, ENABLE);

 DMA_DeInit(DMA2_Stream3);

 DMA_init_SPI1.DMA_Channel = DMA_Channel_3;
 DMA_init_SPI1.DMA_PeripheralBaseAddr = (uint32_t)&(SPI1->DR);
 DMA_init_SPI1.DMA_Memory0BaseAddr = (uint32_t)buffer;
 DMA_init_SPI1.DMA_DIR = DMA_DIR_MemoryToPeripheral;
 DMA_init_SPI1.DMA_BufferSize = sizeof(buffer);
 DMA_init_SPI1.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
 DMA_init_SPI1.DMA_MemoryInc = DMA_MemoryInc_Enable; // DMA_MemoryInc_Disable;
 DMA_init_SPI1.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte;
 DMA_init_SPI1.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte;
 DMA_init_SPI1.DMA_Mode = DMA_Mode_Normal;
 DMA_init_SPI1.DMA_Priority = DMA_Priority_Medium;
 DMA_init_SPI1.DMA_FIFOMode = DMA_FIFOMode_Disable;
 DMA_init_SPI1.DMA_FIFOThreshold = DMA_FIFOThreshold_1QuarterFull;
 DMA_init_SPI1.DMA_MemoryBurst = DMA_MemoryBurst_Single;
 DMA_init_SPI1.DMA_PeripheralBurst = DMA_PeripheralBurst_Single;

 DMA_Init(DMA2_Stream3, &DMA_init_SPI1);

 //SPI_I2S_DMACmd(SPI1, SPI_I2S_DMAReq_Tx, ENABLE);
 //SPI_I2S_DMAReq_Tx
 NVIC_EnableIRQ(DMA2_Stream3_IRQn);
 DMA_ITConfig(DMA2_Stream3, DMA_IT_TC, ENABLE);
//--------------------------------------------------------------
 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);

 Init_gpio.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
 Init_gpio.GPIO_Mode = GPIO_Mode_OUT;
 Init_gpio.GPIO_Speed = GPIO_Speed_100MHz;
 Init_gpio.GPIO_OType  = GPIO_OType_PP;
 Init_gpio.GPIO_PuPd = GPIO_PuPd_NOPULL;
 GPIO_Init(GPIOD, &Init_gpio);
//--------------------------------------------------------------
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE);

 SPI_init_user.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
 SPI_init_user.SPI_Mode = SPI_Mode_Master;
 SPI_init_user.SPI_DataSize = SPI_DataSize_8b;
 //SPI_init_user.SPI_DataSize = SPI_DataSize_16b;
 SPI_init_user.SPI_CPOL = SPI_CPOL_High;
 SPI_init_user.SPI_CPHA = SPI_CPHA_2Edge;
 SPI_init_user.SPI_NSS = SPI_NSS_Soft;
 SPI_init_user.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_2;
 SPI_init_user.SPI_FirstBit = SPI_FirstBit_MSB;
 SPI_init_user.SPI_CRCPolynomial = 7;
 SPI_Init(SPI1, &SPI_init_user);

 SPI_I2S_DMACmd(SPI1, SPI_I2S_DMAReq_Tx, ENABLE);
 SPI_Cmd(SPI1, ENABLE);
//--------------------------------------------------------------
 RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2, ENABLE);

 SPI_init_lcd.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
 SPI_init_lcd.SPI_Mode = SPI_Mode_Master;
 SPI_init_lcd.SPI_DataSize = SPI_DataSize_8b;
 SPI_init_lcd.SPI_CPOL = SPI_CPOL_Low;
 SPI_init_lcd.SPI_CPHA = SPI_CPHA_1Edge;
 SPI_init_lcd.SPI_NSS = SPI_NSS_Soft;
 SPI_init_lcd.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_2;
 SPI_init_lcd.SPI_FirstBit = SPI_FirstBit_MSB;
 SPI_init_lcd.SPI_CRCPolynomial = 7;
 SPI_Init(SPI2, &SPI_init_lcd);

 SPI_Cmd(SPI2, ENABLE);
//--------------------------------------------------------------
 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);

 TIM_TimeBaseInit_del.TIM_Prescaler = 62500-1; //42000-1;
 TIM_TimeBaseInit_del.TIM_CounterMode = TIM_CounterMode_Up;
 TIM_TimeBaseInit_del.TIM_Period = 671; //1000;
 TIM_TimeBaseInit_del.TIM_ClockDivision = TIM_CKD_DIV1;

 TIM_TimeBaseInit(TIM2, &TIM_TimeBaseInit_del);

 NVIC_EnableIRQ(TIM2_IRQn);

 TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);
 TIM_Cmd(TIM2, ENABLE);

//--------------------------------------------------------------

 CS_ON();
 SPI_I2S_SendData(SPI1, 0x8F);
 while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY) == SET ){}
 SPIData = SPI_I2S_ReceiveData(SPI1);
 while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY) == SET ){}
 SPI_I2S_SendData(SPI1, 0x00);
 while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY) == SET ){}
 SPIData = SPI_I2S_ReceiveData(SPI1);
 CS_OFF();

 if(SPIData == 0x3B)
 {
  RED_ON();
 }
 else if (SPIData == 0x3F)
 {
  /*while(1)
    {
    int i;
    for(i=0; 10 > i; i++)
    {
     RED_ON();
     YELLOW_OFF();
     delay_ms(DELAY);
     RED_OFF();
     BLUE_ON();
     delay_ms(DELAY);
     BLUE_OFF();
     GREEN_ON();
     delay_ms(DELAY);
     GREEN_OFF();
     YELLOW_ON();
     delay_ms(DELAY);
     YELLOW_OFF();
     delay_ms(DELAY);
    }
    for(i=0; 8 > i; i++)
        {
         RED_ON();
         BLUE_ON();
         GREEN_ON();
         YELLOW_ON();
         delay_ms(1000);
         //delay(DELAY * 3);
         RED_OFF();
         BLUE_OFF();
         GREEN_OFF();
         YELLOW_OFF();
         if(i < 8)
         delay_ms(1000);
         //delay(DELAY * 3);
        }
        delay(DELAY);
    }*/
  GREEN_ON();
 }



 SS_OFF();
 COM();
 RST_OFF();

 initLCD();
 Rotation(1);

while(1)
{
 //uint16_t j;
/*
  fillScreen(0x07E0);
  while(1){
  for(j = 20; j < 270; j+=120)
  {
   fillRect(j, 20, 30, 30, 0x0000);
   delay_ms(250);
   fillRect(j, 20, 30, 30, 0x07E0);
   //delay_ms(10);
  }

  for(j = 270; j > 30; j-=120)
  {
   fillRect(j, 20, 30, 30, 0x0000);
   delay_ms(250);
   fillRect(j, 20, 30, 30, 0x07E0);
   //delay_ms(10);
  }
  }

 for(j = 120; j > 10; j--)
  {
   fillScreen(0x07E0);
   delay_ms(500);
   fillRect(j, 10, 50, 50, 0x0000);

  }
  */

 fillScreen(0xF800); //0xF800
 delay_ms(2000);
 //fillRect(60, 60, 50, 50, 0xF800); //0x0000
 //delay_ms(1000);
 ///fillRect(60, 60, 50, 50, 0x07E0);
 fillScreen(0x001F); //0x001F
 delay_ms(2000);
 ///fillRect(90, 90, 50, 50, 0x001F); //0x0000
 //delay_ms(1000);
 //fillRect(90, 90, 50, 50, 0x07E0);
 fillScreen(0xFFE0); //0xFFE0
 ///fillRect(120, 120, 50, 50, 0xFFE0); //0x0000
 //fillRect(120, 120, 50, 50, 0x07E0);
 delay_ms(2000);
 //fillRect(150, 150, 50, 50, 0xffff);
 fillScreen(0xF07E0);
 delay_ms(2000);


}
//--------------------------------------------------------------



}

void Global_reset(void)
{
 /*GPIO_ResetBits(GPIOE, GPIO_Pin_1);
 delay(0x0FFFFF);
 GPIO_SetBits(GPIOE, GPIO_Pin_1 );
 delay(0x0FFFFF);*/
 RST_ON();
 //delay(0x0FFFFF);
 delay_ms(10);
 RST_OFF();
 //delay(0x0FFFFF);
 delay_ms(10);
}

void delay(uint32_t delayTime)
{
    uint32_t i;
    for(i = 0; i < delayTime; i++);
}
//-------------------------------------------------------------------------
void LCD_Write_COM(uint16_t data)
{
 //uint8_t c;
 //c = data << 8;
 COM();
 //delay(5);
 SS_ON();
 //COM();
 //delay(5);
 SPI_I2S_SendData(SPI1, data);
 //while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY) == SET){}
 while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);
 SS_OFF();
 DATA();
}
//---------------------------------------------------------------------------
void LCD_Write_DATA(uint16_t data)
{
 //uint8_t c;
 //c = data << 8;
 //delay(5);
 SS_ON();
 //DATA();
 //delay(5);
 SPI_I2S_SendData(SPI1, data);
 //while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY) == SET){}
 while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);
 SS_OFF();
}

//----------------------------------------------------------------------------
/*
void LCD_Write_DATA_C(uint16_t data)
{
 //uint8_t ch, cl;
 //cl = data;
 //ch = data >> 8;
 //DATA();
 SS_ON();
 //delay(5);
 SPI_I2S_SendData(SPI1, data);
 //while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY) == SET){}
 while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);
 //SPI_I2S_SendData(SPI1, cl);
 //while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY) == SET){}
 //while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);
 SS_OFF();
}
*/
//----------------------------------------------------------------------------

void LCD_Write_DATA_C(uint16_t data)
{
 uint8_t ch, cl;
 cl = data;
 ch = data >> 8;
 //DATA();
 SS_ON();
 //delay(5);
 SPI_I2S_SendData(SPI1, ch);
 //while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY) == SET){}
 while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);
 SPI_I2S_SendData(SPI1, cl);
 //while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY) == SET){}
 while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);
 SS_OFF();
}

//----------------------------------------------------------------------------

void initLCD()
{
    // Глобальный Reset дисплея
      Global_reset();


    // Пляски с  бубном от китайских товарищей
      LCD_Write_COM(0x01); //reset
      delay_ms(15);

      LCD_Write_COM(0x11);//sleep out
      delay_ms(20);

      LCD_Write_COM(0x28); //display off
      delay_ms(5);
      LCD_Write_COM(0xCF); //power control b
      LCD_Write_DATA(0x00);
      LCD_Write_DATA(0x83); //83 81 AA C1
      LCD_Write_DATA(0x30);
      LCD_Write_COM(0xED); //power on seq control
      LCD_Write_DATA(0x64); //64 67
      LCD_Write_DATA(0x03);
      LCD_Write_DATA(0x12);
      LCD_Write_DATA(0x81);
      LCD_Write_COM(0xE8); //timing control a
      LCD_Write_DATA(0x85);
      LCD_Write_DATA(0x00); // 01
      LCD_Write_DATA(0x78); //79 78
      LCD_Write_COM(0xCB); //power control a
      LCD_Write_DATA(0x39);
      LCD_Write_DATA(0X2C);
      LCD_Write_DATA(0x00);
      LCD_Write_DATA(0x34);
      LCD_Write_DATA(0x02);
      LCD_Write_COM(0xF7); //pump ratio control
      LCD_Write_DATA(0x20);
      LCD_Write_COM(0xEA); //timing control b
      LCD_Write_DATA(0x00);
      LCD_Write_DATA(0x00);
      LCD_Write_COM(0xC0); //power control 2
      LCD_Write_DATA(0x26); //26 25 23
      LCD_Write_COM(0xC1); //power control 2
      LCD_Write_DATA(0x11);// 11 10
      LCD_Write_COM(0xC5); //vcom control 1
      LCD_Write_DATA(0x35);// 35 3E
      LCD_Write_DATA(0x3E);// 3E 28
      LCD_Write_COM(0xC7); //vcom control 2
      LCD_Write_DATA(0xBE); //BE 94 86
      LCD_Write_COM(0xB1); //frame control
      LCD_Write_DATA(0x00);
      LCD_Write_DATA(0x1B); //1B 70 18
      LCD_Write_COM(0xB6); //display control
      LCD_Write_DATA(0x0A);// 0A 08
      LCD_Write_DATA(0x82);
      LCD_Write_DATA(0x27);
      LCD_Write_DATA(0x00);
      LCD_Write_COM(0xB7); //emtry mode
      LCD_Write_DATA(0x07);
      LCD_Write_COM(0x3A); //pixel format
      LCD_Write_DATA(0x55); //16bit
      LCD_Write_COM(0xE0);
      LCD_Write_DATA(0x0F);
      LCD_Write_DATA(0x31);
      LCD_Write_DATA(0x2B);
      LCD_Write_DATA(0x0C);
      LCD_Write_DATA(0x0E);
      LCD_Write_DATA(0x08);
      LCD_Write_DATA(0x4E);
      LCD_Write_DATA(0xF1);
      LCD_Write_DATA(0x37);
      LCD_Write_DATA(0x07);
      LCD_Write_DATA(0x10);
      LCD_Write_DATA(0x03);
      LCD_Write_DATA(0x0E);
      LCD_Write_DATA(0x09);
      LCD_Write_DATA(0x00);
      LCD_Write_COM(0x20);
      LCD_Write_COM(0x36); //mem access
      LCD_Write_DATA((1<<3)|(1<<6));
      //LCD_Write_DATA((1<<3)|(1<<7)); //rotate 180
      LCD_Write_COM(0x29); //display on
      LCD_Write_COM(0x2C);
      delay_ms(5);

      _width    = TFTWIDTH;
      _height   = TFTHEIGHT;
}


void writeRegister32(uint8_t r, uint32_t d)
{
 //CS_ACTIVE;
 //CD_COMMAND;
 LCD_Write_COM(r);
 //write8(r);
 //CD_DATA;
 delay(DELAY_TIME);
 LCD_Write_DATA(d>>24);
 //write8(d >> 24);
 delay(DELAY_TIME);
 LCD_Write_DATA(d>>16);
 //write8(d >> 16);
 delay(DELAY_TIME);
 LCD_Write_DATA(d>>8);
 //write8(d >> 8);
 delay(DELAY_TIME);
 LCD_Write_DATA(d);
 //CS_IDLE;
}

/**************************************************************************/

void setAddrWindow(int x1, int y1, int x2, int y2)
{
 uint32_t t;

 t = x1;
 t <<= 16;
 t |= x2;
 writeRegister32(ILI9341_COLADDRSET, t);  // HX8357D uses same registers!
 t = y1;
 t <<= 16;
 t |= y2;
 writeRegister32(ILI9341_PAGEADDRSET, t); // HX8357D uses same registers!
}

/**************************************************************************/
/*
void fillScreen(uint16_t color)
{
 int i;
 LCD_Write_COM(0x2c);
 for(i=0;i<76800;i++)
  LCD_Write_DATA_C(color);
}
*/
/**************************************************************************/

void fillScreen(uint16_t color)
{
 setAddrWindow(0, 0, _width - 1, _height - 1);
 flood(color, (long)TFTWIDTH * (long)TFTHEIGHT);
}

/**************************************************************************/
void Wr_bufer(uint16_t data)
{
 __IO uint8_t ch, cl;
 cl = data;
 ch = data >> 8;
 count_buff = 0;
 SS_ON();
 buffer[0] = ch;
 DMA_Cmd(DMA2_Stream3, ENABLE);
 buffer[1] = cl;
 DMA_Cmd(DMA2_Stream3, ENABLE);
 SS_OFF();
}

/**************************************************************************/

void flood(uint16_t color, uint32_t len)
{
 uint16_t blocks;
 int i;

 LCD_Write_COM(0x2c);
 //LCD_Write_DATA_C(color);
 Wr_bufer(color);
 len--;

 blocks = (uint16_t)(len / 64); // 64 pixels/block
 while(blocks--) {
  i = 16; // 64 pixels/block / 4 pixels/pass
  do {
       Wr_bufer(color);Wr_bufer(color);
    //LCD_Write_DATA_C(color); LCD_Write_DATA_C(color);
       Wr_bufer(color);Wr_bufer(color);
    //LCD_Write_DATA_C(color); LCD_Write_DATA_C(color);
  } while(--i);
  }
  for(i = (uint8_t)len & 63; i--; ) {
    Wr_bufer(color);
    //LCD_Write_DATA_C(color);
  }
}

/**************************************************************************/

void setRotation(uint8_t x) {
  rotation = (x & 3);
  switch(rotation) {
   case 0:
   case 2:
    _width  = TFTWIDTH;
    _height = TFTHEIGHT;
    break;
   case 1:
   case 3:
    _width  = TFTHEIGHT;
    _height = TFTWIDTH;
    break;
  }
}

/**************************************************************************/

void Rotation(uint8_t x)
{

 setRotation(x);

 uint16_t t;
 switch (rotation) {
  case 2:
   //Rotation(x);
   t = ILI9341_MADCTL_MX | ILI9341_MADCTL_BGR;
   break;
  case 3:
   //Rotation(x);
   t = ILI9341_MADCTL_MV | ILI9341_MADCTL_BGR;
   break;
  case 0:
   //Rotation(x);
   t = ILI9341_MADCTL_MY | ILI9341_MADCTL_BGR;
   break;
  case 1:
   //Rotation(x);
   t = ILI9341_MADCTL_MX | ILI9341_MADCTL_MY | ILI9341_MADCTL_MV | ILI9341_MADCTL_BGR;
   break;
 }
 LCD_Write_COM(ILI9341_MADCTL); // MADCTL
 LCD_Write_DATA(t);
 // For 9341, init default full-screen address window:
 setAddrWindow(0, 0, _width - 1, _height - 1);
}

/**************************************************************************/

void fillRect(int16_t x1, int16_t y1, int16_t w, int16_t h, uint16_t fillcolor)
{
 int16_t  x2, y2;
  // Initial off-screen clipping
  if( (w            <= 0     ) ||  (h             <= 0      ) ||
   (x1           >= _width) ||  (y1            >= _height) ||
   ((x2 = x1+w-1) <  0     ) || ((y2  = y1+h-1) <  0      )) return;
  if(x1 < 0) { // Clip left
   w += x1;
   x1 = 0;
  }
  if(y1 < 0) { // Clip top
   h += y1;
   y1 = 0;
  }
  if(x2 >= _width) { // Clip right
   x2 = _width - 1;
   w  = x2 - x1 + 1;
  }
  if(y2 >= _height) { // Clip bottom
   y2 = _height - 1;
   h  = y2 - y1 + 1;
  }

  setAddrWindow(x1, y1, x2, y2);
   flood(fillcolor, (uint32_t)w * (uint32_t)h);
}

/**************************************************************************/

void TIM2_IRQHandler(void)
{
 if(TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET)
 {
  TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
  TOGGLE_YELLOW();
  //delay_count--;
 }

}

/**************************************************************************/
/*
void delay_mms(uint16_t del_temp)
{
 //TIM_TimeBaseInitTypeDef TIM_TimeBaseInit_del;

 //TIM_TimeBaseInit_del.TIM_Period = del_temp;
 //TIM_TimeBaseInit(TIM2, &TIM_TimeBaseInit_del);

 delay_count = del_temp;
 TIM_Cmd(TIM2, ENABLE);
 //while(TIM_GetITStatus(TIM2, TIM_IT_Update) != SET){}
 while(delay_count);
 TIM_Cmd(TIM2, DISABLE);
}
*/

 

AlexRyzh
Offline
Зарегистрирован: 11.11.2015

Попробовал искать по интернету UTFT 9341 попадаются дисплеи только 9-ти пиновые. У меня 34-х пиновый. Как сопоставить с тем, что попадается в инете?

"...myGLCD(<model code>, SDA, SCL, CS, RST[, RS]); где нужно указать пины вашего Arduino на которые выводятся эти сигналы...."

RST[, RS]); - RS в скобках? а код модели цифрой прописывать?

Вот нашел у китайцев точно моя модель дисплея. Но контроллер вроде другой указан. http://ru.aliexpress.com/item/3-2-Touch-Screen-Panel-240x320-TFT-65K-Color-LCD-Display-Module-W-SD-Card-TE283/32491419880.html?spm=2114.031020208.3.224.jB8as2&ws_ab_test=searchweb201556_4,searchweb201644_2_79_78_77_82_80_62_61,searchweb201560_5

Или TE283 это не контроллер?

 

slider
Offline
Зарегистрирован: 17.06.2014

AlexRyzh , скиньте сюда либы что вам продавец дал на него. (можете к примеру скинуть в яндекс диск, сюда ссылку дать)

diger67
Offline
Зарегистрирован: 25.07.2015

AlexRyzh пишет:

Попробовал искать по интернету UTFT 9341 попадаются дисплеи только 9-ти пиновые. У меня 34-х пиновый. Как сопоставить с тем, что попадается в инете?

"...myGLCD(<model code>, SDA, SCL, CS, RST[, RS]); где нужно указать пины вашего Arduino на которые выводятся эти сигналы...."

RST[, RS]); - RS в скобках? а код модели цифрой прописывать?

Вот нашел у китайцев точно моя модель дисплея. Но контроллер вроде другой указан. http://ru.aliexpress.com/item/3-2-Touch-Screen-Panel-240x320-TFT-65K-Color-LCD-Display-Module-W-SD-Card-TE283/32491419880.html?spm=2114.031020208.3.224.jB8as2&ws_ab_test=searchweb201556_4,searchweb201644_2_79_78_77_82_80_62_61,searchweb201560_5

Или TE283 это не контроллер?

 

Вы попробовали то что я предложил почтом чуть выше? Если да, то могу подменить lcdinit.h на инициализацию с которой работает в другой библиотеке 100%.

slider
Offline
Зарегистрирован: 17.06.2014

diger67 пишет:

Вы попробовали то что я предложил почтом чуть выше? Если да, то могу подменить lcdinit.h на инициализацию с которой работает в другой библиотеке 100%.

он не скомпилировался, ругался на  ILI9341 , потому как нет такого, там только  ILI9341_S5P и ILI9341_S4P . Но я им  исправил битность с SPI на 16, не показалл экран, скорее в длинных проводах по 2 раза , их иногда недообжимают. Подождём когда AlexRyzh , на шлейфе от старого CD-ROM или HDD попробует . Выложит китайские либы.

diger67 пишет:
 Если да, то могу подменить lcdinit.h на инициализацию с которой работает в другой библиотеке 100%. 

Былоб здорово.

Ещё можно Adafruit подготовить и проверить на 16 битность. и настроить на 9341. (ибо бывают случаи что RD не выведен, Adafruit не может определить дисплей и поэтому отказывается работать, поэтому в таких случаях ему надо принудительно указывать драйвер, а не автоматом) 

diger67
Offline
Зарегистрирован: 25.07.2015

slider пишет:

diger67 пишет:

Вы попробовали то что я предложил почтом чуть выше? Если да, то могу подменить lcdinit.h на инициализацию с которой работает в другой библиотеке 100%.

он не скомпилировался, ругался на  ILI9341 , потому как нет такого, там только  ILI9341_S5P и ILI9341_S4P . Но я им  исправил битность с SPI на 16, не показалл экран, скорее в длинных проводах по 2 раза , их иногда недообжимают. Подождём когда AlexRyzh , на шлейфе от старого CD-ROM или HDD попробует . Выложит китайские либы.

Так, по порядку. Не ск​омпелировалось со штатной либой или с той которую я выложил в посте выше? Может он неудалив старую UTFT добавил еще одну в папку библиотек? У меня все чудесно скомпилилось.....

 

vis22
Offline
Зарегистрирован: 24.10.2015

Попробуйте варианты:

myGLCD(ILI9341_S4P, 20, 21, 40, 41, 38)

myGLCD(ILI9341_S4P, 20, 21, 40, 41) //RS подключить на +5V

myGLCD(ILI9341_S5P, 20, 21, 40, 41, 38)

myGLCD(ILI9341_S5P, 20, 21, 40, 41) //RS подключить на +5V

Схема подключения:

Дисплей MEGA        Pin
       
MOSI   SDA 20
CLK   SCL 21
CS     40
RST     41
RS     38
       
VDD   5V  
VDD   5V  
GND   GND  
GND   GND  
BL   5V  

 

diger67
Offline
Зарегистрирован: 25.07.2015

vis22 пишет:

Попробуйте варианты:

myGLCD(ILI9341_S4P, 20, 21, 40, 41, 38)

myGLCD(ILI9341_S4P, 20, 21, 40, 41) //RS подключить на +5V

myGLCD(ILI9341_S5P, 20, 21, 40, 41, 38)

myGLCD(ILI9341_S5P, 20, 21, 40, 41) //RS подключить на +5V

Схема подключения:

Дисплей MEGA        Pin
       
MOSI   SDA 20
CLK   SCL 21
CS     40
RST     41
RS     38
       
VDD   5V  
VDD   5V  
GND   GND  
GND   GND  
BL   5V  

 

Данный шилд работает по 16 битному параллельному порту, причем тут SPI, ну посмотрите для начала о чем речь, а потом пишите.

AlexRyzh
Offline
Зарегистрирован: 11.11.2015

diger67 пишет:

Вы попробовали то что я предложил почтом чуть выше? Если да, то могу подменить lcdinit.h на инициализацию с которой работает в другой библиотеке 100%.

[/quote]

Я так и не понял что пробовать. Скетч не компилируется... а что это за скетч не понял толком :(