cancel
Showing results for 
Search instead for 
Did you mean: 

24 bit color depth for STM32F746G-DISCO

CA_SUS
Associate II

Hello,

I failed in changing the Color depth for a simple custom application from RGB565 (16 bit) to RGB888 (24 bit). The image was flickering during an animation (e.g. screen changes or scrollWheel scrolling)

So I flashed an example from TouchGFX ("Animation Texture Mapper Example") with the Application template for the STM32F746G-DISCO (using Version 3.0.0), which has a default color depth of 24 bit and it worked flawlessly.

Then I tried the same example with the Application Template Version 3.0.4 (which I used for my custom application), with a default of 16 bits. I changed the framebuffer size and LTDC settings accordingly and expected the generated code of CubeMX and TouchGFX to work, but it also flickers with artifacts of the animated image drawn on the outside of the screen.

I just can't make it work by changing the parameters in the .ioc. What did I miss out on? Is it not possible with the lates Template versions (if yes, that sounds like a bug to me)?

4 REPLIES 4
Romain DIELEMAN
ST Employee

Hi,

It is possible with the latest ATs you just need to make sure you have properly set everything. Could you double check the pins and settings between the two application templates. There might also be more changes within User Code in the different files in the TouchGFX/target folder.

/Romain

CA_SUS
Associate II

Hi Romain,

thanks for your reply.

After long hours of searching everywhere but TouchGFXHal.cpp, I found the source of the flickering. In that file, the initialize() seems to ignore the framebuffer size settings configured in CUBE MX after re-generating code. After using the correct values as arguments for the function setFrameBufferStartAddresses(...); it works as expected.

I expected those files to be regenerated after changing those fundamental project settings...

Hi,

The files under TouchGFX/target are not overwritten at code generation as they are aimed to be used by users to overwrite the ones regenerated by STM32CubeMX in the TouchGFX/target/generated folder. Was a function or setup in TouchHGFXHAL already written overwriting what you configured ? I'll have a look at the AT and see what we should update if yes. But good to hear that you found the solution 👍.

/Romain

CA_SUS
Associate II

Sorry, I forgot something to mention. To much debugging and searching back and forth...

Above, I explained how I fixed it in my custom application, which was based on an empty UI template, but with the respective STM32F746G-DISCO application template. But using the UI Template, the same issue appears.

I didnt alter any of those target files manually after project initialisation.

It seems like this function was generated to enable simple MCU Load calculation.