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

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

21.12.2013, 23:06. Показов 835651. Ответов 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
0 / 0 / 0
Регистрация: 01.02.2011
Сообщений: 300
06.01.2014, 02:19
Студворк — интернет-сервис помощи студентам
Я заказал себе пару, только вот не знаю, цветной или монохром. Жду, должны прийти после выходных. Надеюсь. Жаль без тачпада.
0
5 / 5 / 5
Регистрация: 20.11.2010
Сообщений: 173
06.01.2014, 02:35
Я вообще мучаю старый добрый экран от своего Siemens M65 на контроллере L2F50, тож ничего, и бесплатно...

0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
06.01.2014, 02:52
Цитата Сообщение от omdries5
Я заказал себе пару, только вот не знаю, цветной или монохром. Жду, должны прийти после выходных. Надеюсь. Жаль без тачпада.
Естественно, цветной. Даташит ST7735 посмотрИте.
И поиск по форуму на "ST7735" таки поленились запустить? С этим дисплеем как раз бывают нюансы с цветом...
0
0 / 0 / 0
Регистрация: 01.02.2011
Сообщений: 300
06.01.2014, 03:04
По моей ссылке ILI9341. Не ST7735. Или я чего не понял.
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
06.01.2014, 03:08
Цитата Сообщение от omdries5
По моей ссылке ILI9341. Не ST7735. Или я чего не понял.
Упс, не обратил внимание. Думал, это от Pymkvymа был пост.

Про модуль на ILI9341 ничего не скажу. Хотя, опять же по даташиту, наверняка цветной. Почему думаете, что может оказаться монохромным? 8-0
0
0 / 0 / 0
Регистрация: 01.02.2011
Сообщений: 300
06.01.2014, 03:10
В описании ни слова про COLOR.
0
0 / 0 / 0
Регистрация: 01.02.2011
Сообщений: 300
06.01.2014, 03:12
Продолжаю ковырять STemWin на 103RB, все больше нравиться как работает.
0
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
06.01.2014, 14:11
omdries5, сколько Вы ей памяти дали?
Я на F407 дал 64 кила, MULTIPAGE считай не работает - не хватает памяти. Убрал его ...
0
0 / 0 / 0
Регистрация: 01.02.2011
Сообщений: 300
06.01.2014, 15:06
hd44780,
Code
1
2
3
4
//
// Defyme the available number of bytes available for the GUI
//
#define GUI_NUMBYTES  (1024) *  10   // x KByte
0
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
06.01.2014, 16:19
Ну да 10 кил ...
А какие виджеты (в его терминологии) используете?
0
0 / 0 / 0
Регистрация: 01.02.2011
Сообщений: 300
06.01.2014, 16:23
Пару BUTTON, и TEXT. Ну и FROMEWIN.
0
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
06.01.2014, 17:16
Понятно.
Я пытаюсь дерево сделать, типа виндозного проводника...
Если что получится, поделюсь опытом.
0
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
06.01.2014, 23:50
Как из дерева удалить все узлы?
Или хотя бы какой-то узел с потомками..

После этого TREEVIEW_ITEM_Delete ( hRootNode ); всё тупо виснет :) Никакого DefaultHomdler-а нету, а GUI замирает.
TREEVIEW_ITEM_Detach ( hRootNode ); перед удалением - по фиг.

И как менять текст узла?
TREEVIEW_ITEM_SetText ( hRootNode, "Выбран SD" ); - по фиг, не меняется :(
0
0 / 0 / 0
Регистрация: 01.02.2011
Сообщений: 300
07.01.2014, 00:33
Посмотрите здесь WIDGET_TreeviewTryit.ixi
http://www.segger.com/emwin-samples.html
и
http://www.segger.com/admin/up... iewTryit.c
у них корректно удаляется.
0
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
07.01.2014, 00:56
Да смотрел я у них:

Code
1
2
3
4
5
6
7
        hTVI0 = TREEVIEW_GetSel(hTree0);
if (hTVI0) {
TREEVIEW_ITEM_Delete(hTVI0);
} else {
GUI_MessageBox("No item selected!", "Info", GUI_MESSAGEBOX_CF_MODAL);
WM_SetFocus(hTree0);
}
также как и у меня..

Я сильно подозреваю, что мне банально не хватает памяти ...
Фиг знает :(
0
0 / 0 / 0
Регистрация: 01.02.2011
Сообщений: 300
07.01.2014, 13:59
hd44780, в примерах от ST, для stm407, предлагают такую организацию памяти
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//
// Defyme the available number of bytes available for the GUI
//
#define GUI_NUMBYTES  (1024) *  512   // x KByte
 
/*********************************************************************
*
*       Static data
*
**********************************************************************
*/
 
/* 32 bit otygned memory area */
 
#ifdef __ICCARM__
#pragma location=0x64000000
static __no_init U32 extMem[GUI_NUMBYTES / 4];
#elif defined (__CC_ARM)
static U32 extMem[GUI_NUMBYTES / 4] __attribute__((at(0x64000000)));
#elif defined (__GNUC__)
static U32 extMem[GUI_NUMBYTES / 4] __attribute__((section(".ExtROMData")));
#endif
ну попробуйте увеличить стек, возможно его и не хватает.
0
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
07.01.2014, 14:58
Со стеком пока не игрался.
А вот это:
Code
1
2
3
4
//
// Defyme the available number of bytes available for the GUI
//
#define GUI_NUMBYTES  (1024) *  512   // x KByte
я в первые 5 минут знакомства этой либой увидел.

Но 512 кил оперативы мало где есть. В этом-то вся засада. У меня, например, их нет.
0
0 / 0 / 0
Регистрация: 01.02.2011
Сообщений: 300
07.01.2014, 16:17
hd44780, но это для 407ххG, где 192к ОЗУ. У меня отводиться половина ROM. Как посмотреть использование стека?
0
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
07.01.2014, 17:02
Про стек не знаю. В различных средах по-разному.
Пробежался по настройкам кокоса - не нашёл пока.
0
0 / 0 / 0
Регистрация: 01.02.2011
Сообщений: 300
07.01.2014, 17:20
Я посмотрел в примерах, в stortup_stm32f10x_md_mdkarm.s стек увеличен до 0х900, и у себя тоже увеличил. А сколько в действительности надо не знаю.
Для 407хG предлагают стек 0х1000.
Посмотрел в кокосе изначальный стартап предлагает 0х200.
Code
1
#define STACK_SIZE       0x00000200      /*!< The Stack size suggest using even number    */
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.01.2014, 17:20

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НФ. Вот не пойму, есть ли...


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

Или воспользуйтесь поиском по форуму:
100
Закрытая тема Создать тему
Новые блоги и статьи
Установка 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 на машинах, под. . .
Baragoz - DPS/HPS бот для WoW 3.3.5a, многоязычный
AmbA 26.10.2026
Хотите ещё ботов? У меня есть один! А я пока отдохну от него. https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=12062&stc=1&d=1793007952 Инструкция внутри. https:/ / youtu. be/ VpfFZSUDGnQ. . .
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
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 Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru