|
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
|
|||||||||||||||||
| 19.07.2016, 10:06 | |||||||||||||||||
Вы сделали структуру:
Но эта структура у Вас совершенно никуда не попадает. Соответственно и все эти функции никем не используются. Не удивлюсь, если линкер всё это вообще повыкидывал как неиспользуемое .... Посмотрите в мой пример:
У Вас я увидел что-то непонятное:
Может быть просто какая-то затычка-пустышка, которая ничего не делает. Вы также можете взять мой LCD_conf.c, позаменять мои функции SSD1963_ххх на свои, подставить свои "габариты" дисплея вместо моих 800x480 и по идее оно должно заработать.
0
|
|||||||||||||||||
|
Yiryxom
|
||
| 20.07.2016, 08:53 | ||
|
||
|
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
|
|
| 20.07.2016, 09:27 | |
|
Не за что.
0
|
|
|
0 / 0 / 0
Регистрация: 19.08.2014
Сообщений: 430
|
|
| 21.07.2016, 07:24 | |
|
Пишу в TEXT_SetText (hItem,Mem.product_name_1); где Mem.product_name_1[10]={"продукт 1"} массив. А мне гуи выводит на экран продукт 1 продукт 1, два раза.
0
|
|
|
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
|
|
| 21.07.2016, 09:15 | |
|
Mem.product_name_1[10] --- это char Mem.product_name_1[10]?
Попробуйте char *Mem.product_name_1="продукт 1";
0
|
|
|
0 / 0 / 0
Регистрация: 19.08.2014
Сообщений: 430
|
|||||||||||||||||||||
| 21.07.2016, 09:25 | |||||||||||||||||||||
|
Принимаю данные и загружаю их в структуру.
Хотя если написать
0
|
|||||||||||||||||||||
|
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
|
|
| 21.07.2016, 12:02 | |
|
А если так сделать:
strcpy ( Mem.product_name_1, "Продукт" ); ? char array_symbol[5]="hitto"; -- это вообще неправильно по-моему, т.к. те 5 байт, которые выделяются будут потеряны, т.к. указатель на них будет затёрт указателем на строку "hitto". Такое делать надо так: char *array_symbol="hitto";
0
|
|
|
0 / 0 / 0
Регистрация: 19.08.2014
Сообщений: 430
|
|||||||||||
| 21.07.2016, 12:15 | |||||||||||
|
Сделал вот так
0
|
|||||||||||
|
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
|
|
| 21.07.2016, 15:35 | |
|
Да. На конце строки всегда должен быть \0. В Си это закон.
функции strxxx вписывают его сами. Если пишете массив руками, то сами заботьтесь об этом нуле. Иначе возможны странные случайные глюки.
0
|
|
|
0 / 0 / 0
Регистрация: 19.08.2014
Сообщений: 430
|
|
| 29.07.2016, 13:52 | |
|
Можете поделится примером для настройки часов реального времени?
0
|
|
|
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
|
|
| 29.07.2016, 18:43 | |
|
Не понял.
Дать Вам окошко для ввода даты/времени?
0
|
|
|
0 / 0 / 0
Регистрация: 19.08.2014
Сообщений: 430
|
|
| 29.07.2016, 19:17 | |
|
Ага
0
|
|
|
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
|
|
| 29.07.2016, 22:09 | |
|
Ловите.
Там окошко и модуль rtc для F4x процов. Окошко проверено в v5.28 и 5.32 [5.48 Кб]
0
|
|
|
0 / 0 / 0
Регистрация: 29.11.2014
Сообщений: 49
|
|||||||||||
| 02.08.2016, 18:00 | |||||||||||
|
Словил глюка с падением в HordFault_Homdler
Суть хожу по формам и на 14 шаге между формами падаю. Очевидно что кончается память, но ведь вроде закрываю формы или что-то пропустил две тестовые формы прилаживаю frm1
0
|
|||||||||||
|
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
|
|||||||||||
| 03.08.2016, 09:10 | |||||||||||
|
wordir, Вы создаёте окно командой GUI_CreateDialogBox, закрываете его GUI_EndDialog. А почему Вы его не удаляете?
GUI_EndDialog только закрывает окно, но не удаляет его. Вы должны сделать нечто типа такого:
Т.е. на каждый вызов GUI_CreateDialogBox должен быть WM_DeleteWymdow. Иначе Вы будете постоянно терять память. И ещё. Почему Вы делаете
Я не советую так делать.
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 24.07.2012
Сообщений: 49
|
||||||
| 03.08.2016, 10:14 | ||||||
|
код для GUI_EndDialog, вызывает WM_DeleteWymdow()
0
|
||||||
|
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
|
|
| 03.08.2016, 12:58 | |
|
Это из какой версии STemWin/emWin? Где гарантия, что последняя STemwin 5.32 поступает также?
Я всё же предпочитаю делать это сам.
0
|
|
|
0 / 0 / 0
Регистрация: 25.04.2016
Сообщений: 334
|
||
| 03.08.2016, 13:56 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 29.11.2014
Сообщений: 49
|
||
| 03.08.2016, 14:05 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 29.11.2014
Сообщений: 49
|
||
| 08.08.2016, 10:45 | ||
0
|
||
| 08.08.2016, 10:45 | |
|
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 — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
|