Top.Mail.Ru
Уведомления
Очистить все

[Решено] TFT дисплей ILI9341. SPI

Страница 4 / 6
 stm
(@stm)
Level 4
sk

Может регистр Memory Write тоже сокращается на то количество бит, которым кодируется пиксель.

ОтветитьЦитата
Создатель темы Размещено : 13.10.2023 22:52
 stm
(@stm)
Level 4

В данном случае на 16 бит. 2 бита регистра Memory Write может деактивируются.

ОтветитьЦитата
Создатель темы Размещено : 13.10.2023 22:58
(@eduard)
Level 5 Moderator

@stm Смотрите внимательнее. Вы неправильно интерпретируете данные.

Что DPI, что DBI всего три бита, а вы их интерпретируете как 4х битные. И эта ошибка не первый раз.

Будьте внимательнее

DPI = 101

DBI = 101

Остальные биты значения не имеют. Нет никаких ужиманий, деактиваций и всего остального.

И в данном случае команда 8 бит.
Повторяю ещё раз. КОМАНДА ВСЕГДА 8 БИТ. Там нет никаких 16 или 18. Всё, что выше игнорируется.

Я у Китайского производителя об этом СПРАШИВАЛ. Он сказал, что так у всех дисплеев КОМАНДА 8 бит, данные цвета 3-18 бит.

 

ОтветитьЦитата
Размещено : 13.10.2023 23:03
 stm
(@stm)
Level 4

Да, это я неправильно записал, но значения правильные.
DPI [2:0]==101
DBI [2:0]==101

Если б время для редактирования сообщений было больше, я б исправлял.

ОтветитьЦитата
Создатель темы Размещено : 13.10.2023 23:06
(@eduard)
Level 5 Moderator

@stm Ко мне на учёбу приезжает человек, на новогодние праздники. Можете то же приехать.

ОтветитьЦитата
Размещено : 13.10.2023 23:14
 stm
(@stm)
Level 4

Я мягко говоря не очень социально активный))
И пока что не было вопросов в которых я сам не разбирался.
Ну конечно из тех тем, которые мне были необходимы.
То что вы ведёте обучение лично за это большое уважение.

Кстати тема дисплея огромная, очень огромная.
Но думаю большинству нужен только старт, вводная детальная информация по дисплею.
То есть как читать даташит, как устроен пиксель, про регистр то что я выше описал итп.
А дальше дело техники и желания думаю.

ОтветитьЦитата
Создатель темы Размещено : 13.10.2023 23:23
(@eduard)
Level 5 Moderator

@stm Я даже не знаю что сказать.

Когда я занялся дисплеями, было всё как в тумане.

Когда я понял что и как, всё стало просто. Написание драйвера один-два дня.

Но это теперь мешает объяснить. Пишу как делается и упускаю нюансы.

Вы вываливаете очень много вопросов. Некоторые заводят в тупик.

Ответ знаю, но как объяснить не знаю. У нас уровень подготовки разный.

ОтветитьЦитата
Размещено : 13.10.2023 23:41
 stm
(@stm)
Level 4

Думаю ещё недельку детали буду изучать, просто потому что интересно.
Или больше, не жалко))
А дальше буду искать подходящую графическую библиотеку.
Говорят LVGL библиотека нормальная https://www.youtube.com/watch?v=xUTmpjq5oDM

ОтветитьЦитата
Создатель темы Размещено : 13.10.2023 23:48
Aveal
(@aveal)
Top level Admin

@stm stemwin нормальный вариант под stm32 для базового ui, правда я не слежу, что там с обновлениями на текущий день.

ОтветитьЦитата
Размещено : 14.10.2023 12:53
(@eduard)
Level 5 Moderator

@aveal Хорошая библиотека. Я её пробовал. Но как скрестить с С++, пока не разобрался.

И исходного кода нет.

 

ОтветитьЦитата
Размещено : 14.10.2023 15:23
 stm
(@stm)
Level 4

@eduard 

Вначале я хотел С++ учить для МК, но из за распространённости Си для МК, учил его.
Вы пишете на С++?
На CMSIS пишете, без HAL?
HAL ведь на Си или на С++ есть тоже?

ОтветитьЦитата
Создатель темы Размещено : 14.10.2023 17:04
(@eduard)
Level 5 Moderator

@stm Я пишу на С++.

Такое ощущение, что кроме меня этого никто не делает.

Поэтому мне приходится всё делать самому.

HAL я не уважаю по многим причинам.

CMSIS использую всегда. Он удобен. И это не язык. Просто дефайны, которые описывают регистры.

Почитайте серию моих статей. Поймёте в чём дело.

 

ОтветитьЦитата
Размещено : 14.10.2023 18:44
 stm
(@stm)
Level 4

Представить даже не могу как это сложно, не видел ещё коды для STM32 на С++))

Я не писал что CMSIS это язык)
Понятно, что в HAL есть много ненужного, всякие проверки, код на HAL выполняется дольше.
Но библиотеки упрощают кодирование. Если нужна скорость, можно и на CMSIS написать.
Всё идёт к упрощению, знать всё это хорошо, но выполнение проще доверять машине, а самому сходить в это время прогуляться, чайку попить.
Вот я дисплей сейчас изучаю, я ведь не буду сам графическую библиотеку писать, мне достаточно будет знать как она работает.

ОтветитьЦитата
Создатель темы Размещено : 14.10.2023 19:08
(@eduard)
Level 5 Moderator

Я как то писал на HAL под какой то камень. Сейчас уже и не помню.

У него 8 Килобайт FLASH и 2 Килобайта ОЗУ.

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

Всё сделал на С++ и классах, вся прошивка заняла 50%

Так что я голосую ногами за уход от HAL.

А так как я пишу много и на разные камни. У меня практически на всё есть библиотеки. Если устройство несложное, новый драйвер я накидываю за пару дней.

Да и с дисплеями проще работать на С++.

Так что когда по быстрому нужно что то накидать, я уже обхожусь без HAL.

А на счёт CMSIS я вас просто недопонял.

ОтветитьЦитата
Размещено : 15.10.2023 09:46
 stm
(@stm)
Level 4

МК становятся всё мощнее и с большим объёмом памяти.
На ассемблере ещё лучше было бы писать, а в бинарном виде лучше ассемблера.
Скоро будем голосом или мыслями программировать.

Можно проверить насколько быстрее у вас без HAL заполняется дисплей.
Baud Rate на SPI1 у меня 42 Mbits/s.
Заполняю дисплей функцией HAL_SPI_Transmit
Скорость заполнения всего дисплея на gif.
Когда дисплей засвечивается, это я нажимаю на ресет.

STM1
ОтветитьЦитата
Создатель темы Размещено : 15.10.2023 14:35
Страница 4 / 6
Поделиться: