2023-01-19 1: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 6: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.
We’re moving the ST Community to a new platform to give you a better and more reliable community experience.