|
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
|
||||||
STemWin на STM32F4. Первый опыт. Вопросы.21.12.2013, 23:06. Показов 835874. Ответов 1103
Метки нет (Все метки)
Вот, задумавшись о GUI, решил попробовать эту либу.
Моё железо - STM32F4 (Dyscovery) и дисплей с Ebay разрешением 800х480 на контроллере SSD1963 с 16-битным интерфейсом. Эта аппаратная связка давно обкатана и работает. Под это дело я писал свои драйверы и библиотеки. Работал с дисплеем через DMA и без него. Всё прекрасно. Т.к. никаких заводских плат со встроенными дисплеями у меня нет, мне пришлось править и переписывать под себя конфигурационные модули STemWin. Для старта взял стандартный пример из ST-шного архива. Дальше стартовой заставки я не продвинулся, т.к. там нужен тач, а я пока не разобрался, как туда подключить мой драйвер тача. Но и тут проблемы. В итоге получилось 2 варианта - на драйвере FlexColor (штатный драйвер STemWin, поддерживающий SSD1963) и мой собственный. Оба прилагаю. В целом оба варианта запустились в общем-то с пол-оборота, но есть ряд непоняток: 1. На драйвере FlexColor некоторые строчки текста на экране выглядят как некий мусор. Я понимаю, что я мог где-то ошибиться, но тогда бы не работало ни-че-го, т.к. пользовательский драйвер для Flex-Color представляет собой 4 функции - запись команды/данных и запись/чтения блока. По сути это функции работы с FSMC. Плюс функция низкоуровневой инициализации SSD1963. 2. На моём драйвере все строчки рисуются нормально, но нету стрелочки курсора мыши, который есть на FlexColor. Подозреваю, что это из-за отсутствия функции вывода картинки на дисплей. В драйвере дисплея она у меня есть, но я не понял, куда её запихать в ST-шную прослойку. Да и тормозит заметно в сравнении с FlexColor. Если кто разбирался, подскажите пожалуйста. Если надо, я выложу полные проекты на кокосе. Блок CRC включён (просто знаю, что на этом многие ловятся, но это не мой случай). Ещё один вопрос про память для GUI. Я видел конструкцию
Внешней памяти у меня нет, в силу урезанности FSMC на 100-ногих процах. Или что, оно работает только на 429-Dyscovery, где стоит 8-метровый чип SDROM? Охренеть... Дал ей пока 64К, но рекомендаций по этим объёмам я не нашёл. Сколько ей надо? Спасибо. [23.93 Кб] [18.45 Кб]
1
|
||||||
| 21.12.2013, 23:06 | |
|
Ответы с готовыми решениями:
1103
Измерение уровней звука. Вопросы. Первый опыт. Сравнительно мистический баг в Coocox: stemwin и stm32f4 Вопросы по STM32F4 |
|
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
|
||
| 06.04.2017, 09:12 | ||
0
|
||
|
rukh
|
|
| 06.04.2017, 13:13 | |
|
Доброго времени суток.
Продолжаю разбираться с STemWin. Научился создавать и редактировать виджеты и окна в GUIBuilder. И созрел у меня такой вопрос: дисплей у меня без тача, пользую плату STM32F4-Dyscovery. Хочу подключить на порты несколько кнопок, чтобы управлять с их помощью дисплеем. Как сделать так, чтобы при нажатии на физическую кнопку, нажималась и кнопка меню дисплея? Короче говоря, как управлять виджетами? Читал руководство emWin.Функции работы с виджетами там описаны, но я никак не могу состыковать работу в файле, созданном в GUIBuilder и реализацию управления виджетами от кнопок в обработчике прерываний. Подскажите пожалуйста, куда копать. Спасибо. |
|
|
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
|
|||||||
| 06.04.2017, 16:01 | |||||||
Там есть примерно такая конструкция:
А координаты меняйте где хотите и как хотите. Гую глубоко пофигу откуда они у Вас берутся. Сделайте, например, какой-то таймер, в его прерывании опрашивайте Ваши кнопки и меняйте соответствующие переменные. Или сразу пихайте их в этот GUI_TOUCH_StoreStateEx - как Вам удобно. Это всё, что от Вас требуется. А виджеты отрабатывать - забота самого гуя. Вам это делать не нужно.
0
|
|||||||
|
rukh
|
|
| 09.04.2017, 12:06 | |
|
Спасибо. Буду пробовать.
А можете ваш пример скинуть или ссылку на пост, в котором вы его выкладывали? |
|
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 60
|
|
| 10.04.2017, 11:03 | |
|
Привет всем. Подскажите кто работал с ICONVIEW. ? Создал новое окно в GUIBuilder в него поместил ICONVIEW и пытаюсь загрузить картинку в него файл dta. Но почему то в генераторе не отображается картинка хотя на выходе в файле WymdowDLG.с есть массив с картинкой. Это так и должно быть? Может кто скинуть файл созданный в GUIBuilder с иконками. Примеров не нашел к сожалению.
0
|
|
|
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
|
|||
| 10.04.2017, 12:06 | |||
Всё хочу свой похожий контрол написать, да руки пока не дошли :(
0
|
|||
|
rukh
|
||||||
| 11.04.2017, 17:00 | ||||||
|
Освоил управление каждым виджетом по-одиночке. А есть ли возможность одновременного использования виджетов? Например ввожу текст с физических кнопок: нажимаются виртуальные кнопки на дисплее и одновременно появляется текст в окошке EDIT. GUIBuilder создает файл окна с дочерними виджетами, доступ к ним идет через операторы switch(): case:. Соответственно такой код уже не канает:
|
||||||
|
disymir
|
|
| 17.04.2017, 22:15 | |
|
Доброго времени всем! Решил, все-таки предыдущую проблему. Дело было в стеке. Куб по умолчанию ставит 200х200. Этого мало. Нужно минимум 800 на стек и 200 на кучу. Все демо от emWin закрутилось и замигало. Дальше решил победить MultyPage. Научился листать страницы в прерываниях кнопками вперед - назад. Но вышла засада: на одной странице стоит MultyEdit. И фокус со страницы сбивается на него. Теперь нажатия кнопок добавляют символы в него и страницы не переключаются. Подскажите, люди добрые, как не терять фокус при переключениях страниц?
|
|
|
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
|
|
| 18.04.2017, 11:26 | |
|
Фокус вроде можно руками переставлять ..
0
|
|
|
1 / 1 / 0
Регистрация: 05.10.2017
Сообщений: 2,048
|
|
| 19.04.2017, 11:07 | |
|
Запустил AT070TN94 на STM32F429BIT6 + 32Мб SDROM. Драйвер взял из примера STemWin532 для STM324x9I-EVOT, Stomdalone-версия, файлик LCDConf_stm324x9i_eval_MB1063.c. Подправил инициализацию дисплея, тайминги, ноги. В итоге наблюдаю такие проблемы:
Видео работы на штатной частоте PCLK 33.3 Мгц - https://www.dropbox.com/s/o9977ld03mwnu ... z.mp4?dl=0 Видео работы на пониженной частоте PCLK 26.4 Мгц - https://www.dropbox.com/s/idlq2flkp86tv ... z.mp4?dl=0 Сооотственно вопрос - что не так? Статику выводит нормально, SDROM работает нормально, но как только начинаются активные действия - беда. Пробовал понижать частоту на SDROM, результата не принесло. Гонял отдельно DMA2D, заливал экран разными цветами на максимальной скорости - никаких срывов, все четко, подобного мусора нет. UPD: еще понизил частоту до 23 МГц. Срывы пропали, однако буквы по прежнему какие-то кривые. Копаем дальше. В примере, если я верно рассчитал все делители вообще 8 мгц PCLK, но там и экран совсем другой. Слегка беспокоит, что это частота уже ниже допустимой для ЖК, непонятно как поведет себя другой экран, стабильно ли запустится. UPD2: выделил буфер для GUI в SDROM, 8 мегов. Скорость отрисовки упала катастрофически. Если из ROM каруселька крутилась без лагов, то сейчас просто слайдшоу. И что-то не так с драйвером, выдает всего лишь 15 мпикс/с. Должно быть под 70. Проблема со шрифтами:
0
|
|
|
rukh
|
|
| 19.04.2017, 13:33 | |
|
Подскажите пожалуйста, по какой причине в MUTIEDIT может не отображаться курсор, хотя все настройки сделаны? Не моргает и не двигается при вводе текста.
|
|
|
1 / 1 / 0
Регистрация: 05.10.2017
Сообщений: 2,048
|
|
| 20.04.2017, 10:24 | |
|
По поводу частоты PCLK - похоже не хватает пропускной способности FMC контроллера при 16-ти битной шине данных. Стоит занизить скорость вывода на ЖК, уменьшив PCLK, как увеличивается скорость отрисовки, т.к. у проца или DMA2D появляется больше свободного времени на доступ к SDROM, в которой видеобуфер. Стоит уменьшить формат пикселя с ARGB на RGB, как тут же увеличивается скорость отрисовки, т.к. с SDROM тянется меньше данных. Надо ставить MT48LC4M32B2, он хотя бы в TSOP корпусе, остальные почти все BGA
0
|
|
|
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
|
|
| 20.04.2017, 15:19 | |
|
Hotd, забавно. надо будет у себя проверить. У меня тоже 16 битная шина, сейчас RGB565 включён (чтобы не было проблем с переездом с SSD1963), другие я пока не проверял.
rukh, не знаю. Я использовал простой EDIT, подключал клаву, проблем не заметил.
0
|
|
|
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
|
||
| 20.04.2017, 18:22 | ||
0
|
||
|
1 / 1 / 0
Регистрация: 05.10.2017
Сообщений: 2,048
|
|
| 20.04.2017, 18:44 | |
|
Т.е. в настройках ltdc стоит rgb565 а подключено по rgb888? Нет ли искажений цветов? ДШ говорит, что подключать надо иначе. Или настройки ltdc rgb888 а вы в видеобуфер конвертируете свой буфер rgb565 через DMA2D?
0
|
|
|
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
|
|||
| 20.04.2017, 19:20 | |||
0
|
|||
|
0 / 0 / 0
Регистрация: 16.09.2016
Сообщений: 33
|
|
| 21.04.2017, 00:07 | |
|
Добрый вечер. такой вопрос, у меня ряд кнопок и при переключении фокуса между ними иногда, но довольно часто кнопки обновляются не по одной и незаметно, а кучкой разом и видно мерцание, причем обновляет он не по штукам, а участком экрана захватывая не только их но и фон. Как заставить его не трогать без надобности не изменяющиеся элементы интерфейса? может что-то поднастроить нужно, а то мерцание неприятно, то все ровно, то нет.
0
|
|
|
1 / 1 / 0
Регистрация: 05.10.2017
Сообщений: 2,048
|
|||||||||||
| 21.04.2017, 11:30 | |||||||||||
|
Итак... сделал подключение по RGB565, не совсем верное, а просто занулил через GPIO неиспользуемые пины экрана. В драйвере поменял строчки:
Нашел косяк со шрифтами - что то не так с функцией DMA_MixColors(), привязка GUI к которой происходит в конце LCD_X_Config():
Тест скорости показывает 71мпикс/с. Можно увеличить, еще уменьшив частоту обновления экрана но уже не очень комфортно смотреть.
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 16.09.2016
Сообщений: 33
|
|
| 22.04.2017, 18:40 | |
|
Как заставить меню не исчезать при выборе одного из пунктов?
0
|
|
| 22.04.2017, 18:40 | |
|
STM32F4-Discovery(подключение и глупые вопросы) STM32F4+ETH(Вопросы по PHY KSZ8863) [решено]stm32f4 ethernet phy вопросы Первый опыт Первый опыт Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . .
Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
|
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг.
Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует.
В процессе разработки. . .
|
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
|
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации:
1. Вернуть возможность использования знаков | 1 l I;. . .
|
|
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С.
Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
|
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию?
Фраза «Любая достаточно развитая технология неотличима от магии». . .
|
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль?
Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
|
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология.
«Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
|