Wednesday, April 25th 2018, 6:43am UTC+2

You are not logged in.

  • Login
  • Register

Dear visitor, welcome to SEGGER Forum. If this is your first visit here, please read the Help. It explains how this page works. You must be registered before you can use all the page's features. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

NOS

Beginner

Date of registration: Mar 7th 2018

Posts: 2

1

Thursday, March 8th 2018, 6:05pm

Virtual Screen API on STM32469I-DISCO

Hello all,

I'am trying to use the virtual screen API on that board.
Extended LCDConf.c to use 2 virtual screens (but only 1 Buffer, 1 Layer). But there is no result on GUI_SetOrg(0, 480). The first screen keeps displayed!?

Harry

SEGGER - Schoenen

Super Moderator

Date of registration: Aug 13th 2015

Posts: 562

2

Friday, March 9th 2018, 2:07pm

Hi,

I'm not sure why it is not working.

Does the virtual screen gets initialized properly?

in LCD_X_Config() you should have a call like this:

C/C++ Source code

1
LCD_SetVSizeEx(0, XSIZE_0, YSIZE_0 * NUM_VSCREENS);


Further your framebuffer should be large enough, but I don't think that this is the cause of this issue.

Regards
Sven

NOS

Beginner

Date of registration: Mar 7th 2018

Posts: 2

3

Monday, March 12th 2018, 9:08pm

Hello again :-)

Looks like I'm the first one with this problem...

OK. I'm talking about this example:
STM32Cube_FW_F4_V1.19.0\Projects\STM32469I-Discovery\Applications\STemWin\STemWin_HelloWorld

...using the AC6-Toolchain (no changes...). LCD_X_Config is being called with the expected values!


- Changes in LCDConf_stm32469i_discovery.c:
------------------------------------------------------

#define NUM_BUFFERS 1 /* Number of multiple buffers to be used */
#define NUM_VSCREENS 2 /* Number of virtual screens to be used */


- Changes in BASIC_HelloWorld.c:
---------------------------------------
#define DISP_X 800
#define DISP_Y 480

volatile int hx;

void MainTask(void) {
GUI_Clear();
GUI_SetFont(&GUI_Font20_1);
GUI_DispStringAt("Virtual screen 1.4", DISP_X - 140, DISP_Y - 40);
GUI_DispStringAt("Virtual screen 2.3", 20, DISP_Y + 20);
GUI_SetOrg(0, DISP_Y);
while(1) {
hx++;
}
}

Compiles, links, debugs without problem, but: The first screen keeps displayed!?

Greetings Harry