|
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
|
||||||
STemWin на STM32F4. Первый опыт. Вопросы.21.12.2013, 23:06. Показов 835849. Ответов 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
|
|
| 29.03.2017, 15:53 | |
|
LCDConf_FlexColor_Template.c/LCDConf_Lin_Template.c/что-то ещё - зависит от того, какой у Вас дисп.
LCDConf_Lin - это LTDC, в диспе вообще контроллера нет LCDConf_Flex - там наверное десятка 2 разных контроллеров. А какой у Вас дисплей, вы не указали. Кроме того, что он китайский :)
0
|
|
|
rukh
|
|
| 29.03.2017, 16:08 | |
|
NV3029E - 240RGB x 320dot, 262,144-color
TFT Controller Dryver wyth Internal ROM. Пишу под отладочную плату STM32F4-Dyscovery. |
|
|
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
|
|
| 29.03.2017, 17:03 | |
|
Пишите свой кастомный драйвер. В моём архиве было показано, как это делать, но rusfolder, где он лежал, двинул кони, поищу другое место куда его залить ...
0
|
|
|
rukh
|
|
| 29.03.2017, 17:19 | |
|
Спасибо. Архив у меня есть. STemWinLibrary520d - myDrv, не так ли?
Касательно вопроса подключения библиотек и моих ошибок, указанных в прикрепленной к посту картинке, можете что-то подсказать? LCD_conf.c самому создавать, получается? |
|
|
vOmOrhyst
|
||||||
| 29.03.2017, 17:21 | ||||||
|
Здравствуйте! Проблема с виджетом Multipage. Как правильно написать обработку скроллбара во вкладке?
|
||||||
|
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
|
|||
| 29.03.2017, 17:36 | |||
А вот LCD_conf.c - да, надо писать самому. Это прослойка между STemWin и драйвером Вашего дисплея. Там описан ряд функций типа инициализация диспа, всякие там заливки/отрисовки. Вы должны сами реализовать всё это для Вашего дисплея. В моём примере я просто вызывал соответствующие функции своего драйвера для SSD1963.
0
|
|||
|
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
|
|
| 29.03.2017, 17:47 | |
|
vOmOrhyst, Вы совершенно неверно проинитили этот MULTIPAGE контрол. у каждой вкладки должна быть своя оконная функция, в неё и будут приходить сообщения от всех контролов этой вкладки.
Т.е. если Ваше окно содержит один такой контрол с 2-мя вкладками, Вы должны реализовать 3 оконные функции - для самого окна и для каждой из 2-х вкладок. Т.к. каждая вкладка почти самостоятельное диалоговое окно со всеми вытекающими. У Вас, например, hDialog = GUI_CreateDialogBox(_aDialogCreate2, GUI_COUNTOF(_aDialogCreate2), NULL,WM_UNATTACHED, 0, 0); -- оконная функция вообще не задана, т.е. все контролы этой вкладки будут 100% декоративные. Вы не сможете полноценно получать от них события. https://www.segger.com/emwin-widgets.html - здесь есть пример, посмотрите пожалуйста.
0
|
|
|
rukh
|
||
| 29.03.2017, 18:33 | ||
Я взял все *.c файлы из папки Config библиотеки STemWin, указал все пути, включая пути к yms и Lib. Единственное, что меня смущало - это LCDConf_FlexColor_Template.c и LCDConf_Lin_Template.c. Ни один из них мне не подходит, получается, что их можно удалить, предварительно включив в проект LCD_Conf.c? |
||
|
vOmOrhyst
|
||
| 29.03.2017, 19:12 | ||
Примеры смотрел, функция hScroll = SCROLLBAR_CreateAttached(hMultiPage, SCROLLBAR_CF_VERTICAL); -не работает |
||
|
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
|
||
| 29.03.2017, 19:22 | ||
Не забудьте также GUIConf.c (там задаётся рабочий буфер STemWin-а) и GUI_X.c. Либу может надо подключать индивидуально, в настройках линкера, а не каталогом. Это от среды/компилятора зависит. Здесь не подскажу, с кейлом не работаю. Сорри. vOmOrhyst, я немного не понял - что Вы хотите прокручивать? Судя по коду - сам Multipage. Не знаю. возможно ли вообще такое ...
0
|
||
|
vOmOrhyst
|
||
| 29.03.2017, 19:42 | ||
К примеру- есть много виджетов edit которые идут вниз по оси у. Возможно ли это сделать? (С прокруткой на едитах-разобрался, здесь-нет) <Изображение удалено> |
||
|
odrvyho
|
||
| 30.03.2017, 01:01 | ||
|
||
|
vOmOrhyst
|
||
| 30.03.2017, 01:04 | ||
Спасибо, завтра попробую и отпишусь о результатах. |
||
|
vOmOrhyst
|
|||||||
| 01.04.2017, 18:09 | |||||||
UPD. Ничего не получилось, ругается на ф-ю GUI_SetOrg(x, y). Гонял в симуляторе от Segger. Буду искать другие варианты, возможно виджет Listbox с диалоговыми окнами.
|
|||||||
|
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
|
|
| 01.04.2017, 18:21 | |
|
Симулятором не пользовался, поиском нашёл прототип этой функции в GUI.h и в самой либе libSTemWin532_CM4_OS_GCC.a
Попробуйте вне симулятора, в реальном устройстве.
0
|
|
|
vOmOrhyst
|
||
| 01.04.2017, 18:52 | ||
Спасибо всем за идеи. По поводу multipage-виджет хорош, но для пользования при свыше 6 вкладок нужно увеличить стэк, да и без прокрутки содержимого вкладки для меня бесполезен. |
||
|
0 / 0 / 0
Регистрация: 24.07.2012
Сообщений: 49
|
|
| 02.04.2017, 00:21 | |
|
в Page встраивается вспомогательное окно со скролом. А в него встраивается окно нужного размера для прокрутки
0
|
|
|
odrvyho
|
||
| 02.04.2017, 13:26 | ||
|
||
|
rukh
|
||
| 02.04.2017, 19:14 | ||
|
||
|
disymir
|
|
| 06.04.2017, 07:48 | |
|
Доброго времени суток, уважаемые форумчане. Прошу помочь решить проблему. Есть платка с камнем stm32F407+ дисплей ili9481 480x320. Стандартный набор демо STemWin на основе CMSIS+Keil4 проходят на ура. Те же тесты на основе HAL+Keil4 проходят частично. Не работают виджеты FrameWymdows. Подозреваю, что проблема с настройкой тактирования. В CMSIS для увеличения OS_TimeMS используется отдельный таймер TIM3. В HAL волшебная константа OS_TimeMS увеличивается прерыванием по SYSTick. Проект настраивается CubeMX стандартно внешний кварц на 8 мгц. Тактовая частота 168 мгц. Помогите разобраться в этой проблеме.
|
|
| 06.04.2017, 07:48 | |
|
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 — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
|