|

楼主 |
发表于 2018-10-19 15:20:29
|
显示全部楼层
MainFaceBk是原图,MainFaceBk.c是转换以后的8bitC 文件,内含调色板。
图2和图3分别输入两个不出CLUT的情况下显示的效果。
更改的内容:LCDConf.c
#define COLOR_CONVERSION_0 GUICC_8666
#define DISPLAY_DRIVER_0 GUIDRV_LIN_OXY_8
图2:
for(s16 i = 0;i < 256;i ++)
{
clutbgr[i] = LCD_API_ColorConv_8666.pfIndex2Color(i);
u32 tmp1 = (clutbgr[i] >> 16) & 0xFF;
u32 tmp2 = (clutbgr[i] >> 8) & 0xFF;
u32 tmp3 = (clutbgr[i] >> 0) & 0xFF;
clutbgr[i] = (tmp3 << 16) | (tmp2 << 8) | tmp1;
}
HAL_LTDC_ConfigCLUT(&hltdc, (uint32_t *)(clutbgr), 256, 0);
图3:
for(s16 i = 0;i < 256;i ++)
{
u32 tmp1 = (_ColorsMainFaceBk[i] >> 16) & 0xFF;
u32 tmp2 = (_ColorsMainFaceBk[i] >> 8) & 0xFF;
u32 tmp3 = (_ColorsMainFaceBk[i] >> 0) & 0xFF;
clutbgr[i] = (tmp3 << 16) | (tmp2 << 8) | tmp1;
}
HAL_LTDC_ConfigCLUT(&hltdc, (uint32_t *)(clutbgr), 256, 0);
在图3的情况下,直接修改显示值,使用CLUT内的索引值,能正常显示原图。
烦请帮忙看下,我是不是少设置了什么地方?谢谢。 |
|