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

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

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

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

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

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


 
Опции темы

stm32f746g-disco и emWin

Непрочитано 22.04.2016, 14:14  
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  
Impartial
Прописка
 
Регистрация: 09.02.2011
Сообщений: 164
Сказал спасибо: 1
Сказали Спасибо 27 раз(а) в 22 сообщении(ях)
Impartial на пути к лучшему
По умолчанию Re: stm32f746g-disco и emWin

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

проверил ваш код на f4+ssd2119 нормально отрисовывает , копайте в сторону драйвера.
wr49 вне форума  
Непрочитано 31.05.2016, 20:17  
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:30.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.