Hi all i used LTDC hardware inside the STM32f429 discovery board to drive an external 24 bit RGB display in 16 bit mode . full GUI is designed in LVGL library , I was able to build it and flash it. I got the output on the display but with few issues .
1.the update speed of the GUI elements are way too slow , so I cant update it real time
2.I am not getting a precise output .some pixels are lost,
3.can I change the horizontal animation happening when changing the screen
4.How to use DMA2D to copy pixel data to framebuffer
5.I’ll put the output image so you can see the color issue , i am not getting pure white its like a red/pink tinted screen from my view
LVGL ver-8.3.11
the label is white and arc background color is grey, but this is what I am getting
okay that’s will fix that , what about the rest, since I am in LVGL 8 I need an efficient way to copy pixels to STM buffer with help of DMA , I think . main issue is this update speed , right now its way too slow , i need to fix that first.
right now this is my flush function
static void flush_cb(lv_disp_drv_t*disp, const lv_area_t area, lv_color_t px_map)
{
uint32_t w = (area->x2 - area->x1 + 1);
uint32_t h = (area->y2 - area->y1 + 1);
uint16_t *dst = framebuffer + area->y1 * disp->hor_res + area->x1;
uint16_t src = (uint16_t )px_map;
//HAL_DMA2D_Start(&hdma2d,(src),(dst),w,h);
for (uint32_t y = 0; y < h; y++) {
//HAL_DMA2D_Start();
memcpy(dst, src, w * sizeof(uint16_t));
dst += disp->hor_res;
src += w;
}
lv_disp_flush_ready(disp);
}