找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 1679|回復: 10
打印 上一主題 下一主題
收起左側(cè)

st7735s顏色排列倒著怎么解決

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:871721 發(fā)表于 2024-10-4 01:10 來自觸屏版 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
100黑幣
程序里的顏色和圖片數(shù)據(jù)是按照紅綠藍的順序組成數(shù)組,但是到了屏幕上就變成了藍綠紅排列,怎么解決
圖片數(shù)組存儲格式
顯示圖片函數(shù)
費了一個多小時才算明白的16位RGB轉(zhuǎn)BGR但是思路錯了,沒用
如果能給出代碼那自然是最好的

IMG20241004005721.jpg (1.82 MB, 下載次數(shù): 6)

IMG20241004005721.jpg

IMG20241004005915.jpg (2.06 MB, 下載次數(shù): 4)

IMG20241004005915.jpg

IMG20241004005805.jpg (1.01 MB, 下載次數(shù): 4)

IMG20241004005805.jpg

最佳答案

查看完整內(nèi)容

改一下顯示屏的初始化代碼,0x36指令,有一個bit可以設(shè)置顯示顏色是紅綠藍或藍綠紅。顯示數(shù)據(jù)不用做變換處理,做變換處理的方式會降低刷屏速度。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:517951 發(fā)表于 2024-10-4 01:10 | 只看該作者
改一下顯示屏的初始化代碼,0x36指令,有一個bit可以設(shè)置顯示顏色是紅綠藍或藍綠紅。顯示數(shù)據(jù)不用做變換處理,做變換處理的方式會降低刷屏速度。

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

板凳
ID:891003 發(fā)表于 2024-10-4 08:52 | 只看該作者
發(fā)一個7735顯示的圖,一個正常的圖看看
回復

使用道具 舉報

地板
ID:871721 發(fā)表于 2024-10-4 09:37 來自觸屏版 | 只看該作者
johnhk97 發(fā)表于 2024-10-4 08:52
發(fā)一個7735顯示的圖,一個正常的圖看看

問題已解決
回復

使用道具 舉報

5#
ID:871721 發(fā)表于 2024-10-4 09:38 來自觸屏版 | 只看該作者
johnhk97 發(fā)表于 2024-10-4 08:52
發(fā)一個7735顯示的圖,一個正常的圖看看

已解決

IMG20241004093723.jpg (758.76 KB, 下載次數(shù): 3)

IMG20241004093723.jpg
回復

使用道具 舉報

6#
ID:384109 發(fā)表于 2024-10-4 09:57 | 只看該作者
RGB轉(zhuǎn)BGR應(yīng)該做移位運算就可以了吧
回復

使用道具 舉報

7#
ID:871721 發(fā)表于 2024-10-4 10:18 來自觸屏版 | 只看該作者
人中狼 發(fā)表于 2024-10-4 09:57
RGB轉(zhuǎn)BGR應(yīng)該做移位運算就可以了吧

這個方法我想過,但是它把一個完整的RGB565數(shù)據(jù)拆成兩個字節(jié)去存儲,中間的綠色的數(shù)據(jù)被拆成了兩半,想要做移位運算就只能把兩個字節(jié)拼起來重新組成一個完整的RGB565數(shù)據(jù),移位后再輸出,但是屏幕整體上刷新速度也會有非常明顯的變慢。
回復

使用道具 舉報

8#
ID:871721 發(fā)表于 2024-10-4 10:22 來自觸屏版 | 只看該作者
原程序來自http://www.torrancerestoration.com/bbs/dpj-184179-1.html
顏色排列倒序問題已解決,改了一下寫數(shù)據(jù)函數(shù)。
如果大家有更好的解決方法也可以發(fā)出來,懸賞依舊會懸賞除我以外方法最好的那個人

IMG20241004100609.jpg (1.44 MB, 下載次數(shù): 6)

IMG20241004100609.jpg
回復

使用道具 舉報

9#
ID:440403 發(fā)表于 2024-10-4 20:20 | 只看該作者
樓上說的對,用0x36寄存器,紅藍交換,通常都是用0x36寄存器的,你單純畫點沒什么,你要是用DMA快速刷別的,你就知道了
回復

使用道具 舉報

10#
ID:828160 發(fā)表于 2024-10-5 23:29 | 只看該作者
把數(shù)組的類型改成unsigned int,arm芯片是小端模式,51是大端模式,把數(shù)組類型由原來的uint8_t 改成uint16_t就解決了
回復

使用道具 舉報

11#
ID:828160 發(fā)表于 2024-10-5 23:33 | 只看該作者
第1個字節(jié)是低8位,第2個字節(jié)是高8位,這明顯是小端模式的存儲方式,用在arm芯片上是沒有問題的,你現(xiàn)在用的是8051芯片,8051芯片的數(shù)據(jù)存儲方式是大端模式,你要把數(shù)組的類型改一下,由原來的unsigned char改成unsigned int,數(shù)組里面的數(shù)據(jù)由8位改成16位,例如第1個數(shù)和第2個數(shù)據(jù),由原來的0xDF,0xE7改成0xE7DF,這樣一顏色就恢復正常了,這樣改還有一個好處,就是一套源碼可以用在8051這種大端模式的芯片上,也可以用在arm這種小端模式的芯片上。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表