С Новым годом! Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
504 / 247 / 75
Регистрация: 31.10.2010
Сообщений: 747

LCD ILI9325 глюки в работе дисплея

05.08.2017, 04:20. Показов 2285. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Подключил дисплей ILI9325 и запустил с помощью CooCox к STM32F407VG используя библиотеку производителя LCD.
Библиотека написана под uKeil, поэтому для CooCox пришлось переделывать, особенно неприятным оказалось то что
китайские разработчики использовали какую-то свою кодировку в которой даже латинские символы CooCox(ом) не воспринимались. Причём сами символы отображались корректно. Пришлось конвертировать кодировку.
Вобщем дисплей запустился, но после 1-2 обновлений экрана зависает.
Собственно как пытался решать проблему.
1. изменял тактовую частоту процессора;
2. изменял скорость передачи данных FSMC (практически это тоже что и 1)
3. пробовал различные варианты инициализации (думаю где то здесь надо искать инициализация или передача данных).

Вобщем, в совокупности, удалось добиться 5-7 обновлений экрана.
Но даже значительном понижении частоты FSMC лучших результатов добиться не удаётся,
максимум 10-12 обновлений экрана и дисплей зависает.
Обновлениями экрана, я называю примерное время за которое заполняется весь экран.
Причём с этой же китайской LCD библиотекой под uKeil дисплей нормально работает.
Вопрос: кто сталкивался с подобными проблемами, есть ли идеи, предложения?
Благодарю за ответы

Код LCD
LCD.zip
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.08.2017, 04:20
Ответы с готовыми решениями:

Кодировка LCD дисплея
Привет. Какая кодировка на русские буквы у LCD дисплея, который с демоплатой идет ? Голову сломал, не подходит ни cp1251, ни koi8-r,...

Разработка контроллера LCD дисплея
Буду заниматься разработкой универсального контроллера LCD дисплея с поддержкой тача, знакогенератором и другие аппаратные фишки на STM....

Драйвер для LCD дисплея
Описание задания в файле labLCD.cpp в архиве CppLABS.rar. Необходимые библиотеки в архиве libs.rar. При сборке проекта необходимо...

4
Эксперт .NET
 Аватар для Rius
13058 / 7623 / 1665
Регистрация: 25.05.2015
Сообщений: 23,165
Записей в блоге: 14
05.08.2017, 08:35
Идея такая: выкинуть этот код, написать свой. Инициализацию fsmc, просчитав тайминги по даташиту на дисплей, потом взять из интернета или этого кода последовательность байт инициализации дисплея, разобравшись и подписав каждое значение, потом добиться стабильной многократной заливки дисплея одним цветом. Идеально иметь осциллограф.

У вас там назначение кода дисплея, а потом его чтение. Если считалось неправильно, всё пойдёт наперекосяк.
1
 Аватар для Voland_
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
09.08.2017, 19:33
Не поддержу. Написанная для компилера рабочая библиотека - это отличное место зацепиться за готовое решение и не углубляться в "кишки" fsmc, такты, частоты и т.д. Учитывая, что разница между KEIL и CooCox - в компиляторе и в стартовых функциях - уделите внимание правильной инициализации частот шин. Если есть нестабильность - очевидно, что дисплей или МК работает на каких-то граничных параметрах.
0
Эксперт .NET
 Аватар для Rius
13058 / 7623 / 1665
Регистрация: 25.05.2015
Сообщений: 23,165
Записей в блоге: 14
09.08.2017, 21:08
Не соглашусь. Рабочая библиотека это нечто готовое от надёжного поставщика, типа uC/Gui, например.
А здесь поделка от китайцев, предназначенная только показать работоспособность электроники дисплея, который они продают. Захотите надёжной работы - придётся переписать; захотите оставить этот код - огребёте проблем, типа тех что в первом посте темы.
У ардуины тоже якобы куча рабочих библиотек на все случаи жизни, только качество их на уровне плинтуса.
0
 Аватар для Voland_
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
09.08.2017, 21:56
ТС, пробежавшись по коду - нашел пару вещей:

1) Функция delay_ms() имеет совершенно частный случай подсчета времени, причем, зависящий от компилера и уровня его оптимизации. И это помимо частоты процессора и места размещения кода (Wait-States).
Компилеры имеют привычку выкидывать пустые циклы, а у вас задержка выполнена именно на этом принципе. Вариантов решений несколько - либо заставить компилятор работать с пустым циклом (например, добавить "volatile" к объявлению переменной), либо использовать какой-нить таймер (RTC например) для подсчета времени.

2) inline-функции в GCC и KEIL также могут иметь разные воплощения. Для GCC можно добавить "__attribute__((always_inline))", чтобы заставить в любом случае заинлайнить функцию. Потому что есть случаи, когда этого не происходит.

3) После просмотра перешел в лагерь ув. Rius )). По возможности либу таки лучше последовательно переписать, придя к табличной отправке данных.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.08.2017, 21:56
Помогаю со студенческими работами здесь

Подключение LCD дисплея на ATmega на ассемблере
Есть исходный код, и схема DTMF генератора. Нужно добавить lcd дисплей, который будет выводить набранный номер(считывание 4х4 матричной...

Подключение LCD дисплея к ATMEGA8 в PROTEUS
Не могу понять, как подсоединить дисплей к микроконтроллеру, чтобы при нажатии каждой кнопки высвечивалась определённая надпись на самом...

Вывести числа в виде LCD - дисплея
Задача заключается в том, чтобы вывести введенные числа в виде LCD - Дисплея. Входные данные содержат несколько строк, по строке для...

Код для отображения информации с LCD дисплея
Данный код осуществляет вывод частоты на LED дисплей частотомера, осуществляется вывод по нескольким разрядам. Как сделать вывод информации...

Модель дисплея Nokia1202 для Proteus (+Nokia1616 LCD)
Сделал сабж. Дисплей Nokyo1202 стремительно набирает популярность как достойная замена дисплею Nokyo3310. Еще год назад брал в сириусе...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru