硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2118|回复: 11
收起左侧

关于CLUT的使用

[复制链接]

1

主题

7

回帖

10

积分

新手上路

积分
10
发表于 2018-10-18 09:37:43 | 显示全部楼层 |阅读模式
使用CLUT,设置为L8模式。使用CLUTWR将表格输入。
查看显存,确实变为8bit模式。直接操作显存改为CLUT内的索引值,可看到液晶上显示的颜色确实是CLUT内的对应色。问题是,如果直接使用GUI_SetColor(0xFFFFFF),注:0xFFFFFF在CLUT内,再使用GUI_DispString("abc"),显示颜色是不对的。另:使用GUI_DrawBitMap(),显示位图,形状是对的,但颜色完全乱的,请问:为什么直接使用emWin的函数,会出现不能正确找到颜色的情况呢,是哪里还没有设置对吗?有什么解决办法?哪个大神有可用的例程吗?谢谢。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
发表于 2018-10-18 11:05:15 | 显示全部楼层
发个你的测试代码和显示效果,我在我们的板子上面走一个。
回复

使用道具 举报

1

主题

7

回帖

10

积分

新手上路

积分
10
 楼主| 发表于 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内的索引值,能正常显示原图。
烦请帮忙看下,我是不是少设置了什么地方?谢谢。
图2.jpg
图3.jpg
MainFaceBk.bmp

MainFaceBk.c

471.5 KB, 下载次数: 13

回复

使用道具 举报

1

主题

7

回帖

10

积分

新手上路

积分
10
 楼主| 发表于 2018-10-19 15:21:22 | 显示全部楼层
eric2013 发表于 2018-10-18 11:05
发个你的测试代码和显示效果,我在我们的板子上面走一个。

已回复,请您过目。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
发表于 2018-10-20 01:49:01 | 显示全部楼层
显示个彩带看看,这个比较能说明问题

回复

使用道具 举报

1

主题

7

回帖

10

积分

新手上路

积分
10
 楼主| 发表于 2018-10-21 08:54:54 | 显示全部楼层
eric2013 发表于 2018-10-20 01:49
显示个彩带看看,这个比较能说明问题

谢谢。
我使用了这个色带图片,使用了图2的的程序,可以正常的把图片原样显示。
问题是当我用的颜色不是这条色带内的颜色,而是其他颜色时,就不可以用吗?只能用这色带内规定的颜色吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
发表于 2018-10-22 01:22:24 | 显示全部楼层
jinl_gy 发表于 2018-10-21 08:54
谢谢。
我使用了这个色带图片,使用了图2的的程序,可以正常的把图片原样显示。
问题是当我用的颜色不 ...

你的程序配置为8位色,能够正常跑emWin官方的综合Demo不。
回复

使用道具 举报

1

主题

7

回帖

10

积分

新手上路

积分
10
 楼主| 发表于 2018-10-22 14:09:22 | 显示全部楼层
eric2013 发表于 2018-10-22 01:22
你的程序配置为8位色,能够正常跑emWin官方的综合Demo不。

哪一个DEMO,能给外链接或附件不?我都好久没用emWin的Demob .
回复

使用道具 举报

36

主题

2040

回帖

2148

积分

至尊会员

积分
2148
发表于 2018-10-22 15:39:08 | 显示全部楼层
jinl_gy 发表于 2018-10-22 14:09
哪一个DEMO,能给外链接或附件不?我都好久没用emWin的Demob .

在MDK安装目录的emWin软件包里面有
Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better.
回复

使用道具 举报

1

主题

7

回帖

10

积分

新手上路

积分
10
 楼主| 发表于 2018-10-25 13:58:20 | 显示全部楼层
byccc 发表于 2018-10-22 15:39
在MDK安装目录的emWin软件包里面有

谢谢。已经大致知道是怎么回事了。
回复

使用道具 举报

1

主题

7

回帖

10

积分

新手上路

积分
10
 楼主| 发表于 2018-10-25 16:55:07 | 显示全部楼层
eric2013 发表于 2018-10-22 01:22
你的程序配置为8位色,能够正常跑emWin官方的综合Demo不。

谢谢,已经大致知道怎么回事儿。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
发表于 2018-10-26 02:17:35 | 显示全部楼层
jinl_gy 发表于 2018-10-25 16:55
谢谢,已经大致知道怎么回事儿。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-18 06:26 , Processed in 0.195665 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表