0 / 0 / 0
Регистрация: 04.08.2017
Сообщений: 54

Ili9341 параллельный интерфейс

27.09.2018, 14:05. Показов 12349. Ответов 82
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я решил попробовать завести этот экран по параллельной 8 битной шине. Но когда я закончил портировать код с avr(я это делал в первый раз) и прошил контроллер ничего не отобразилось. Есть очень высомые подозрения что я неправильно реализовал передачу данных. У меня stm32f103ret6 так что с помощью fsmc не получится
Вложения
Тип файла: zip ili9341.zip (4.66 Мб, 58 просмотров)
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.09.2018, 14:05
Ответы с готовыми решениями:

FreeRtos и Параллельный интерфейс 8080
Нужно вывести график на сенсорный экран по параллельному интерфейсу 8080, возможно ли это сделать в FriiRtos или есть какая-то более...

Ввод данных через параллельный интерфейс (стык С3)
Нужна программа на ассемблере КР580 для ввода данных через параллельный интерфейс (стык С3). Мне не нужна какая-то отлаженная программа,...

Интерфейс Comparable, Интерфейс Comparator, Интерфейс List
Добрый день, прошу подсказать с решением задачи. Или натолкнуть в какую сторону нужно думать. Не могу освоить второй пункт задачи. 1....

82
Эксперт .NET
 Аватар для Rius
13838 / 7880 / 1706
Регистрация: 25.05.2015
Сообщений: 23,924
Записей в блоге: 14
30.09.2018, 21:00
Студворк — интернет-сервис помощи студентам
Замените
C
1
2
3
4
5
void ILI9341_SetData(uint16_t value)
{
  uint32_t reg = (((uint32_t)value & 0xfffful) << 16) | (uint32_t)value;
  DISP_D0_GPIO_Port->BSRR = reg;
}
на
C
1
2
3
4
5
void ILI9341_SetData(uint16_t value)
{
  uint32_t reg = (((uint32_t)value ^ 0xfffful) << 16) | (uint32_t)value;
  DISP_D0_GPIO_Port->BSRR = reg;
}
0
0 / 0 / 0
Регистрация: 04.08.2017
Сообщений: 54
01.10.2018, 15:33  [ТС]
Rius, в data[0] = 0x0000, data[1] = 0x001c, data[2] = 0xfc00, data[3] = 0x1cfc, data[4] = 0x001c, data[5] 0xfc00, data[6] = 0x1cfc, data[7] = 0x001c, data[8] = 0xfc00, data[9] = 0x1cfc
0
Эксперт .NET
 Аватар для Rius
13838 / 7880 / 1706
Регистрация: 25.05.2015
Сообщений: 23,924
Записей в блоге: 14
01.10.2018, 16:33
Залейте в ОЗУ не 0xff, а 0xffff. Потом считайте.
Должны появиться белые точки в углу.
0
0 / 0 / 0
Регистрация: 04.08.2017
Сообщений: 54
01.10.2018, 16:42  [ТС]
теперь везде 0xfcfc кроме data[0]
0
Эксперт .NET
 Аватар для Rius
13838 / 7880 / 1706
Регистрация: 25.05.2015
Сообщений: 23,924
Записей в блоге: 14
01.10.2018, 16:47
Всё работает.
0
0 / 0 / 0
Регистрация: 04.08.2017
Сообщений: 54
01.10.2018, 16:48  [ТС]
цвета не правильно отображаются

Добавлено через 16 секунд
теперь только синий
0
Эксперт .NET
 Аватар для Rius
13838 / 7880 / 1706
Регистрация: 25.05.2015
Сообщений: 23,924
Записей в блоге: 14
01.10.2018, 16:50
Что это значит?
0
0 / 0 / 0
Регистрация: 04.08.2017
Сообщений: 54
01.10.2018, 16:53  [ТС]
Когда я пытаюсь залить экран любым цветом он заливается только синим

Добавлено через 16 секунд
Даже белый
0
Эксперт .NET
 Аватар для Rius
13838 / 7880 / 1706
Регистрация: 25.05.2015
Сообщений: 23,924
Записей в блоге: 14
01.10.2018, 16:54
Код заливки-то покажите?
0
0 / 0 / 0
Регистрация: 04.08.2017
Сообщений: 54
01.10.2018, 16:56  [ТС]
Кликните здесь для просмотра всего текста
C
1
2
TFT9341_FillScreen(WHITE);
HAL_Delay(1000);


Добавлено через 49 секунд
раньше цвета хоть как то отличались
0
Эксперт .NET
 Аватар для Rius
13838 / 7880 / 1706
Регистрация: 25.05.2015
Сообщений: 23,924
Записей в блоге: 14
01.10.2018, 16:59
C
1
void TFT9341_Flood(uint16_t color, uint32_t len);
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void TFT9341_Flood(uint16_t color, uint32_t len)
{
  ILI9341_WriteCommand(0x2C);
 
  // WriteData
  ILI9341_SelectA0Mode(A0Mode_Data);
  ILI9341_SelectDirection(DataDirection_Output);
  ILI9341_ChipSelect(true);
 
  for (uint32_t i = 0; i < len; i++) {
    ILI9341_SetWR(true);
    ILI9341_SetData(color);
    // Tdst = 10ns
    __NOP();
    ILI9341_SetWR(false);
    // Tdht = 10ns
    __NOP();
  }
 
  ILI9341_ChipSelect(false);
}
0
0 / 0 / 0
Регистрация: 04.08.2017
Сообщений: 54
01.10.2018, 17:05  [ТС]
Как этим пользоваться
0
Эксперт .NET
 Аватар для Rius
13838 / 7880 / 1706
Регистрация: 25.05.2015
Сообщений: 23,924
Записей в блоге: 14
01.10.2018, 17:07
Лучший ответ Сообщение было отмечено Mixed как решение

Решение

Заменить эту функцию в ваших файлах.
0
0 / 0 / 0
Регистрация: 04.08.2017
Сообщений: 54
01.10.2018, 17:12  [ТС]
Спасибо вам огромное за все. Теперь все работает! Мне только одно интересно: что надо сделать чтобы переназначить пины?
0
Эксперт .NET
 Аватар для Rius
13838 / 7880 / 1706
Регистрация: 25.05.2015
Сообщений: 23,924
Записей в блоге: 14
01.10.2018, 17:14
Не надо, оно и сейчас не очень, а будет ещё медленнее.
0
0 / 0 / 0
Регистрация: 04.08.2017
Сообщений: 54
01.10.2018, 17:15  [ТС]
просто у меня нет из-за этого ни одного свободного spi b ш2с

Добавлено через 9 секунд
*i2c
0
Эксперт .NET
 Аватар для Rius
13838 / 7880 / 1706
Регистрация: 25.05.2015
Сообщений: 23,924
Записей в блоге: 14
01.10.2018, 17:19
Изучите функции
void ILI9341_SetData(uint16_t value)
uint16_t ILI9341_GetData(void)
и принцип их работы по Reference Manual'у.
0
0 / 0 / 0
Регистрация: 04.08.2017
Сообщений: 54
01.10.2018, 17:24  [ТС]
Спасибо
0
0 / 0 / 0
Регистрация: 18.12.2016
Сообщений: 113
03.10.2018, 04:40
Один в один мои метания при попытке включить ILI9341 320х240 с 16-битным интерфейсом как 8-битный интерфейс. Причем в #20 ТС сам и указал причину своих проблем...
0
Эксперт .NET
 Аватар для Rius
13838 / 7880 / 1706
Регистрация: 25.05.2015
Сообщений: 23,924
Записей в блоге: 14
03.10.2018, 05:09
Причина в модуле дисплея без нормального даташита и нежелании читать документацию на контроллер дисплея.
Иначе не было бы никаких метаний. Просто берёшь и кодишь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.10.2018, 05:09

STM32F4 и ILI9341
Использую параллельный 16 битный интерфейс(FSMC), работает оооочень медленно. Заливка всего экрана новым цветом длиться больше минуты. В...

Помогите с ILI9341
Пришёл графический дисплейчик вот такой...

stm32f4 и ili9341
Здоров народ! купил модуль ili9341 но включить , не в какую не получается. Из протокола SPI сказанно что первый бит решает читаем мы...

Stm32f429+Ili9341
Здравствуйте. Есть такой код: char result_stw; void window_1_callback( UG_MESSAGE* msg ) { if ( msg-&gt;type ==...

Дисплей ILI9341
Здравствуйте!Может подскажите,дислей TFT-дисплей 2.2 SPI 240*320 (ILI9341),использую библиотеку arduino...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
80
Ответ Создать тему
Опции темы

Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru