1. 程式人生 > >emWin移植時遇到的紅藍反色問題解決

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就搞定了。