RTT 4.0.3
LVGL 8.3
RTT Ltdc驱动 RGB888模式
使用DMA2D,显示的图颜色不正常,数字显示是虚的,渐变色成了色块,请问这一般是什么情况
lvgl使用 RGB565和ARGB888 都是一样的效果
dma2d配置:
hdma2d.Init.Mode = DMA2D_M2M_PFC;
hdma2d.Init.ColorMode = DMA2D_OUTPUT_RGB888;
hdma2d.Init.OutputOffset = (LV_HOR_RES - w);
hdma2d.LayerCfg[1].AlphaMode = DMA2D_NO_MODIF_ALPHA;
hdma2d.LayerCfg[1].InputAlpha = 0;
hdma2d.LayerCfg[1].InputColorMode = DMA2D_OUTPUT_RGB565;
hdma2d.LayerCfg[1].InputOffset =0;
hdma2d.LayerCfg[1].RedBlueSwap = DMA2D_RB_REGULAR;
hdma2d.LayerCfg[1].AlphaInverted = DMA2D_REGULAR_ALPHA;
使用下面的手动刷屏正常
for(y = area->y1; y <= area->y2; y++) {
row = y * LCD_WIDTH;
for(x = area->x1; x <= area->x2; x++) {
pos = row + x;
lcd->lcd_info.framebuffer[3 * pos] = color_p->ch.blue; //B
lcd->lcd_info.framebuffer[3 * pos + 1] = color_p->ch.green; //G
lcd->lcd_info.framebuffer[3 * pos + 2] = color_p->ch.red; //R
color_p++;
}
}
![微信图片_20220303184503.png](https://oss-club.rt-thread.org/uploads/20220303/d172bb7d52b65a9e6271ec1857599530.png.webp)