Easyelectronics.ru

Электроника для всех
Текущее время: 04 июл 2020, 14:34

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 1259 ]  На страницу Пред.  1 ... 37, 38, 39, 40, 41, 42, 43 ... 51  След.
Автор Сообщение
 Заголовок сообщения: Re: STemWin на STM32F4. Первый опыт. Вопросы.
СообщениеДобавлено: 26 мар 2017, 11:38 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 20 июл 2012, 00:10
Сообщения: 73
Откуда: Макеевка
Так вроде GUI_EndDialog делает удаление окна, я в своем коде делаю только GUI_EndDialog без вызова WM_DeleteWindow, все нормально живет. Но нужно еще раз ман переглядеть, что то мне подсказывает, что все же WM_DeleteWindow не нужно вызывать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STemWin на STM32F4. Первый опыт. Вопросы.
СообщениеДобавлено: 26 мар 2017, 15:53 
Только пришел
Аватара пользователя

Зарегистрирован: 16 янв 2017, 01:09
Сообщения: 13
Nikopol_86 писал(а):
Так вроде GUI_EndDialog делает удаление окна, я в своем коде делаю только GUI_EndDialog без вызова WM_DeleteWindow, все нормально живет. Но нужно еще раз ман переглядеть, что то мне подсказывает, что все же WM_DeleteWindow не нужно вызывать.

Из личного опыта скажу, что надёжнее всё-таки вызывать WM_DeleteWindow. У меня 5 экранов, и сначала при переключении между ними тоже использовал GUI_EndDialog до той поры, пока не припёрло очистить экран для калибровки тача - при использовании GUI_EndDialog экран не очищался, просто все виджеты становились неактивными. Заменил на DeleteWindow - всё заработало, как миленькое. Заменил везде на DeleteWindow - замечаний не было.

А у меня другая оказия - передаю в виджет TEXT значения с АЦП в основном цикле примерно следующим образом
Код:
hItem = WM_GetDialogItem(hImmulite_Motors, ID_TEXT_01);
      String_to_array(value[0]); // На выходе массив символов c
    TEXT_SetText(hItem, c);

Значения обновляются n-ное количество раз, затем перестают, при этом ProgBar прекрасно продолжает обновляться дальше (отображает заряд аккумулятора). В GUIConf.c влупил 1000 КБ SDRAM памяти под GUI, но тщетно.
Уж думаю на то, чтобы обновлять весь экран, но как-то это не по-христиански обновлять весь экран ради нескольких текстовых сообщений. Никто не сталкивался с подобной какой?

PS. Всё решилось заменой сторонней функции String_to_Array на sprintf. Всем спасибо - периодически эту ветку надо перелистывать назад))


Последний раз редактировалось adrvyho 29 мар 2017, 22:13, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STemWin на STM32F4. Первый опыт. Вопросы.
СообщениеДобавлено: 28 мар 2017, 06:22 
Старожил

Зарегистрирован: 23 авг 2014, 11:01
Сообщения: 790
функция WM_SendMessageNoPara() просто отправляет сообщение окну или перезаписывает его? При вызове функции WM_SendMessageNoPara() ни чего чистить не надо?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STemWin на STM32F4. Первый опыт. Вопросы.
СообщениеДобавлено: 28 мар 2017, 10:18 
Старожил
Аватара пользователя

Зарегистрирован: 23 янв 2013, 12:33
Сообщения: 1791
Откуда: Донецк, ДНР
zhilenkov писал(а):
функция WM_SendMessageNoPara() просто отправляет сообщение окну или перезаписывает его? При вызове функции WM_SendMessageNoPara() ни чего чистить не надо?


А что она должна перезаписать?
Не надо ничего чистить. И никто ничего не перезаписывает.
Она отправляет сообщение и всё. Реагирует окно на него или нет - тоже пофиг.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STemWin на STM32F4. Первый опыт. Вопросы.
СообщениеДобавлено: 30 мар 2017, 15:33 
Только пришел

Зарегистрирован: 30 мар 2017, 15:13
Сообщения: 12
Добрый день.
Прикручиваю китайский дисплей и хочу воспользоваться STemWin. Скачал с сайта st библиотеку. Почитал в этой теме как её подключать и что сделать для создания собственного драйвера. Множество раз упоминается библиотечный файл с параметрами LCD_Conf.с В моей версии библиотеки такого нет, есть LCDConf_FlexColor_Template.c и LCDConf_Lin_Template.c. Контроллер моего дисплея не указан в списке поддерживаемых segger. Поэтому, как я понимаю, мне следует воспользоваться LCDConf_Lin_Template.c
Добавляю в проект GUIConf.h, GUIDRV_Template.c(корректированный мной) и LCDConf_Lin_Template.c. Получаю 16 ошибок и 4 предупреждения при компиляции (см. картинку).
Среда разработки - Keil uvision 5.

Правильно ли я понял, что мн нужно использовать для своего проекта LCDConf_Lin_Template.c ?
Подскажите пожалуйста в чем проблема при компиляции?

Заранее спасибо


Вложения:
1.png
1.png [ 50.55 Кб | Просмотров: 4574 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STemWin на STM32F4. Первый опыт. Вопросы.
СообщениеДобавлено: 30 мар 2017, 16:40 
Старожил
Аватара пользователя

Зарегистрирован: 23 янв 2013, 12:33
Сообщения: 1791
Откуда: Донецк, ДНР
LCDConf_FlexColor_Template.c/LCDConf_Lin_Template.c/что-то ещё - зависит от того, какой у Вас дисп.
LCDConf_Lin - это LTDC, в диспе вообще контроллера нет
LCDConf_Flex - там наверное десятка 2 разных контроллеров.

А какой у Вас дисплей, вы не указали. Кроме того, что он китайский :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STemWin на STM32F4. Первый опыт. Вопросы.
СообщениеДобавлено: 30 мар 2017, 16:55 
Только пришел

Зарегистрирован: 30 мар 2017, 15:13
Сообщения: 12
NV3029E - 240RGB x 320dot, 262,144-color
TFT Controller Driver with Internal RAM.

Пишу под отладочную плату STM32F4-Discovery.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STemWin на STM32F4. Первый опыт. Вопросы.
СообщениеДобавлено: 30 мар 2017, 17:50 
Старожил
Аватара пользователя

Зарегистрирован: 23 янв 2013, 12:33
Сообщения: 1791
Откуда: Донецк, ДНР
Пишите свой кастомный драйвер. В моём архиве было показано, как это делать, но rusfolder, где он лежал, двинул кони, поищу другое место куда его залить ...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STemWin на STM32F4. Первый опыт. Вопросы.
СообщениеДобавлено: 30 мар 2017, 18:06 
Только пришел

Зарегистрирован: 30 мар 2017, 15:13
Сообщения: 12
Спасибо. Архив у меня есть. STemWinLibrary520d - myDrv, не так ли?
Касательно вопроса подключения библиотек и моих ошибок, указанных в прикрепленной к посту картинке, можете что-то подсказать? LCD_conf.c самому создавать, получается?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STemWin на STM32F4. Первый опыт. Вопросы.
СообщениеДобавлено: 30 мар 2017, 18:08 
Только пришел

Зарегистрирован: 20 мар 2017, 18:05
Сообщения: 9
Здравствуйте! Проблема с виджетом Multipage. Как правильно написать обработку скроллбара во вкладке?
Код:
Делаю так:
#include <stdlib.h>
#include "GUI.h"
#include "MULTIPAGE.h"
#include <stdio.h>
#include <string.h>
unsigned char touch_en;
int touch_y, touch_x;
static int _x;  // int for storage scrollbar move
static WM_HWIN hMultiPage;


#define RECOMMENDED_MEMORY (1024L * 64)//
#define GUI_ID_RD1   (GUI_ID_USER + 15)
#define GUI_ID_WR1   (GUI_ID_USER + 16)

#define EDIT_MAX_Y   10
#define EDIT_MAX_X   10
#define EDIT_ITEM_SIZEX 47

extern GUI_CONST_STORAGE GUI_FONT GUI_FontArial16;


static const GUI_WIDGET_CREATE_INFO _aDialogCreate1[] = {
  { WINDOW_CreateIndirect,"Регистратор регулировок СУ", 0, 0,0,260,240,FRAMEWIN_CF_MOVEABLE },
  { BUTTON_CreateIndirect,"RD",GUI_ID_RD1, 140,30, 30,20,0},
  { BUTTON_CreateIndirect,"WR",GUI_ID_WR1, 180,30, 30,20,0},
  { TEXT_CreateIndirect,"Ngg zmg", 0,5,10,50,20, TEXT_CF_LEFT },
  { EDIT_CreateIndirect, NULL,GUI_ID_EDIT0, 5,  30, 120,  20},
  { TEXT_CreateIndirect,"123", 0,5,60,50,20, TEXT_CF_LEFT },
  { EDIT_CreateIndirect, NULL,GUI_ID_EDIT1, 5, 80, 120,  20},//x y z
  { TEXT_CreateIndirect,"123", 0,5,100,50,20, TEXT_CF_LEFT },
  { EDIT_CreateIndirect, NULL,GUI_ID_EDIT2, 310, 230, 20,20},
};

static const GUI_WIDGET_CREATE_INFO _aDialogCreate2[] = {
  { WINDOW_CreateIndirect,   "Dialog 2", 0,                  0,   0, 260, 100, FRAMEWIN_CF_MOVEABLE },
  { CHECKBOX_CreateIndirect,  "",        GUI_ID_CHECK0,      5,  30,   0,   0, 0},
  { CHECKBOX_CreateIndirect,  "",        GUI_ID_CHECK1,      5,  50,   0,   0, 0},
  { TEXT_CreateIndirect,     "Select 0", GUI_ID_TEXT0,      25,  30,  50,  15, TEXT_CF_LEFT },
  { TEXT_CreateIndirect,     "Select 1", GUI_ID_TEXT1,      25,  50,  50,  15, TEXT_CF_LEFT },
  { TEXT_CreateIndirect,     "Dialog 2", 0,                  5,  10,  50,  20, TEXT_CF_LEFT }
};

/*********************************************************************
*
*      _cbWindow
*
* Function description
*   The callback moves the edit-fields when a notification message was send.
*/
static void _cbWindow(WM_MESSAGE * pMsg) {
  WM_SCROLL_STATE ScrollState;
   static MULTIPAGE_Handle _aDialogCreate1;
  int            x;
  int            y;

  switch (pMsg->MsgId) {
  case WM_NOTIFY_PARENT:
   if (pMsg->Data.v == WM_NOTIFICATION_VALUE_CHANGED) {           //
     if (WM_GetId(pMsg->hWinSrc) == GUI_ID_VSCROLL) {             //Vertical scroll
       WM_GetScrollState(pMsg->hWinSrc, &ScrollState);
       if (_x != ScrollState.v) {
         for (y = 0; y < EDIT_MAX_Y; y++) {
           for (x = 0; x < EDIT_MAX_X; x++) {
             WM_MoveWindow(_aDialogCreate1, 0, _x - ScrollState.v);//_x - ScrollState.v
           }
         }
         _x = ScrollState.v;
       }
     }
   }
   break;
  //case WM_PAINT:
   //GUI_SetBkColor(GUI_BLACK);
   //GUI_Clear();
   //break;
  default:
   WM_DefaultProc(pMsg);
  }
}

/*********************************************************************
*
*      _DemoScrollbarMove
*
* Function description
*   This function creates the window and his child objects. Then it
*   runs into a idle-loop, so that the window manager can handle the
*   objects.
*/
static void _DemoScrollbarMove(void) {
  WM_HWIN hMultiPage;
  WM_HWIN hFrameWin;
  WM_HWIN hDialog;
  SCROLLBAR_Handle hScroll;
  //
  // Enable use of memory devices
  //
  WM_SetCreateFlags(WM_CF_MEMDEV);
  GUI_Init();
  //
  // Check if recommended memory for the sample is available
  //
  if (GUI_ALLOC_GetNumFreeBytes() < RECOMMENDED_MEMORY) {
   GUI_ErrorOut("Not enough memory available.");
   return;
  }

  //
  // Create the frame window
  //
  hFrameWin = FRAMEWIN_Create("1234", NULL, WM_CF_SHOW, 0, 0, 320, 240);
  //hWindow = WM_CreateWindow(0, 0, 320, 240, WM_CF_SHOW, _cbWindow, 0);
  FRAMEWIN_SetFont(hFrameWin, &GUI_FontArial16);
  //FRAMEWIN_SetActive(hFrameWin, 1);
  //
  // Create the MULTIPAGE widget
  //
  hMultiPage = MULTIPAGE_CreateEx(0, 0, 290, 200, WM_GetClientWindow(hFrameWin), WM_CF_SHOW, 0, 0);//WM_GetClientWindow(hFrameWin)
  MULTIPAGE_SetFont(hMultiPage,&GUI_FontArial16);

  //
  // Create and attach the MULTIPAGE dialog windows
  //
  hDialog = GUI_CreateDialogBox(_aDialogCreate1, GUI_COUNTOF(_aDialogCreate1), _cbWindow,WM_UNATTACHED, 0, 0);
  MULTIPAGE_AddPage(hMultiPage, hDialog, "123");
  GUI_Delay(500);
  hScroll = SCROLLBAR_CreateAttached(hMultiPage, SCROLLBAR_CF_VERTICAL);
  SCROLLBAR_SetNumItems(hScroll, EDIT_ITEM_SIZEX * EDIT_MAX_X);
  SCROLLBAR_SetPageSize(hScroll, 290);

  hDialog = GUI_CreateDialogBox(_aDialogCreate2, GUI_COUNTOF(_aDialogCreate2), NULL,WM_UNATTACHED, 0, 0);
  MULTIPAGE_AddPage(hMultiPage, hDialog, "123");
  GUI_Delay(500);

}

void MainTask(void) {
  _DemoScrollbarMove();
   //GUI_SendKeyMsg(GUI_KEY_PGUP,1);
   while(1){
   GUI_Delay(200);
   }
  }


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STemWin на STM32F4. Первый опыт. Вопросы.
СообщениеДобавлено: 30 мар 2017, 18:23 
Старожил
Аватара пользователя

Зарегистрирован: 23 янв 2013, 12:33
Сообщения: 1791
Откуда: Донецк, ДНР
rukh писал(а):
Спасибо. Архив у меня есть. STemWinLibrary520d - myDrv, не так ли?

да, он.

rukh писал(а):
Касательно вопроса подключения библиотек и моих ошибок, указанных в прикрепленной к посту картинке, можете что-то подсказать? LCD_conf.c самому создавать, получается?

По ошибкам что-то странное - GUI_Init и все остальные - стандартные функции из либы STemWin-а. Если оно их не нашло, то эта либа у Вас не подключена.
А вот LCD_conf.c - да, надо писать самому. Это прослойка между STemWin и драйвером Вашего дисплея. Там описан ряд функций типа инициализация диспа, всякие там заливки/отрисовки. Вы должны сами реализовать всё это для Вашего дисплея. В моём примере я просто вызывал соответствующие функции своего драйвера для SSD1963.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STemWin на STM32F4. Первый опыт. Вопросы.
СообщениеДобавлено: 30 мар 2017, 18:34 
Старожил
Аватара пользователя

Зарегистрирован: 23 янв 2013, 12:33
Сообщения: 1791
Откуда: Донецк, ДНР
vAnArhist, Вы совершенно неверно проинитили этот MULTIPAGE контрол. у каждой вкладки должна быть своя оконная функция, в неё и будут приходить сообщения от всех контролов этой вкладки.
Т.е. если Ваше окно содержит один такой контрол с 2-мя вкладками, Вы должны реализовать 3 оконные функции - для самого окна и для каждой из 2-х вкладок. Т.к. каждая вкладка почти самостоятельное диалоговое окно со всеми вытекающими.
У Вас, например, hDialog = GUI_CreateDialogBox(_aDialogCreate2, GUI_COUNTOF(_aDialogCreate2), NULL,WM_UNATTACHED, 0, 0); -- оконная функция вообще не задана, т.е. все контролы этой вкладки будут 100% декоративные. Вы не сможете полноценно получать от них события.

https://www.segger.com/emwin-widgets.html - здесь есть пример, посмотрите пожалуйста.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STemWin на STM32F4. Первый опыт. Вопросы.
СообщениеДобавлено: 30 мар 2017, 19:20 
Только пришел

Зарегистрирован: 30 мар 2017, 15:13
Сообщения: 12
Цитата:
По ошибкам что-то странное - GUI_Init и все остальные - стандартные функции из либы STemWin-а. Если оно их не нашло, то эта либа у Вас не подключена.
А вот LCD_conf.c - да, надо писать самому. Это прослойка между STemWin и драйвером Вашего дисплея. Там описан ряд функций типа инициализация диспа, всякие там заливки/отрисовки. Вы должны сами реализовать всё это для Вашего дисплея. В моём примере я просто вызывал соответствующие функции своего драйвера для SSD1963.


А каков полный список библиотечных файлов, которые необходимо подключить к проекту?
Я взял все *.c файлы из папки Config библиотеки STemWin, указал все пути, включая пути к inc и Lib. Единственное, что меня смущало - это LCDConf_FlexColor_Template.c и LCDConf_Lin_Template.c. Ни один из них мне не подходит, получается, что их можно удалить, предварительно включив в проект LCD_Conf.c?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STemWin на STM32F4. Первый опыт. Вопросы.
СообщениеДобавлено: 30 мар 2017, 19:59 
Только пришел

Зарегистрирован: 20 мар 2017, 18:05
Сообщения: 9
hd44780 писал(а):
vAnArhist, Вы совершенно неверно проинитили этот MULTIPAGE контрол. у каждой вкладки должна быть своя оконная функция, в неё и будут приходить сообщения от всех контролов этой вкладки.
Т.е. если Ваше окно содержит один такой контрол с 2-мя вкладками, Вы должны реализовать 3 оконные функции - для самого окна и для каждой из 2-х вкладок. Т.к. каждая вкладка почти самостоятельное диалоговое окно со всеми вытекающими.
У Вас, например, hDialog = GUI_CreateDialogBox(_aDialogCreate2, GUI_COUNTOF(_aDialogCreate2), NULL,WM_UNATTACHED, 0, 0); -- оконная функция вообще не задана, т.е. все контролы этой вкладки будут 100% декоративные. Вы не сможете полноценно получать от них события.

https://www.segger.com/emwin-widgets.html - здесь есть пример, посмотрите пожалуйста.


Спасибо за ответ, но вопрос был о том, как правильно реализовать прокрутку в multipage вкладке.
Примеры смотрел, функция hScroll = SCROLLBAR_CreateAttached(hMultiPage, SCROLLBAR_CF_VERTICAL); -не работает


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STemWin на STM32F4. Первый опыт. Вопросы.
СообщениеДобавлено: 30 мар 2017, 20:09 
Старожил
Аватара пользователя

Зарегистрирован: 23 янв 2013, 12:33
Сообщения: 1791
Откуда: Донецк, ДНР
rukh писал(а):
А каков полный список библиотечных файлов, которые необходимо подключить к проекту?
Я взял все *.c файлы из папки Config библиотеки STemWin, указал все пути, включая пути к inc и Lib. Единственное, что меня смущало - это LCDConf_FlexColor_Template.c и LCDConf_Lin_Template.c. Ни один из них мне не подходит, получается, что их можно удалить, предварительно включив в проект LCD_Conf.c?


Да, все эти xxxx_Template.c удалите, они Вам не нужны и добавьте туда Ваш собственный LCD_Conf.c (можете взять мой и переделать его под себя).
Не забудьте также GUIConf.c (там задаётся рабочий буфер STemWin-а) и GUI_X.c.
Либу может надо подключать индивидуально, в настройках линкера, а не каталогом. Это от среды/компилятора зависит. Здесь не подскажу, с кейлом не работаю. Сорри.

vAnArhist, я немного не понял - что Вы хотите прокручивать? Судя по коду - сам Multipage. Не знаю. возможно ли вообще такое ...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STemWin на STM32F4. Первый опыт. Вопросы.
СообщениеДобавлено: 30 мар 2017, 20:29 
Только пришел

Зарегистрирован: 20 мар 2017, 18:05
Сообщения: 9
hd44780 писал(а):
vAnArhist, я немного не понял - что Вы хотите прокручивать? Судя по коду - сам Multipage. Не знаю. возможно ли вообще такое ...

Да, я хочу прокручивать содержимое каждой из вкладок.
К примеру- есть много виджетов edit которые идут вниз по оси у.
Возможно ли это сделать? (С прокруткой на едитах-разобрался, здесь-нет)
Изображение


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STemWin на STM32F4. Первый опыт. Вопросы.
СообщениеДобавлено: 31 мар 2017, 01:48 
Только пришел
Аватара пользователя

Зарегистрирован: 16 янв 2017, 01:09
Сообщения: 13
vAnArhist писал(а):
Да, я хочу прокручивать содержимое каждой из вкладок.
К примеру- есть много виджетов edit которые идут вниз по оси у.
Возможно ли это сделать? (С прокруткой на едитах-разобрался, здесь-нет)

Возможно, Вам поможет функция Virtual screens, описанная на 982 странице руководства к StemWin. Инициализируется виртуальная область экрана функцией LCD_SetVSizeEx(), создаётся скроллбар на всю виртуальную область, а в нём меняется переменная у в функции GUI_SetOrg(x, y)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STemWin на STM32F4. Первый опыт. Вопросы.
СообщениеДобавлено: 31 мар 2017, 01:51 
Только пришел

Зарегистрирован: 20 мар 2017, 18:05
Сообщения: 9
adrvyho писал(а):
vAnArhist писал(а):
Да, я хочу прокручивать содержимое каждой из вкладок.
К примеру- есть много виджетов edit которые идут вниз по оси у.
Возможно ли это сделать? (С прокруткой на едитах-разобрался, здесь-нет)

Возможно, Вам поможет функция Virtual screens, описанная на 982 странице руководства к StemWin. Инициализируется виртуальная область экрана функцией LCD_SetVSizeEx(), создаётся скроллбар на всю виртуальную область, а в нём меняется переменная у в функции GUI_SetOrg(x, y)


Спасибо, завтра попробую и отпишусь о результатах.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STemWin на STM32F4. Первый опыт. Вопросы.
СообщениеДобавлено: 02 апр 2017, 18:56 
Только пришел

Зарегистрирован: 20 мар 2017, 18:05
Сообщения: 9
adrvyho писал(а):
vAnArhist писал(а):
Да, я хочу прокручивать содержимое каждой из вкладок.
К примеру- есть много виджетов edit которые идут вниз по оси у.
Возможно ли это сделать? (С прокруткой на едитах-разобрался, здесь-нет)

Возможно, Вам поможет функция Virtual screens, описанная на 982 странице руководства к StemWin. Инициализируется виртуальная область экрана функцией LCD_SetVSizeEx(), создаётся скроллбар на всю виртуальную область, а в нём меняется переменная у в функции GUI_SetOrg(x, y)


UPD. Ничего не получилось, ругается на ф-ю GUI_SetOrg(x, y). Гонял в симуляторе от Segger. Буду искать другие варианты, возможно виджет Listbox с диалоговыми окнами.

Код:
#include "GUI.h"
#include "FRAMEWIN.h"
#include "DROPDOWN.h"
#include "LISTBOX.h"
#include <stddef.h>

#define RECOMMENDED_MEMORY 10*1024

void _DemoDropDown(void){
GUI_SetColor(GUI_RED);
GUI_FillRect(0, 0, 320, 239);
GUI_SetColor(GUI_GREEN);
GUI_FillRect(0, 239, 319, 319);
GUI_SetColor(GUI_BLUE);
GUI_FillRect(0, 320, 319, 560);
GUI_SetColor(GUI_WHITE);
GUI_SetTextMode(GUI_TM_TRANS);
GUI_DispStringAt("Screen 0", 0, 0);
GUI_DispStringAt("Screen 1", 0, 239);
GUI_DispStringAt("Screen 2", 0, 320);
GUI_SetOrg(0, 239); /* Set origin to screen 1 */
//SCROLLBAR_CreateAttached(WM_HWIN hParent, int SpecialFlags);
//GUI_SetOrg(0, 128); /* Set origin to screen 2 */
}
void MainTask(void) {
  GUI_Init();
  //
  // Check if recommended memory for the sample is available
  //
  if (GUI_ALLOC_GetNumFreeBytes() < RECOMMENDED_MEMORY) {
    GUI_ErrorOut("Not enough memory available.");
    return;
  }
LCD_SetSizeEx (0, 320, 240);
LCD_SetVSizeEx(0, 320, 560);
_DemoDropDown();
GUI_SetOrg(0, 239);
  GUI_Exec();
  while(1) {
    GUI_Delay(100);
    //_DemoDropDownAsChild();
  }
}


Вложения:
1.png
1.png [ 102.27 Кб | Просмотров: 4394 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STemWin на STM32F4. Первый опыт. Вопросы.
СообщениеДобавлено: 02 апр 2017, 19:08 
Старожил
Аватара пользователя

Зарегистрирован: 23 янв 2013, 12:33
Сообщения: 1791
Откуда: Донецк, ДНР
Симулятором не пользовался, поиском нашёл прототип этой функции в GUI.h и в самой либе libSTemWin532_CM4_OS_GCC.a
Попробуйте вне симулятора, в реальном устройстве.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STemWin на STM32F4. Первый опыт. Вопросы.
СообщениеДобавлено: 02 апр 2017, 19:39 
Только пришел

Зарегистрирован: 20 мар 2017, 18:05
Сообщения: 9
hd44780 писал(а):
Симулятором не пользовался, поиском нашёл прототип этой функции в GUI.h и в самой либе libSTemWin532_CM4_OS_GCC.a
Попробуйте вне симулятора, в реальном устройстве.


Ноль реакции, функция GUI_SetOrg не срабатывает.. Написал в техподдержку Segger о прокрутке внутри вкладки-молчание 3-й день.
Спасибо всем за идеи.
По поводу multipage-виджет хорош, но для пользования при свыше 6 вкладок нужно увеличить стэк, да и без прокрутки содержимого вкладки для меня бесполезен.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STemWin на STM32F4. Первый опыт. Вопросы.
СообщениеДобавлено: 03 апр 2017, 01:08 
Заглядывает иногда

Зарегистрирован: 20 июн 2012, 12:56
Сообщения: 61
в Page встраивается вспомогательное окно со скролом. А в него встраивается окно нужного размера для прокрутки


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STemWin на STM32F4. Первый опыт. Вопросы.
СообщениеДобавлено: 03 апр 2017, 14:13 
Только пришел
Аватара пользователя

Зарегистрирован: 16 янв 2017, 01:09
Сообщения: 13
vAnArhist писал(а):
UPD. Ничего не получилось, ругается на ф-ю GUI_SetOrg(x, y). Гонял в симуляторе от Segger. Буду искать другие варианты, возможно виджет Listbox с диалоговыми окнами.


А в дефайнах LDC_VYSIZE и LCD_YSIZE у Вас что прописано?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STemWin на STM32F4. Первый опыт. Вопросы.
СообщениеДобавлено: 03 апр 2017, 20:01 
Только пришел

Зарегистрирован: 30 мар 2017, 15:13
Сообщения: 12
Цитата:
Да, все эти xxxx_Template.c удалите, они Вам не нужны и добавьте туда Ваш собственный LCD_Conf.c (можете взять мой и переделать его под себя).
Не забудьте также GUIConf.c (там задаётся рабочий буфер STemWin-а) и GUI_X.c.
Либу может надо подключать индивидуально, в настройках линкера, а не каталогом. Это от среды/компилятора зависит. Здесь не подскажу, с кейлом не работаю. Сорри.


Спасибо. Разобрался с драйвером и подключил библиотеку. Дисплей загорелся красивой надписью "Hello world!" :) Только вот стандартные функции очень медленно отрисовывают дисплей. Как-то можно ускорить этот процесс?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STemWin на STM32F4. Первый опыт. Вопросы.
СообщениеДобавлено: 07 апр 2017, 08:35 
Только пришел

Зарегистрирован: 10 авг 2016, 13:09
Сообщения: 15
Доброго времени суток, уважаемые форумчане. Прошу помочь решить проблему. Есть платка с камнем stm32F407+ дисплей ili9481 480x320. Стандартный набор демо STemWin на основе CMSIS+Keil4 проходят на ура. Те же тесты на основе HAL+Keil4 проходят частично. Не работают виджеты FrameWindows. Подозреваю, что проблема с настройкой тактирования. В CMSIS для увеличения OS_TimeMS используется отдельный таймер TIM3. В HAL волшебная константа OS_TimeMS увеличивается прерыванием по SYSTick. Проект настраивается CubeMX стандартно внешний кварц на 8 мгц. Тактовая частота 168 мгц. Помогите разобраться в этой проблеме.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 1259 ]  На страницу Пред.  1 ... 37, 38, 39, 40, 41, 42, 43 ... 51  След.


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB