cancel
Showing results for 
Search instead for 
Did you mean: 

TouchGFX TextArea with WILDCARD is used for dynamic display of Text at the rate of 300ms on STM32F469I-Discovery board and the TextArea Flickers while updating Text at 300ms rate.

SK S.1
Associate III

Hi,

I'm using TextArea with Wildcard for displaying Text Dynamically at the rate of 300​ms on STM32F469I-Discovery board and the TextArea Flickers while updating Text at 300ms rate.

I have reduced the LCD clock to 10Mhz and checked as suggested by someone in the blog but  no improvement is seen.

Please Refer code snippet:

UARTMsgReady() is called from CMSIS V2 FreeRTOS Task at the rate of 300ms to update the Text on the TextArea. I'm trying displaying string with 18 characters and the TextArea buffer size is set to 21.

void Screen1View::UARTMsgReady()

{

     if(uartMsgNuf[0] == 0)

     {

           return;

     }

     Unicode::strncpy(textArea1Buffer,(char*)uartMsgBuf,TEXTAREA1_SIZE -1);

    textArea1.invalidate();

}

Can anyone guide me on how to solve this flickering problem in TextArea while updating Text at the rate of 300ms? Does STM32F469I-Discovery board support updating Text at the rate of 300ms? Am I doing anything wrong here? Please let me know.

With Regards

Sunil K S

4 REPLIES 4
Alexandre RENOUX
Principal

Hello,

How big is your Text Area on your 800*480px screen ?

The F469 is not that powerful compared to a F7 or a H7 so you can quickly run into limitations depending on what you are doing.

Note that the bigger the area to be refreshed is, the heavier on the MCU it will be. Plus, text rendering involves some alpha to smooth the outline of the letters so it will be even heavier on the MCU.

Just to know, what kind of flickering do you see ?

/Alexandre

MM..1
Chief II

HI

have you enabled double buffering plus animation buffer (third buffering)? in boardconfig file line for enable all is

hal.setFrameBufferStartAddress((uint16_t*)frameBuf0, bitdepth ,true , true);

where true and true is enabling double and animate bufs.

Without double buffering is updates on display always flicker.

​Thanks for the Reply.

I had solved the problem. Problem was I had used same buffer "uartMsgBuf[]" for storing the data coming from USART and for displaying it on the LCD screen.

During display update the buffer "uartMsgBuf[]" used to receive serial data as DataReceiveTask() has the higher priority  than the DisplayTask().

With Regards

Sunil K S

​Thanks for the Reply.

I had solved the problem. Problem was I had used same buffer "uartMsgBuf[]" for storing the data coming from USART and for displaying it on the LCD screen.

During display update the buffer "uartMsgBuf[]" used to receive serial data as DataReceiveTask() has the higher priority than the DisplayTask().

With Regards

Sunil K S