標(biāo)題: st7735s顏色排列倒著怎么解決 [打印本頁(yè)]

作者: 3253087609ydrq    時(shí)間: 2024-10-4 01:10
標(biāo)題: st7735s顏色排列倒著怎么解決
程序里的顏色和圖片數(shù)據(jù)是按照紅綠藍(lán)的順序組成數(shù)組,但是到了屏幕上就變成了藍(lán)綠紅排列,怎么解決
圖片數(shù)組存儲(chǔ)格式
顯示圖片函數(shù)
費(fèi)了一個(gè)多小時(shí)才算明白的16位RGB轉(zhuǎn)BGR但是思路錯(cuò)了,沒(méi)用
如果能給出代碼那自然是最好的

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

作者: rayin    時(shí)間: 2024-10-4 01:10
改一下顯示屏的初始化代碼,0x36指令,有一個(gè)bit可以設(shè)置顯示顏色是紅綠藍(lán)或藍(lán)綠紅。顯示數(shù)據(jù)不用做變換處理,做變換處理的方式會(huì)降低刷屏速度。
作者: johnhk97    時(shí)間: 2024-10-4 08:52
發(fā)一個(gè)7735顯示的圖,一個(gè)正常的圖看看
作者: 3253087609ydrq    時(shí)間: 2024-10-4 09:37
johnhk97 發(fā)表于 2024-10-4 08:52
發(fā)一個(gè)7735顯示的圖,一個(gè)正常的圖看看

問(wèn)題已解決
作者: 3253087609ydrq    時(shí)間: 2024-10-4 09:38
johnhk97 發(fā)表于 2024-10-4 08:52
發(fā)一個(gè)7735顯示的圖,一個(gè)正常的圖看看

已解決

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

IMG20241004093723.jpg

作者: 人中狼    時(shí)間: 2024-10-4 09:57
RGB轉(zhuǎn)BGR應(yīng)該做移位運(yùn)算就可以了吧

作者: 3253087609ydrq    時(shí)間: 2024-10-4 10:18
人中狼 發(fā)表于 2024-10-4 09:57
RGB轉(zhuǎn)BGR應(yīng)該做移位運(yùn)算就可以了吧

這個(gè)方法我想過(guò),但是它把一個(gè)完整的RGB565數(shù)據(jù)拆成兩個(gè)字節(jié)去存儲(chǔ),中間的綠色的數(shù)據(jù)被拆成了兩半,想要做移位運(yùn)算就只能把兩個(gè)字節(jié)拼起來(lái)重新組成一個(gè)完整的RGB565數(shù)據(jù),移位后再輸出,但是屏幕整體上刷新速度也會(huì)有非常明顯的變慢。
作者: 3253087609ydrq    時(shí)間: 2024-10-4 10:22
原程序來(lái)自http://www.torrancerestoration.com/bbs/dpj-184179-1.html
顏色排列倒序問(wèn)題已解決,改了一下寫數(shù)據(jù)函數(shù)。
如果大家有更好的解決方法也可以發(fā)出來(lái),懸賞依舊會(huì)懸賞除我以外方法最好的那個(gè)人

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

IMG20241004100609.jpg

作者: 兩儀式    時(shí)間: 2024-10-4 20:20
樓上說(shuō)的對(duì),用0x36寄存器,紅藍(lán)交換,通常都是用0x36寄存器的,你單純畫點(diǎn)沒(méi)什么,你要是用DMA快速刷別的,你就知道了
作者: 單片機(jī)研究協(xié)會(huì)    時(shí)間: 2024-10-5 23:29
把數(shù)組的類型改成unsigned int,arm芯片是小端模式,51是大端模式,把數(shù)組類型由原來(lái)的uint8_t 改成uint16_t就解決了
作者: 單片機(jī)研究協(xié)會(huì)    時(shí)間: 2024-10-5 23:33
第1個(gè)字節(jié)是低8位,第2個(gè)字節(jié)是高8位,這明顯是小端模式的存儲(chǔ)方式,用在arm芯片上是沒(méi)有問(wèn)題的,你現(xiàn)在用的是8051芯片,8051芯片的數(shù)據(jù)存儲(chǔ)方式是大端模式,你要把數(shù)組的類型改一下,由原來(lái)的unsigned char改成unsigned int,數(shù)組里面的數(shù)據(jù)由8位改成16位,例如第1個(gè)數(shù)和第2個(gè)數(shù)據(jù),由原來(lái)的0xDF,0xE7改成0xE7DF,這樣一顏色就恢復(fù)正常了,這樣改還有一個(gè)好處,就是一套源碼可以用在8051這種大端模式的芯片上,也可以用在arm這種小端模式的芯片上。




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1