Skip to main content
aadam.1
Visitor II
January 19, 2023
Question

DMA2D HAL_DMA2D_Start -> pdata(color) formar

  • January 19, 2023
  • 1 reply
  • 1226 views

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?

This topic has been closed for replies.

1 reply

KDJEM.1
ST Technical Moderator
January 20, 2023

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 "Best answer" on the reply which solved your issue or answered your question.