|
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
|
||||||
STemWin на STM32F4. Первый опыт. Вопросы.21.12.2013, 23:06. Показов 835359. Ответов 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 |
|
0 / 0 / 0
Регистрация: 16.09.2016
Сообщений: 33
|
|
| 22.02.2017, 23:00 | |
|
И еще вопрос есть экран но у него нет вывода RD ili9481, чтение не работает, из-за этого или нет, никто не юзал такой экран https://ru.otyexpress.com/item/Frii-shi ... 12732.html
0
|
|
|
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
|
||
| 23.02.2017, 19:41 | ||
1. Дисплей с возможностью чтения пикселей (по одному, другие варианты не нужны и неприменимы). 2. Большой буфер STemWin. Я использовал 3 метра (SDROM), сколько именно надо - не знаю. В этом случае чтение просто никогда не вызывается, т.е. он не нужно. Естественно, схема должна иметь эту память. По другим вопросам не знаю.
0
|
||
|
0 / 0 / 0
Регистрация: 16.09.2016
Сообщений: 33
|
||
| 25.02.2017, 02:36 | ||
По первому вопросу не поможешь? Как рисовать поверх окна? Это можно точно судя по примерам на сайте сегер но они замудреные я их не понимаю. Я могу рисовать до момента запуска окна а после оно все перекрывает.
0
|
||
|
0 / 0 / 0
Регистрация: 16.09.2016
Сообщений: 33
|
|
| 25.02.2017, 12:00 | |
|
По чтению прочитал даташит наконец, вердикт не будет с него ничего читаться, китаезы блин. Там не просто сигнал, а тактирование должно идти тут уж без него никак.
0
|
|
|
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
|
|
| 25.02.2017, 12:31 | |
|
Тактирование там ни при чём. Логика работы FSMC (точнее даже I8080) по определению такова, что и для чтения, и для записи обязаны быть отдельные сигналы. Нет сигнала - нет чтения (либо записи :D ). Сами по себе команды ни при чём. Это уже логический уровень, а у Вас проблемы на физическом.
STemWin тут уже ни на что повлиять не может. Точнее может - делайте огромный буфер. Я уже писал выше. Либо ищите нормальный дисплей. По рисованию поверх окон - на мой взгляд, это вообще противозаконно, и на этом пути могут быть какие угодно грабли. Единственный законный путь - наложить сверху простое окно типа hStatusWin = WM_CreateWymdowAsChild ( 0, 0, 800, 25, WM_GetDesktopWymdowEx ( 1 ), WM_CF_SHOW | WM_CF_HASTRANS | WM_CF_MEMDEV | WM_CF_STAYONTOP, _cbStatus, 0 ); И в его оконной функции, в событии WM_PAINT, рисуйте что хотите. Но опять же - не знаю, обеспечит ли такой подход прозрачность окна и вообще как оно поведёт себя в вашей ситуации с кастрированным дисплеем. Проверяйте. Лично я делал непрозрачное окно (аналог виндозного трея с часиками и значками), но мой SSD1963 прекрасно считывал из себя пиксели, а последнее время я вообще пересел на LTDC, где само функционирование дисплея принципиально иное. Удачи.
0
|
|
|
0 / 0 / 0
Регистрация: 16.09.2016
Сообщений: 33
|
||
| 25.02.2017, 17:37 | ||
По поводу рисования поверх окон вообще странно, что это противозаконно, смотря на примеры от производителя, они этим занимаются, иначе как рисовать нормальные интерфейсы только заготовками кнопок и текс боксов? Они используют часто слои, но наверное, для прозрачности. Еще одно окно поверх другого, не знаю, но чем мне это поможет рисовать, ведь новое окно также не дает рисовать как и старое? Не стандартные интерфейсы кто-то делал или только кнопки используете? Я понять не могу, почему форум находится только этот по EmWin и в нем только hd44780 сидит. Вроде не плохая штука EmWin, в Росии никто не пользуется что ли, а кто пользуется сами не знают как у них он заработал и рады этому) Я могу конечно сделать окно не во весь экран(ограничится областью где кнопки) и рисовать ниже, но мне сам принцип понять хочется, что это за перекрытия и как ими управлять, для чего слои и т.д. А то, например, рисую линии просто в наглую сам без EmWin, что вообще странно, когда он умеет рисовать кучей функций. Функция выведения изображений тоже EmWinская, почему это противозаконно в окне вывести картинку? должно это ка-то работать, но у меня не работает, а примеры от EmWin настолько мудреные, что понять в них что-либо пока для меня сложно.
0
|
||
|
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
|
|||
| 25.02.2017, 19:51 | |||
А киньте плиз какой-нибудь пример от emWin, я если пойму чего - расскажу :) Слоями STemWin лично я не пользовался, не подскажу ничего. На сеггере тоже есть форум, но тут говорил кто-то, что там тоже не шибко-то отвечают.
0
|
|||
|
odrvyho
|
|
| 27.02.2017, 11:59 | |
|
Не знаю, будет полезным кому-то или нет - сам сейчас нахожусь на поле битвы с EmWin. После многочисленных попыток взять эту твердыню наскоком оббил всю башку и решил последовать первому правилу инженера - "Если уже совсем ничего не помогает - прочти инструкцию". Самая путёвая литература лежит в архиве STemWin_Library_V1.2.0 (вроде как на st.com лежит) в папке STemWin_Library_V1.2.0\Libraries\STemWin Library532\Documentation. Полистал 1300 страниц - вроде немного стало всё понятнее))
Если я правильно понял, нужно создать окно поверх существующего(вроде всплывающих окон)? Видел в этом документе, как это сделать. Насколько помню - создаётся новый диалог для всплывающего окна Framewin, которое является ChildWymdow для основного, основное деактивируется, пока вы работаете с child. |
|
|
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
|
|
| 27.02.2017, 13:11 | |
|
odrvyho, я не понял, что Вы хотите сделать.
Какое-то окно поверх всех остальных окон? Это окно - диалог или что?
0
|
|
|
odrvyho
|
||
| 27.02.2017, 23:24 | ||
Литературу, если надо кому, могу скинуть на почту или выложить на файлообменник |
||
|
0 / 0 / 0
Регистрация: 16.09.2016
Сообщений: 33
|
|
| 28.02.2017, 23:06 | |
|
Литературу давайте на файлообменник, всегда пригодится.
0
|
|
|
odrvyho
|
|
| 01.03.2017, 10:22 | |
|
|
|
|
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
|
||
| 01.03.2017, 15:30 | ||
0
|
||
|
odrvyho
|
||
| 02.03.2017, 09:17 | ||
Если у Вас есть какая-то иная литература, было бы здорово, ибо информации про emwin - кот наплакал |
||
|
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
|
|
| 02.03.2017, 12:24 | |
|
Я не натыкался. Когда надо - курю ихнюю доку и примеры.
0
|
|
|
0 / 0 / 0
Регистрация: 30.07.2012
Сообщений: 72
|
|
| 04.03.2017, 20:42 | |
|
А никто не подскажет, в emWin есть возможность скрывать компоненты, ну или хотя бы делать их не активными? Меня больше всего интересует кнопки. Беглый просмотр API по ману результатов не принес, а в примерах пока что не наткнулся.
0
|
|
|
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
|
|||||||
| 04.03.2017, 20:59 | |||||||
А спец-функций, типа BUTTON_Hide, конечно же нет. Ибо не нужны они ....
0
|
|||||||
|
0 / 0 / 0
Регистрация: 30.07.2012
Сообщений: 72
|
|
| 05.03.2017, 21:45 | |
|
Спасибо, но вот как то не прозрачно это все в мане у них сделано, вот почему нельзя сделать методы Hide/Show или enable/disable для элемента, т.е. с префиксом. Ну да ладно, хоть так можно и то хорошо. Еще раз спасибо за ответ.
0
|
|
|
0 / 0 / 0
Регистрация: 16.09.2016
Сообщений: 33
|
|
| 05.03.2017, 22:10 | |
|
Добрый вечер всем. Такой вопрос, есть меню, в меню выбираю пункт в котором 2 подпункта и я хочу как то сразу выделять тот пункт что был уже выбран, пробовал фекусом и MENU_SetSel но проблема в том что, если у меню есть субменю то от самого меню при его выборе нет уведомления, удаляю дочерние сабменю и вызов происходит. как быть, как выделять настроенные параметры в меню?
Смотрю здесь, и уведомления туда приходят, но не от меню с субменю, а от самих субменю без проблем. case MENU_ON_ITEMSELECT://Это сообщение посылается владельцу меню сразу после пункт меню выбран. switch (pData->ItemId) {
0
|
|
|
0 / 0 / 0
Регистрация: 16.09.2016
Сообщений: 33
|
|
| 05.03.2017, 22:23 | |
|
Сообщение нашел от меню в case MENU_ON_INITSUBMENU://Это сообщение посылается владельцу меню сразу прежде чем откроется субменю.
но на MENU_SetSel тут не реагирует, как выделить нужное мне субменю, чтобы понятно была текущая настройка?
0
|
|
| 05.03.2017, 22:23 | |
|
STM32F4-Discovery(подключение и глупые вопросы) STM32F4+ETH(Вопросы по PHY KSZ8863) [решено]stm32f4 ethernet phy вопросы Первый опыт Первый опыт Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version
Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|