|
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
|
||||||
STemWin на STM32F4. Первый опыт. Вопросы.21.12.2013, 23:06. Показов 835332. Ответов 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 |
|
hosh
|
||
| 23.12.2013, 21:29 | ||
А про тайминги FSMC всё верно... на макетке тайминги одни, а когда на плате всё разведено - удается по-шустрее раскочегарить P.S. А мне стыдно, я StemWin так и не раскрутил... (хотя не сильно то и старался) |
||
|
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
|
|
| 24.12.2013, 00:40 | |
|
Сей гуй ожил.
Теперь надо разбираться, как оно работает.
0
|
|
|
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
|
||||||
| 26.12.2013, 22:37 | ||||||
|
Нарисовал пару кнопок, вписал в обработчик вкл/выкл светодиодиков.
Запуск делаю так:
Что-то я пропустил, но что - не пойму.... Кто знает - подскажите пожалуйста.
0
|
||||||
|
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
|
|
| 26.12.2013, 23:38 | |
|
Стрелку курсора я включил, тач работает, стрелка двигается, визуально в кнопку попадает (и не просто так, куда-то на краешек, а на середину).
Но обработчик (функция _cbDialog) при этом не вызывается. Она вызывается только при инициализации интерфейса.
0
|
|
|
0 / 0 / 0
Регистрация: 01.02.2011
Сообщений: 300
|
|
| 27.12.2013, 00:50 | |
|
У меня тоже кнопки рисуются, курсор за пальцем следует, а кнопки не реагируют! Пытаюсь дальше.
0
|
|
|
5 / 5 / 5
Регистрация: 20.11.2010
Сообщений: 173
|
|
| 27.12.2013, 00:54 | |
|
Блин, а я вот с uC/GUI воюю, и похожая затыка... Создаю окно, и дочерние кнопку и чекбокс. При воздействии на них в моем понимании должен вызываться калбэк окна родителя с сообщением WM_NOTIFY_PORENT, а он нихрена не вызывается... Лажа какая-то )
Правда я кручу на vl-32discovery, без тача, просто кнопку назначил как пробел, когда фокусишь чекбокс - при нажатии кнопки галка на нем появляется, при повторном исчезает. Как и должно, а фокусишь кнопку так она не отрисовывает нажатие, хотя должна... Но калбэков не так не этак нет...
0
|
|
|
1 / 1 / 0
Регистрация: 09.02.2012
Сообщений: 693
|
|||||||
| 27.12.2013, 10:52 | |||||||
0
|
|||||||
|
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
|
|||||||||||
| 27.12.2013, 12:37 | |||||||||||
|
__bt__, написал, как Вы сказали:
Запуск GUI:
Никакой внешней доп. памяти у меня нет. Обычная STM32F4Dyscovery. Плюс дисплей на FSMC с тачем. Спасибо. [67.98 Кб]
0
|
|||||||||||
|
5 / 5 / 5
Регистрация: 20.11.2010
Сообщений: 173
|
|
| 27.12.2013, 12:47 | |
|
МемDev это программные процедуры. Выделяется буфер под рисование. Окно скачала рисуется туда, а потом готовое выплевывается в экран. Нужно это для борьбы с фликером (когда перерисовывается сначала окно, потом виджеты, и т.п.). Причем о физическом размещении буфера речи не идет, он может быть в ROM кристалла если места хватает...
Как по мне, даже если хочется пользовать, то на время первоначальной отладки лучше отключить...
0
|
|
|
1 / 1 / 0
Регистрация: 09.02.2012
Сообщений: 693
|
||||||
| 27.12.2013, 13:07 | ||||||
|
Посмотрю позже.
Вкратце алгоритм такой:
0
|
||||||
|
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
|
||||||
| 27.12.2013, 18:35 | ||||||
|
Добавил GUI_TOUCH_Exec, получил кучу ошибок линкера: [cc] ..\..\..\STemWinLibrary520d\libstemwin52 2_cm4_gcc.a(GUI_TOUCH_DryverAnalog.o): In function `GUI_TOUCH_Exec:
[cc] GUI_TOUCH_DryverAnalog.c:(.text.GUI_TOUC H_Exec+0x3a): undefined reference to `GUI_TOUCH_X_MeasureY [cc] GUI_TOUCH_DryverAnalog.c:(.text.GUI_TOUC H_Exec+0x42): undefined reference to `GUI_TOUCH_X_ActivateY [cc] GUI_TOUCH_DryverAnalog.c:(.text.GUI_TOUC H_Exec+0x50): undefined reference to `GUI_TOUCH_X_MeasureX [cc] GUI_TOUCH_DryverAnalog.c:(.text.GUI_TOUC H_Exec+0x58): undefined reference to `GUI_TOUCH_X_ActivateX Тач у меня работает как в демо:
Посмотрел для интереса ST-шное демо под отладчиком. У них этот Callback как часы вызывается .... GUI_TOUCH_Exec они не используют. Вот мой полный проект - http://rusfolder.com/39333257
0
|
||||||
|
1 / 1 / 0
Регистрация: 09.02.2012
Сообщений: 693
|
|
| 27.12.2013, 19:57 | |
|
Если я правильно понял Ваш алгоритм, то вы передаёте значение тача, только при касании. А в либе ST координаты передаются постоянно и указывается было ли касание TS_State.Pressed = trui или false.
0
|
|
|
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
|
||
| 27.12.2013, 21:23 | ||
0
|
||
|
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
|
||||||
| 27.12.2013, 23:56 | ||||||
|
Поставил
Хрень какая-то :( Курю дальше.
0
|
||||||
|
1 / 1 / 0
Регистрация: 09.02.2012
Сообщений: 693
|
||||||
| 28.12.2013, 00:55 | ||||||
|
в LCDConf.c у меня код для калибровки тача:
0
|
||||||
|
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
|
|
| 28.12.2013, 22:28 | |
|
Выдрал окно из демо, повесил на 2 кнопки 2 светодиодика, прикрутил PS/2 мышу - работает.
По нажатию кнопок светодиодики включаются и выключаются. LCD_X_Config пришлось несколько подправить. __bt__, в любом случае спасибо.
0
|
|
|
0 / 0 / 0
Регистрация: 01.02.2011
Сообщений: 300
|
||||||
| 29.12.2013, 00:26 | ||||||
|
У меня есть проблема, на STemWin 522 при касании тачпада по нарисованной кнопке все отрабатывает правильно, и рисунок меняется, и в программе переходит куда надо, но бывает отпускаю кнопку, а она продолжает изображаться нажатой пока не коснусь к тачпаду еще раз. Тогда как бы отщелкивается и все нормально, но непонятно почему не перерисовывается сама.
0
|
||||||
|
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
|
|
| 29.12.2013, 00:38 | |
|
omdries5, проверьте, корректно ли отрабатывает сам тач-контроллер отпускания.
У меня, например, при отпускании курсор хрен знает куда скачет. Тут об этом выше писали. Может и у Вас чисто тачевские глюки. По ходу ещё вопрос - кто-нибудь к этому GUI русские буквы прикрутил?
0
|
|
|
0 / 0 / 0
Регистрация: 01.02.2011
Сообщений: 300
|
|
| 29.12.2013, 01:07 | |
|
Да вроде корректно, курсор на месте. Просто не перерисовывается рисунок кнопки.
А с русскими буквами не пробовал.
0
|
|
|
5 / 5 / 5
Регистрация: 20.11.2010
Сообщений: 173
|
||
| 29.12.2013, 02:46 | ||
[2.79 Кб]
0
|
||
| 29.12.2013, 02:46 | |
|
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.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|