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

由于公司项目需求,尝试学习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后一切显示正常,世界真美好!

你可能感兴趣的:(emWin学习笔记,emWin,STM32,红蓝反色)