AnsweredAssumed Answered

Problems with StemWin App via CubeMX on a STM32F469 Discovery Board

Question asked by peter armbruester on Mar 30, 2018

Hello everyone,

I’m develop an application  on a STM32F469 Discovery Board with StemWin Graphics on Keil MDK uVision 5.24.

The first tests worked well, but i get problems when i change to the CubeMX front end.

It's impossible to change widget content if GUI_Delays in the process are.

I will describe the develop steps at a very simple test program:

 

Step 1 on  CubeMX 4.25  

  • New Project
  • Choose Board: STM32F469 Discovery
  • All Default Settings: Yes
  • No Pin Clear
  • PINOUT
  •    Disable FreeRTOS (otherwise i get errors. STemWin should work as single task. ) 
  •    Graphics /Stemwin: enable
  • CONFIGURATION
  •    Graphics: Enable GUI Builder
  •    Execute GUI Builder, and make a Frame with 2 EditText Widgets
  • Generate Code: Keil MDK 5

 

Step 2 on Keil MDK uVision 5.24

  • Build
  • Run is OK – GUI is on the Display

 

Step 3 on Keil MDK uVision 5.24

  • Modify GUI Source “FramewinDLG”;  Source Code is below.
    Run
  • GUI is on the Display but no changes in the Widgets!
  • Leds blinking -> Loop is running !
  • ????

 

I would be very grateful if someone had a solution.

The CubeMX project file is attatched below.

 

Thanks!

 

 

“FramewinDLG” Source Code:

.

.

.

/*********************************************************************

*

*       CreateFramewin

*/

#include "main.h"

WM_HWIN CreateFramewin(void);

WM_HWIN CreateFramewin(void) {

  WM_HWIN hWin;

  WM_HWIN hItem;

 

 

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

               

                hItem = WM_GetDialogItem(hWin, ID_EDIT_1);

                GUI_Exec();        

                while(1)

                {

 

                               GUI_Delay(500);

                               EDIT_SetText(hItem, "ABCDEF");

                               GUI_Exec();        

                               HAL_GPIO_TogglePin(LED1_GPIO_Port, LED1_Pin);

                               GUI_Delay(500);

                               EDIT_SetText(hItem, "XXXXXX");

                               GUI_Exec();        

                               HAL_GPIO_TogglePin(LED2_GPIO_Port, LED2_Pin);                        

                }

               

  return hWin;

}

 

Supplement 3.4.2018:
The problem can be illustrated even more easily:

 

void GRAPHICS_MainTask(void) {

       GUI_Init();

       GUI_Clear();

    GUI_SetColor(GUI_WHITE);

    GUI_SetFont(&GUI_Font32_1);

    GUI_GotoXY(100,100);

    GUI_DispString("Hello world!");

       GUI_Exec();

       GUI_Delay(100);      

    GUI_GotoXY(100,200);

    GUI_DispString("BAD ERROR");  // Text is on the Display if Delay < 20, Delay = 30 show turncated text

       GUI_Exec();

 

Nothing can be output on the display if there is a delay longer than 50 ms after the GUI_Init ().

Attachments

Outcomes