Thursday, May 24th 2018, 8:24am 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.

Date of registration: Oct 31st 2016

Posts: 7


Friday, May 19th 2017, 8:01pm

Double Buffering STM324x9I-EVAL Demo/Examples


I am having flickering problems and wonder if you can help. I know the classic answer is "use multi-buffering" but your examples do not seem to us this yet have no flicker. A typical demo by you would be:


On my own project I get flicker. I am using the same STM324x9i_eval_MB1046 display driver and also running on an STM324x9I-EVAL PCBA. My project uses the same GUI_X_Config setup and I have not made changes for the pre-processor controls for the display driver (ie same #defines for number of layers, number of buffers). OS is RTX (and emWIN is made aware of this). LCD is connected via LTDC (as said, I am using the MB1046 driver without any changes as my project is running on the -EVAL board).

I create my windows using WM_CreateWindowAsChild() and do all my painting within a WM_PAINT. A typical _paint() would GUI_DrawBitmap() a full-size background and then GUI_DrawStringAt() onto this bitmap.

You don't get flicker in your samples on the -EVAL board yet you do not use WM_MULTIBUF_Enable(1) nor any obvious multi-buffering support. You are using the same driver (LCD_X_Config etc) and the hardware is the same. Your demos are my go-to reference but I cannot see what I may be setting different (except that I use RTX vs no-RTOS for the examples).

Q: Does anything spring to mind (a setting/setup) that needs to be made to use the 1046 driver on the EVAL? I cannot find anything. Or is it simply that your demos do not need multi-buffering as there is no OS/no halts during processing.