emWin移植时遇到的红蓝反色问题解决

本文分享了在正点原子探索者开发板上移植emWin遇到的颜色反转问题及解决方案,通过调整颜色格式和调色板设置,最终解决了红蓝反色的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于公司项目需求,尝试学习emWin,但遇到了红蓝反色的问题。

开发平台是正点原子探索者配2.4寸电阻屏(早期买的,没钱换。。),正点原子的视频没有下载,直接根据《STM32F4 EMWIN开发手册——V3.1》这个文档去学习,另外没有学ucOS,所以尝试移植到我熟悉的FreeRTOS上。

前期移植遇到红蓝反色问题,当时没有注意,只是发现关闭GUI_USE_ARGB这个宏就没问题。而等到到了用PC仿真时发现这个宏关闭颜色又反了,于是仿真时有要打开这个宏。

后来学到2D绘图时发现仍然有红蓝发色的问题。不过也没想太多,等到做到显示位图那一块才发现整个图片都是反色的,而且用BmpCvt.exe怎么改(保存成.c文件时会有选择红蓝反色的那一项)都不能正常显示。

这时我决定从头查到底是哪里出了问题,最后发现原来LCD的底层是接收BRG颜色格式,而且读取颜色时代码里有做颜色反转的处理,但在写入颜色时却没有,因此自己加了RGB转BRG的格式,终于显示正常。

不过不管怎么调,在PC仿真时显示图片一直是反色的。如果仿真的颜色是正常的话,那说明我在移植时在_DrawBitLine16BPP函数中添加反色函数就是多余的,可能原本的图片就是反色的。不过管他呢,知道怎么回事,以后要改回来也容易。

PC仿真时图片反色问题最后只能靠改图片的.C文件解决,在图片的.C文件最下面对文件格式的定义里,最后一项是GUI_DRAW_BMP565,改成GUI_DRAW_BMPM565就搞定了。

继续学习时发现还有个调色板的好东西。。以前移植时没注意:

GUI_DEVICE_CreateAndLink()这个函数可以设置调色板,当时选择的是GUICC_M565,改为GUICC_565后,颜色就又反过来了。所以我删除了以前加的RGB转BRG的函数,直接用调色板改颜色就搞定了。

PC仿真端将宏COLOR_CONVERSION的定义修改为GUICC_565后一切显示正常,世界真美好!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值