2016-05-04 02:06 AM
Hello everybody,
I am trying to understand how the LTDC and DMA2D are working together. I have a small custom made STM32F7 board with a 24-Bit RGB TFT panel connected to the LTDC. With CubeMX I activated this interface and also the DMA2D. Now after my initialization I don't know how to set a pixel or draw a line or something else... I want to use the �GUI library and for that one I have to create a function which only set one pixel. Can anyone help me, bit confusing all the DMA and LCD interface. Thanks! #dma2d #ltdc #stm32f7 #dma2016-05-05 01:38 AM
Hi debegr,
I recommend you to have a look to the example under package, it may be helpful for you: STM32Cube_FW_F7_V1.3.0\Projects\STM32756G_EVAL\Examples\DMA2D\DMA2D_MemToMemWithLCDThis example describes how to configure DMA2D peripheral and display the result on LCD. So, it can be a starting point to learn about programming DMA2D with LCD.Regards2016-05-05 03:44 PM
Hi,
okay thank you. I found the examples you wrote. But I only get a light-gray screen. I do not have any oscilloscope here until end of this week, to check if the display is receiving data. The STM32 get a little bit higher temperature if I enabled the DMA2D and copying data to LCD. I also want to know if I can use the ARGB4444 mode if my display is connected to 24 Bits on the LTDC interface. I do not have enough memory to store two buffers with the size of 480x272x4 Bytes. So I only can store like bit more of half this size. I currently only testing with one buffer. The DMA2D is copying the data at every cange? Or in a fixed time?2016-05-07 08:11 AM
Hi again,
my demo is now working with my display and I know how to implement the µGUI library, but... The demo shows a const array in the flash, which will be painted to layer1 on the screen. The array is stored as an RGB565 color map. This color map has to be 32 bit wide for example 0x12341234. My question is, if it is possible to store the data only in a 16 bit wide buffer array. I do not have enough RAM to store every pixel double. Can anyone answer me this question? My idea is to create a uint16_t lcd_buffer[480*272]; and set hltdc.FBStartAddress = (uint32_t)&lcd_buffer; Thanks, Dennis