Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


Закрытая тема
Опции темы
Непрочитано 22.04.2016, 14:14   #1
silabs
Частый гость
 
Регистрация: 08.10.2009
Сообщений: 21
Сказал спасибо: 6
Сказали Спасибо 7 раз(а) в 7 сообщении(ях)
silabs на пути к лучшему
По умолчанию stm32f746g-disco и emWin

Начинаю разбираться с stm32f746g-disco (32F746GDISCOVERY). Для нее есть примеры в STM32CubeF7 (STM32Cube_FW_F7_V1.3.0) в частности STM32Cube_FW_F7_V1.3.0\Projects\STM32746G-Discovery\Applications\STemWin\STemWin_HelloWorld.
Компилирую пример в Keil uVision5 (без оптимизации) - все нормально, HelloWorld выводит.

Создаю кнопку:
Код:
hButton = BUTTON_Create(0, 0, 100, 50, GUI_ID_OK, WM_CF_SHOW);
BUTTON_SetText(hButton, "Test");
GUI_Exec();
Все нормально:

(Img)

В GUIBuilder.exe делаю простейшее окно (окно + метка), вызываю функцию CreateWindow - ни чего не работает.
Искаженный фон окна и искаженной текст метки.
Причину найти не могу:

(Img)

Может кто сталкивался с таким?
Если у Вас есть плата stm32f746g-disco можете в нее прошить Hex файл, может проблема с платой.
Спасибо.

Исходный код:
Изменено только в BASIC_HelloWorld.c
Код:
#include "GUI.h"
#include "DIALOG.h"
WM_HWIN CreateWindow(void);

/**************************************************  *******************
*
*       Public code
*
**************************************************  ********************
*/
/**************************************************  *******************
*
*       MainTask
*/

void MainTask(void) 
{
  static BUTTON_Handle hButton;
  static WM_HWIN hWin;
	
	/* 
	// All ok
  hButton = BUTTON_Create(0, 0, 100, 50, GUI_ID_OK, WM_CF_SHOW);
  BUTTON_SetText(hButton, "Test");
	*/
	
	/**/
	// Don't work
  CreateWindow();
  /**/
	
	GUI_Exec();
	
  while (1);
}

/*************************** End of file ****************************/
Добавлено только WindowDLG.c
Код:
// USER START (Optionally insert additional includes)
// USER END

#include "DIALOG.h"

/**************************************************  *******************
*
*       Defines
*
**************************************************  ********************
*/
#define ID_WINDOW_0    (GUI_ID_USER + 0x00)
#define ID_TEXT_0    (GUI_ID_USER + 0x01)


// USER START (Optionally insert additional defines)
// USER END

/**************************************************  *******************
*
*       Static data
*
**************************************************  ********************
*/

// USER START (Optionally insert additional static data)
// USER END

/**************************************************  *******************
*
*       _aDialogCreate
*/
static const GUI_WIDGET_CREATE_INFO _aDialogCreate[] = {
  { WINDOW_CreateIndirect, "Window", ID_WINDOW_0, 0, 0, 480, 272, 0, 0x0, 0 },
  { TEXT_CreateIndirect, "Text", ID_TEXT_0, 100, 100, 80, 20, 0, 0x64, 0 },
  // USER START (Optionally insert additional widgets)
  // USER END
};

/**************************************************  *******************
*
*       Static code
*
**************************************************  ********************
*/

// USER START (Optionally insert additional static code)
// USER END

/**************************************************  *******************
*
*       _cbDialog
*/
static void _cbDialog(WM_MESSAGE * pMsg) {
  WM_HWIN hItem;
  // USER START (Optionally insert additional variables)
  // USER END

  switch (pMsg-›MsgId) {
  case WM_INIT_DIALOG:
    //
    // Initialization of 'Window'
    //
    hItem = pMsg-›hWin;
    WINDOW_SetBkColor(hItem, 0x00FF0000);
    //
    // Initialization of 'Text'
    //
    hItem = WM_GetDialogItem(pMsg-›hWin, ID_TEXT_0);
    TEXT_SetText(hItem, "Test");
    TEXT_SetTextColor(hItem, 0x00FFFFFF);
    TEXT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
    TEXT_SetFont(hItem, GUI_FONT_13_1);
    // USER START (Optionally insert additional code for further widget initialization)
    // USER END
    break;
  // USER START (Optionally insert additional message handling)
  // USER END
  default:
    WM_DefaultProc(pMsg);
    break;
  }
}

/**************************************************  *******************
*
*       Public code
*
**************************************************  ********************
*/
/**************************************************  *******************
*
*       CreateWindow
*/
WM_HWIN CreateWindow(void);
WM_HWIN CreateWindow(void) {
  WM_HWIN hWin;

  hWin = GUI_CreateDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), _cbDialog, WM_HBKWIN, 0, 0);
  return hWin;
}

// USER START (Optionally insert additional public code)
// USER END

/*************************** End of file ****************************/
Файлы из: Inc, Src и MDK-ARM.

Hex файл:
STM32746G_DISCOVERY_Button.hex - all ok
STM32746G_DISCOVERY_Window.hex - don't work
Реклама:

Последний раз редактировалось silabs; 22.04.2016 в 14:24.
silabs вне форума  
Непрочитано 01.05.2016, 01:45   #2
Impartial
Прописка
 
Регистрация: 09.02.2011
Сообщений: 164
Сказал спасибо: 1
Сказали Спасибо 27 раз(а) в 22 сообщении(ях)
Impartial на пути к лучшему
По умолчанию Re: stm32f746g-disco и emWin

Может что то не так делаем? Аналогичная ситуация и у меня.
Окно правильно не хочет создавать. Код другой но проблема та-же.
Impartial вне форума  
Непрочитано 13.05.2016, 10:20   #3
wr49
Прохожий
 
Регистрация: 03.12.2014
Сообщений: 5
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
wr49 на пути к лучшему
По умолчанию Re: stm32f746g-disco и emWin

проверил ваш код на f4+ssd2119 нормально отрисовывает , копайте в сторону драйвера.
wr49 вне форума  
Непрочитано 31.05.2016, 20:17   #4
Temskiy
Прохожий
 
Регистрация: 31.05.2016
Сообщений: 1
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Temskiy на пути к лучшему
По умолчанию Re: stm32f746g-disco и emWin

Приветствую.
Специально зарегался, чтоб поделится своим рецептом.
Так же начал с хэлоуворлд, всё красиво. Тут же накидал пробную форму с парой кнопок и получил размазанное изображение. В итоге после курения родных и забугорных форумов сделал следующее:

Правим GUIConf.h
Код:
#define GUI_NUMBYTES  (1024) *  300 //если гуй не слишком сложный можно и оставить 150
U32 aMemory[GUI_NUMBYTES / 4] @ "GUI_RAM"; // сообщаем линкеру разместить это в регионе памяти с названием GUI_RAM, об этом чуть ниже
В LCDConf.h если значения отличаются то ставит так:
Код:
#define LCD_LAYER0_FRAME_BUFFER  ((int)0xC0400000)
#define LCD_LAYER1_FRAME_BUFFER  ((int)0xC0600000)
Теперь конфигурируем память. Насчёт кейла не знаю где там и что, но суть такова: нужно указать линкеру размещать секцию "GUI_RAM" в регионе SDRAM_region (например) и указать для этого региона соответственно начало 0xC0000000 и конец 0xC07FFFFF. В IAR EW это выглядит вот так:
Код:
define symbol __ICFEDIT_region_SDRAM_start__  = 0xC0000000;
define symbol __ICFEDIT_region_SDRAM_end__    = 0xC07FFFFF;
define region SDRAM_region   = mem:[from __ICFEDIT_region_SDRAM_start__   to __ICFEDIT_region_SDRAM_end__];
place in SDRAM_region { section GUI_RAM };
И все эти директивы лежат в файле с расширением icf обычно в папке с проектом.
После таких корректив всё стало на свои места, всё отрисовывается чётко, без всякого "мусора".

Последний раз редактировалось Temskiy; 31.05.2016 в 20:39. Причина: Неправильно адреса указал
Temskiy вне форума  
Закрытая тема

Закладки


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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 03:31.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot