2023-01-19 01:13 AM
Hello
I got LCD 240x320 connected via SPI to my STM32f429. LCD interface is RGB565.
I have created buffer
uint8_t buffer[240*320*2];
so, 1st im filling buffer with red color:
for (int i=0;i<240*320*2;i+=2){
buffer[i]=0xf8;
buffer[i+1]=0x00;
}
Then via spi its send to LCD, and I can see red color on display. All is working fine.
I wanted to use DMA2D now.
I have configured it as R2M, with 565 color output:
hdma2d.Instance = DMA2D;
hdma2d.Init.Mode = DMA2D_R2M;
hdma2d.Init.ColorMode = DMA2D_OUTPUT_RGB565;
hdma2d.Init.OutputOffset =0;
and I tried:
HAL_DMA2D_Start(&hdma2d, 0xf800, 0x200000c0, 240, 320);
//0x200000c0 is my buffer adress
//0xf800 -> @param pdata Configure the source memory Buffer address if
// * Memory-to-Memory or Memory-to-Memory with pixel format
// * conversion mode is selected, or configure
// * the color value if Register-to-Memory mode is selected.
But after that i got Pink color on display, insted of red
In what format/type I should send pdata argument to get RED color on display?
2023-01-20 06:30 AM
Hi @aadam.1 and welcome to the Community :),
Please check the LTDC parameters configuration and precisely the layer settings.
I recommend the LCD-TFT display controller (LTDC) on STM32 MCUs application note may help you in your implementation.
I hope this helps!
Kaouthar
To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.