TouchGFX pixel shift in framebuffer
Hi,
I finished the board bring up introduction: Board Bring Up Introduction | TouchGFX Documentation without any troubles.
I can also write and read to the external flash through DMA2D by using the following function:
LL_FillBuffer(LTDC_LAYER_1, (uint32_t *)(hltdc.LayerCfg[LTDC_LAYER_1].FBStartAdress), 1024, 600, 0, (uint32_t) 0xFF008000);static void LL_FillBuffer(uint32_t LayerIndex, void *pDst, uint32_t xSize, uint32_t ySize, uint32_t OffLine, uint32_t ColorIndex)
{
/* Register to memory mode with RGB8888 as color Mode */
hdma2d.Init.Mode = DMA2D_R2M;
hdma2d.Init.ColorMode = DMA2D_OUTPUT_RGB888;
hdma2d.Init.OutputOffset = OffLine;
hdma2d.Instance = DMA2D;
/* DMA2D Initialization */
if(HAL_DMA2D_Init(&hdma2d) == HAL_OK)
{
if(HAL_DMA2D_ConfigLayer(&hdma2d, LayerIndex) == HAL_OK)
{
if (HAL_DMA2D_Start(&hdma2d, ColorIndex, (uint32_t)pDst, xSize, ySize) == HAL_OK)
{
/* Polling For DMA transfer */
HAL_DMA2D_PollForTransfer(&hdma2d, 10);
}
}
}
}The external RAM is then transferred though MIPI DSI and shown as expected:
However if I enable TouchGFX through Cube MX and it write to the framebuffer I do get some strange display issues on the screen:
I am working in RGB888 mode and a screen with 1024x600.
Does someone have any idea why the image is not written correctly in the framebuffer by TouchGFX. Or do I have some other timing or formatting issues?
Kind Regards
