Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.94/4383: Рейтинг темы: голосов - 4383, средняя оценка - 4.94
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605

STemWin на STM32F4. Первый опыт. Вопросы.

21.12.2013, 23:06. Показов 835683. Ответов 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.

Я видел конструкцию
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#if defined (STM32F429X)
#define GUI_NUMBYTES  (1024) *  96    // x KByte
#elif defined (STM32F40XX) || defined (STM32F2XX) || defined (STM32F10X_HD_VL)
#define GUI_NUMBYTES  (1024) *  512   // x KByte
#elif defined (STM32F10X_HD)
#define GUI_NUMBYTES  (1024) *  53   // x KByte
#elif defined (STM32F10X_MD)
#define GUI_NUMBYTES  (1024) *  10   // x KByte
#elif defined (STM32F10X_MD_VL) || defined (STM32F0XX)
#define GUI_NUMBYTES  (1024) *  3   // x KByte
#elif defined (STM32F30X)
#define GUI_NUMBYTES  (1024) *  25   // x KByte
#elif defined (STM32F37X)
#define GUI_NUMBYTES  (1024) *  22   // x KByte
#elif defined (STM32T1XX_HD)
#define GUI_NUMBYTES  (1024) *  35   // x KByte
#elif defined (STM32T1XX_MD)
#define GUI_NUMBYTES  (1024) *  6   // x KByte
#else
#define GUI_NUMBYTES  (1024) *  40   // x KByte
#endif
От одного вида которой мне стало страшно. У меня проц F407, Значит я должен дать ему 512 кил оперативы.
Внешней памяти у меня нет, в силу урезанности FSMC на 100-ногих процах. Или что, оно работает только на 429-Dyscovery, где стоит 8-метровый чип SDROM? Охренеть...
Дал ей пока 64К, но рекомендаций по этим объёмам я не нашёл. Сколько ей надо?

Спасибо.

[23.93 Кб]

[18.45 Кб]
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.12.2013, 23:06
Ответы с готовыми решениями:

Измерение уровней звука. Вопросы. Первый опыт.
Всем доброго времени суток! Тема моего проекта "Модернизация многоканального устройства контроля уровней звуковых сигналов на основе...

Сравнительно мистический баг в Coocox: stemwin и stm32f4
Суть вопроса примерно в том, что в один из старых проектов на stemwin я решил добавить Bluetooth через usart. (переносил самописный драйвер...

Вопросы по STM32F4
Начал осваивать STM32F4. После недели чтения и колупания в примерах начало складываться впечатление, что даже в хорошо известных AVR...

1103
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
21.01.2014, 12:52
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Dimox
Цитата Сообщение от hd44780
masker, ловите моё подключение:Код:
2 - +Vcc + +3v
19 - LED-A pull-up 1-10kПодскажите, вы какой резистор на LED-A ставили?
дискавери по току потянет дисплей питать?
или отдельный стабилизатор ставить на +Vcc?На F4-Dyscovery стабилизатор стоит на 150 мА. Питайте LED-A не от стабилизатора (пины "3V"), а от пина "5V". Последовательный резистор - начните с 1 кОм, а там посмОтрите.

А на сам дисплей питания основной платы хватает, проверено с разными LCD-TFT.
0
0 / 0 / 0
Регистрация: 26.01.2013
Сообщений: 208
21.01.2014, 14:22
Цитата Сообщение от OtyxPM
На F4-Dyscovery стабилизатор стоит на 150 мА. Питайте LED-A не от стабилизатора (пины "3V"), а от пина "5V". Последовательный резистор - начните с 1 кОм, а там посмОтрите.

А на сам дисплей питания основной платы хватает, проверено с разными LCD-TFT.
чета я запутался...

1. судя по схеме питания подсветки дисплея (см. аттач), вход LED-A - не силовой (заведен на вход управления степ-апа), а также соединяется с выходом PWM контроллера дисплея (LCD_BL_ADJ), потому его можно цеплять к +3V дискавери.
Так?
Кто знает, как LED-A вообще работает? Судя по тому, что там стоит pull-up резистор, следует что выход PWM - это с Z-состоянием, который ШИМом прижимает LCD_BL_ADJ (он же LED-A) к земле.
Я правильно мыслю?

2. силовая цепь - это вход +Vcc дисплея, hd44780 цепляет его к +3V дискавери, но у меня по даташиту 5" дисплей жрет 300мА (у него судя по всему тоже, т.к. контроллер и разрешение экрана у нас одинаковые)
Вопрос, как, если там стаб на 150мА?

з.ы. очень ссыкатно попалить дискавери)


<Изображение удалено>

0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
21.01.2014, 14:31
Цитата Сообщение от Dimox
по схеме питания подсветки дисплея (см. аттач), вход LED-A - не силовой
Ммм... неудачно выбрано обозначение. Обычно "LED-A(node)" на LCD-разъёмах - это силовой контакт. Здесь, наверно, сокращение от другого слова, "A(djust)".

Цитата Сообщение от Dimox
у меня по даташиту 5" дисплей жрет 300мА
Если так, то imho лучше дать дисплею отдельное питание. Хотя бы на первое время - запУстите дисплей и померяете реальный ток вместе с подсветкой. Вдруг там окажется не так уж и много.
У меня 3.2" TFT, кстати, получает всего 10 мА (от пина "5V") на светодиоды подсветки - нормально. Сам дисплей питается от "3V" Dyscovery.
0
0 / 0 / 0
Регистрация: 26.01.2013
Сообщений: 208
21.01.2014, 17:03
Цитата Сообщение от OtyxPM
Если так, то imho лучше дать дисплею отдельное питание. Хотя бы на первое время - запУстите дисплей и померяете реальный ток вместе с подсветкой. Вдруг там окажется не так уж и много.
Спасибо, так и сделаю.
У меня есть плата AMS1117-3.3 DC/DC Step-Down (800мА), если ее запитать от шины +5V дискавери (которая запитана от USB), ниче плохого не будет?
а то может там и по +5В стаб стоит?
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
21.01.2014, 17:09
Цитата Сообщение от Dimox
AMS1117-3.3 DC/DC Step-Down (800мА) ... если ее запитать от шины +5V дискавери (которая запитана от USB), ниче плохого не будет?
а то может там и по +5В стаб стоит?
Нормуль будет :-)
По 5V стабилизатора нет (см.схему платы - её можно скачать с сайта st.com). Ток будет ограничиваться USB-портом.
0
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 210
21.01.2014, 23:16
у меня дисплей ITDB02-5 и через резистор LED-A не работает, только прямое подключение к +5.
И спасибо большое HD44780 за его ветку.
0
1 / 1 / 0
Регистрация: 09.02.2012
Сообщений: 693
21.01.2014, 23:20
Цитата Сообщение от bomzoyy
у меня дисплей ITDB02-5 и через резистор LED-A не работает
Конечно не будет. Скачайте схему и увидите, что в этом дисплее стоит драйвер подсветки DC-DC преобразователь. Он прекрасно питается от пина "+5В" на дискавери. Но дисплей с подсветкой у меня заработал даже от 3,7В!
0
1 / 1 / 0
Регистрация: 19.07.2013
Сообщений: 423
22.01.2014, 00:13
Чтение с дисплея удалось наладить, но видимо порядок RGB не совпадает, где-то в мануале по emWin попадалось упоминание об этой проблеме, никто не сталкивался?
Какая у вас скорость отрисовки пикселов/с? у меня сейчас 2400000 п/с


<Изображение удалено>
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
22.01.2014, 00:22
Цитата Сообщение от Kytomo8
порядок RGB не совпадает
Это корректируется в одном из регистров в коде инициализации дисплея. В даташите на LCD-контроллер поищите "BGR".
0
0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 206
22.01.2014, 00:38
Цитата Сообщение от Kytomo8
Какая у вас скорость отрисовки пикселов/с? у меня сейчас 2400000 п/с
Это попиксельно или заливка прямоугольного пространства?

Без GUI мне удавалось заливать дисплей до 150 раз в секунду.
Это 320*240 * 150 = 11,5 млн точек в секунду.
Попиксельно гораздо медленнее. А через GUI попиксельно дисплей вообще около секунды у меня зарисовывается :(
0
1 / 1 / 0
Регистрация: 19.07.2013
Сообщений: 423
22.01.2014, 00:47
Цитата Сообщение от OtyxPM
Цитата Сообщение от Kytomo8
порядок RGB не совпадает
Это корректируется в одном из регистров в коде инициализации дисплея. В даташите на LCD-контроллер поищите "BGR".
Если изменить значение этого регистра, тогда и отрисовывать будет в другом порядке.
2 Ftopyx
Имелась ввиду скорость в тесте emwin. У вас подключение к FSMC?
0
0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 206
22.01.2014, 00:52
Цитата Сообщение от Kytomo8
Цитата Сообщение от OtyxPM
У вас подключение к FSMC?
Да FSMC.

Как называется файл с тестом EmWin?
0
1 / 1 / 0
Регистрация: 19.07.2013
Сообщений: 423
22.01.2014, 01:06
Стандартный тест -> GUIDEMO.h включите #define SHOW_GUIDEMO_SPEED (1)
потом в GUIDEMO.c GUIDEMO_Main();
0
1 / 1 / 0
Регистрация: 19.07.2013
Сообщений: 423
22.01.2014, 01:49
Все, нашел где конверсия цвета при чтении).
Надо было добавить строчку (для SSD1963)
GUIDRV_FlexColor_SetReadFunc66720_B16(pD evice, GUIDRV_FLEXCOLOR_READ_FUNC_II);
перед
GUIDRV_FlexColor_SetFunc...
стр.999
0
0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 206
22.01.2014, 03:24
Показало скорость всего 84000 pix/sec, С отключеной оптимизацией вообще 57000.

Но у меня функции отрисовки прямоугольных областей сейчас в драйвере выводятся попиксельно.
0
0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 206
22.01.2014, 11:29
Переделал отрисовку прямоугольников через окна и прямую запись в память. Скорость выросла до 511тыс пикс. в сек.

Не знаю как еще увеличить скорость :(
0
1 / 1 / 0
Регистрация: 19.07.2013
Сообщений: 423
22.01.2014, 20:59
Цитата Сообщение от Ftopyx
Переделал отрисовку прямоугольников через окна и прямую запись в память. Скорость выросла до 511тыс пикс. в сек.

Не знаю как еще увеличить скорость :(
У меня сейчас ssd1963 управляется ногодрыгом, но, через стандартный драйвер FlexColor, мой только инит и основные команды записи/чтения. Сначала скорость была 1500000, оптимизировал команды, теперь выросла. Интересно как на
32F429IDISCOVERY отрисовывает под 62млн п/с?
0
0 / 0 / 0
Регистрация: 26.01.2013
Сообщений: 208
23.01.2014, 01:45
Цитата Сообщение от OtyxPM
На F4-Dyscovery стабилизатор стоит на 150 мА. Питайте LED-A не от стабилизатора (пины "3V"), а от пина "5V". Последовательный резистор - начните с 1 кОм, а там посмОтрите.

А на сам дисплей питания основной платы хватает, проверено с разными LCD-TFT.
Докладываю, распаял дисплей (5", 800x480, SSD1963), в схеме разводки (что давал hd44780 на первой странице) поставил pull-up резисторы 1К.
Дисплей запитал через стаб AMS1117-3.3 Step-Down, +5V брал с платы дискавери.

Итого: дисплей светится, потребление по питанию 250мА
Мораль - не запитывайтесь от +3V дискавери пока потребление не проверите, а то попалите дискавери
0
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
23.01.2014, 10:55
Я брал с неё 3в. Ничего не погорело, но и не работало. Стаб там дохлый, напряжение сразу проседает до 2.5 в, даже USB флэшка глохнет. Видимо из-за низких уровней на ногах проца.
Сам проц работал.
Пришлось ставить LM317 с резисторами на 3.3в.
0
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 210
23.01.2014, 12:02
HD44780, не мог бы ты выложить последнюю версию своей проги.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.01.2014, 12:02

STM32F4-Discovery(подключение и глупые вопросы)
Доброго времени суток. В руки попали две платки: STM32F4-Dyscovery и STM32VL-discovery. Любопытств не позволило пройти мимо богатства, но...

STM32F4+ETH(Вопросы по PHY KSZ8863)
Привет. Есть stm32f4 и желание прикрутить Ethernet с двумя портами. В качестве PHY был выбран...

[решено]stm32f4 ethernet phy вопросы
прицепил физику KSZ8051. пытаюсь завести пример с сайта стм - STM32F4x7_ETH_LwIP_V1.0.0. (со своими пинами сам собой) всё висит на ...

Первый опыт
День добрый форумчане. Имееться конфа УТП 1.0.19.8 типовая, обычное приложение, малость измененная - изменены роли и права и более ничего...

Первый опыт
Приветствую всех! Сильно не бейте, сделал БД Автосалон, нужно для учёбы. Таблицы должны быть нормализованы по 3НФ. Вот не пойму, есть ли...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
180
Закрытая тема Создать тему
Новые блоги и статьи
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store. И так: 1. Скачиваем с. . .
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге). Задача: Программно добавить префикс в нумерацию документов. Решение: В модуле объекта. . .
После закрытия оутлука продолжает висеть процесс в диспетчере задач
Maks 27.10.2026
С недавнего времени в продакшене возникла проблема: при закрытии оутлука в диспетчере задач продолжал висеть процесс outlook. exe. Проблема возникла после установки MS Office 2021 LTSC на машинах, под. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru