Форум РадиоКот • Просмотр темы - stm32 + ili9341 выдает не правильные цвета
Сообщения без ответов | Активные темы
Страница 1 из 1
[ Сообщений: 9 ]
Автор
Сообщение
koteika
Заголовок сообщения: stm32 + ili9341 выдает не правильные цвета
Добавлено: Ср окт 12, 2016 10:41:18
Карма: 2
Рейтинг сообщений: 1
Зарегистрирован: Пт ноя 27, 2009 18:24:25Сообщений: 147Откуда: Харьков
Рейтинг сообщения: 0
Добрый день товарищи
, столкнулся с такой проблемой:
дисплей на контроллере ili9341 правильно показывает только синий и черный цвета, а все остальные оттенки синего
уже 2 дня борюсь сил нет, может кто посмотрит проект и поможет, буду премного благодарен.
З.Ы. среда кеил
Вернуться наверх
Реклама
Alexey_N
Заголовок сообщения: Re: stm32 + ili9341 выдает не правильные цвета
Добавлено: Ср ноя 02, 2016 15:41:55
Сверлит текстолит когтями
Карма: 5
Рейтинг сообщений: 19
Зарегистрирован: Вт фев 01, 2011 17:56:40Сообщений: 1273Откуда: г. Жуковка, Брянская обл.
Рейтинг сообщения: 0
Что-то у вас инициализация ili9341 подозрительная, двойная какая-то, исправьте на нормальную.
_________________Индукционный нагреватель - 20% (наладка). TIG сварка - 10% (детальки) ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
Вернуться наверх
Реклама
apn
Заголовок сообщения: Re: stm32 + ili9341 выдает не правильные цвета
Добавлено: Чт ноя 23, 2017 08:26:36
Зарегистрирован: Чт ноя 23, 2017 08:09:57Сообщений: 2
Рейтинг сообщения: 0
Добрый день.
У Вас решилась эта задача ?
У меня аналогичная ситуация. Буду благодарен за ответ любого рода. Мой mail:
apn@sinn.ru Спасибо.
Вернуться наверх
Sergey_78r
Заголовок сообщения: Re: stm32 + ili9341 выдает не правильные цвета
Добавлено: Пт ноя 24, 2017 14:09:49
Зарегистрирован: Ср ноя 22, 2017 11:34:47Сообщений: 6
Рейтинг сообщения: 0
Ну судя по тому, что после совета исправить инициализацию вопросов больше не было, может тоже в этом дело? Попробуйте так, у меня работает:Спойлер #define ILI9341_RESET 0x01 #define ILI9341_SLEEP_OUT 0x11 #define ILI9341_GAMMA 0x26 #define ILI9341_DISPLAY_OFF 0x28 #define ILI9341_DISPLAY_ON 0x29 #define ILI9341_COLUMN_ADDR 0x2A #define ILI9341_PAGE_ADDR 0x2B #define ILI9341_GRAM 0x2C #define ILI9341_MAC 0x36 #define ILI9341_PIXEL_FORMAT 0x3A #define ILI9341_WDB 0x51 #define ILI9341_WCD 0x53 #define ILI9341_RGB_INTERFACE 0xB0 #define ILI9341_FRC 0xB1 #define ILI9341_BPC 0xB5 #define ILI9341_DFC 0xB6 #define ILI9341_POWER1 0xC0 #define ILI9341_POWER2 0xC1 #define ILI9341_VCOM1 0xC5 #define ILI9341_VCOM2 0xC7 #define ILI9341_POWERA 0xCB #define ILI9341_POWERB 0xCF #define ILI9341_PGAMMA 0xE0 #define ILI9341_NGAMMA 0xE1 #define ILI9341_DTCA 0xE8 #define ILI9341_DTCB 0xEA #define ILI9341_POWER_SEQ 0xED #define ILI9341_3GAMMA_EN 0xF2 #define ILI9341_INTERFACE 0xF6 #define ILI9341_PRC 0xF7 LCD_CS_set(0); LCD_RST_set(1); LCD_SendCommand(ILI9341_RESET); Delay(100); LCD_SendCommand(ILI9341_RESET); Delay(100); /// commands here LCD_SendCommand(ILI9341_POWERA); LCD_SendData(0x39); LCD_SendData(0x2C); LCD_SendData(0x00); LCD_SendData(0x34); LCD_SendData(0x02); LCD_SendCommand(ILI9341_POWERB); LCD_SendData(0x00); LCD_SendData(0xC1); LCD_SendData(0x30); LCD_SendCommand(ILI9341_DTCA); LCD_SendData(0x85); LCD_SendData(0x00); LCD_SendData(0x78); LCD_SendCommand(ILI9341_DTCB); LCD_SendData(0x00); LCD_SendData(0x00); LCD_SendCommand(ILI9341_POWER_SEQ); LCD_SendData(0x64); LCD_SendData(0x03); LCD_SendData(0x12); LCD_SendData(0x81); LCD_SendCommand(ILI9341_PRC); LCD_SendData(0x20); LCD_SendCommand(ILI9341_POWER1); LCD_SendData(0x23); LCD_SendCommand(ILI9341_POWER2); LCD_SendData(0x10); LCD_SendCommand(ILI9341_VCOM1); LCD_SendData(0x3E); LCD_SendData(0x28); LCD_SendCommand(ILI9341_VCOM2); LCD_SendData(0x86); LCD_SendCommand(ILI9341_MAC); LCD_SendData(0x48); LCD_SendCommand(ILI9341_PIXEL_FORMAT); LCD_SendData(0x55); LCD_SendCommand(ILI9341_FRC); LCD_SendData(0x00); LCD_SendData(0x18); LCD_SendCommand(ILI9341_DFC); LCD_SendData(0x08); LCD_SendData(0x82); LCD_SendData(0x27); LCD_SendCommand(ILI9341_3GAMMA_EN); LCD_SendData(0x00); LCD_SendCommand(ILI9341_COLUMN_ADDR); LCD_SendData(0x00); LCD_SendData(0x00); LCD_SendData(0x00); LCD_SendData(0xEF); LCD_SendCommand(ILI9341_PAGE_ADDR); LCD_SendData(0x00); LCD_SendData(0x00); LCD_SendData(0x01); LCD_SendData(0x3F); LCD_SendCommand(ILI9341_GAMMA); LCD_SendData(0x01); LCD_SendCommand(ILI9341_PGAMMA); LCD_SendData(0x0F); LCD_SendData(0x31); LCD_SendData(0x2B); LCD_SendData(0x0C); LCD_SendData(0x0E); LCD_SendData(0x08); LCD_SendData(0x4E); LCD_SendData(0xF1); LCD_SendData(0x37); LCD_SendData(0x07); LCD_SendData(0x10); LCD_SendData(0x03); LCD_SendData(0x0E); LCD_SendData(0x09); LCD_SendData(0x00); LCD_SendCommand(ILI9341_NGAMMA); LCD_SendData(0x00); LCD_SendData(0x0E); LCD_SendData(0x14); LCD_SendData(0x03); LCD_SendData(0x11); LCD_SendData(0x07); LCD_SendData(0x31); LCD_SendData(0xC1); LCD_SendData(0x48); LCD_SendData(0x08); LCD_SendData(0x0F); LCD_SendData(0x0C); LCD_SendData(0x31); LCD_SendData(0x36); LCD_SendData(0x0F); LCD_SendCommand(ILI9341_SLEEP_OUT); Delay(100); LCD_SendCommand(ILI9341_DISPLAY_ON); LCD_SendCommand(ILI9341_GRAM);
Вернуться наверх
Реклама
В продаже новые LED-драйверы XLC компании MEAN WELL с диммингом нового поколения
Компания MEAN WELL пополнила ассортимент своей широкой линейки светодиодных драйверов новым семейством XLC для внутреннего освещения. Главное отличие – поддержка широкого спектра проводных и беспроводных технологий диммирования. Новинки представлены в MEANWELL.market моделями с мощностями 25 Вт, 40 Вт и 60 Вт. В линейке есть модели, работающие как в режиме стабилизации тока (СС), так и в режиме стабилизации напряжения (CV) значением 12, 24 и 48 В.
Подробнее>>
apn
Заголовок сообщения: Re: stm32 + ili9341 выдает не правильные цвета
Добавлено: Пн ноя 27, 2017 08:46:43
Зарегистрирован: Чт ноя 23, 2017 08:09:57Сообщений: 2
Рейтинг сообщения: 0
Спасибо, я уже разобрался. Проблема была в том, что я использовал 8bit протокол. а TFT был выставлен для 16bit (это IM).
Вернуться наверх
Реклама
BBM
Заголовок сообщения: Re: stm32 + ili9341 выдает не правильные цвета
Добавлено: Чт май 01, 2025 15:22:29
Зарегистрирован: Чт май 01, 2025 15:01:30Сообщений: 2
Рейтинг сообщения: 0
Я проблему решил следующим образом - переписал инициализацию цветов в файле библиотеки ILI9341. Шестнадцатиричное значение с помощью калькулятора Windows преобразовал в двоичное число, полученное число нужно переписать зеркально, т.е. читать не слева направо а справо налево. Получившееся число с помощью онлайн калькулятора преобразуем снова в шестнадцатиричное число. Полученным результатом заменил имевшееся значение. Те значения, которые симметричны остаются без изменений - это белый, чёрный, зелёный, розовый, пурпурный. Получилось такое: было стало #define ILI9341_BLACK 0x0000 /* 0, 0, 0 * 0000 0000 0000 0000 BLACK (чёрный) */ #define ILI9341_NAVY 0xF000 /* 0, 0, 128 * 0000 0000 0000 1111 0x000F F000 */ #define ILI9341_DARKGREEN 0x07C0 /* 0, 128, 0 * 0000 0011 1110 0000 0x03E0 07C0 */ #define ILI9341_DARKCYAN 0xF7C0 /* 0, 128, 128 * 0000 0011 1110 1111 0x03EF F7C0*/ #define ILI9341_MAROON 0x001E /* 128, 0, 0 * 0111 1000 0000 0000 0x7800 001E */ #define ILI9341_PURPLE 0xF01E /* 128, 0, 128 * 0111 1000 0000 1111 0x780F F01E*/ #define ILI9341_OLIVE 0x87DE /* 128, 128, 0 * 0111 1011 1110 0001 0x7BE0 87DE*/ #define ILI9341_LIGHTGREY 0x1863 /* 192, 192, 192 * 1100 0110 0001 1000 0xC618 1863*/ #define ILI9341_DARKGREY 0xF7D3 /* 128, 128, 128 * 0111 1011 1110 1111 0x7BEF F7D3*/ #define ILI9341_BLUE 0xF800 /* 0, 0, 255 * 0000 0000 0001 1111 0x001F F800*/ #define ILI9341_GREEN 0x07E0 /* 0, 255, 0 * 0000 0111 1110 0000 07E0*/ #define ILI9341_CYAN 0xFFE0 /* 0, 255, 255 * 0000 0111 1111 1111 0x07FF FFE0*/ #define ILI9341_RED 0x001F /* 255, 0, 0 * 1111 1000 0000 0000 0xF800 001F*/ #define ILI9341_MAGENTA 0xF81F /* 255, 0, 255 * 1111 1000 0001 1111 MAGENTA (пурпурный)F81F*/ #define ILI9341_YELLOW 0x07FF /* 255, 255, 0 * 1111 1111 1110 0000 FFE0 07FF*/ #define ILI9341_WHITE 0xFFFF /* 255, 255, 255 * 1111 1111 1111 1111 WHITE (белый) FFFF*/ #define ILI9341_ORANGE 0x04BF /* 255, 165, 0 * 1111 1101 0010 0000 0xFD20 04BF */ #define ILI9341_GREENYELLOW 0xA7F5 /* 173, 255, 47 * 1010 1111 1110 0101 0xAFE5 A7F5*/ #define ILI9341_PINK 0xF81F /* 1111 1000 0001 1111 #define ILI9341_GRAY 0x514a /* 0101 0010 1000 1010 0x528A
Вернуться наверх
Реклама
jcxz
Заголовок сообщения: Re: stm32 + ili9341 выдает не правильные цвета
Добавлено: Чт май 01, 2025 23:55:05
Это не хвост, это антенна
Карма: -10
Рейтинг сообщений: 171
Зарегистрирован: Вт авг 15, 2017 10:51:13Сообщений: 1482
Рейтинг сообщения: 0
Я проблему решил следующим образом - переписал инициализацию цветов в файле библиотеки ILI9341. Шестнадцатиричное значение с помощью калькулятора Windows преобразовал в двоичное число, полученное число нужно переписать зеркально, т.е. читать не слева направо а справо налево. Получившееся число с помощью онлайн калькулятора преобразуем снова в шестнадцатиричное число. Полученным результатом заменил имевшееся значение.
А можно было просто прочитать в учебнике по си, что такое "макросы". И написать таковой. Всего в одну строку. А не устраивать "закат солнца вручную"...
Вернуться наверх
BBM
Заголовок сообщения: Re: stm32 + ili9341 выдает не правильные цвета
Добавлено: Пт май 02, 2025 05:04:25
Зарегистрирован: Чт май 01, 2025 15:01:30Сообщений: 2
Рейтинг сообщения: 0
Я в Си особо не силён, можно сказать начинающий. Мне так оказалось проще.
Вернуться наверх
jcxz
Заголовок сообщения: Re: stm32 + ili9341 выдает не правильные цвета
Добавлено: Пт май 02, 2025 11:16:51
Это не хвост, это антенна
Карма: -10
Рейтинг сообщений: 171
Зарегистрирован: Вт авг 15, 2017 10:51:13Сообщений: 1482
Рейтинг сообщения: 0
Так если учебник не открывать, то так навсегда и останетесь начинающим. Как же иначе?
Вернуться наверх
Реклама
Страница 1 из 1
[ Сообщений: 9 ]
Кто сейчас на форуме
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения