找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 35475|回復(fù): 48
打印 上一主題 下一主題
收起左側(cè)

stm32驅(qū)動(dòng)ili9486液晶顯示屏

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
      這是我接手的第一個(gè)小項(xiàng)目,也是第一次我寫(xiě)的代碼真正排上用場(chǎng),雖然不超過(guò)50行。但遇到的阻礙,我想確實(shí)硬件廠商善意的刁難。這個(gè)項(xiàng)目最大的收獲是弄清楚我與軟件工程師最大的不同吧!給我職業(yè)生涯上的第一個(gè)教訓(xùn)。下面言歸正傳(驅(qū)動(dòng)見(jiàn)51hei論壇附件TFT資料)。    (一)ili9486顯示屏簡(jiǎn)介
           ili9486支持262144種色彩,有320RGB*480個(gè)像素點(diǎn),內(nèi)部GRAM345600Bytres(320*480*18bit),有全彩(262K_colors,65K_colors)和idle(8_colors)兩種顯示模式,支持8種總線,用IM2,IM1,IM0決定,見(jiàn)下圖        

                  
支持16bit-RGB(5,6,5)和18bit-RGB(6,6,6)兩種色彩格式,也用單一純色格式(in idle mode)。

    (二)常用命令
          顯示屏的需求,最多的還是在怎樣滿足我們的顯示要求,比如橫屏,豎屏,顏色格式,刷屏速度等等。這里只稍微講一下在此次項(xiàng)目中用到的命令,慢慢補(bǔ)充。
          1)與坐標(biāo)原點(diǎn)相關(guān)的命令:
               1.Display Function Control(B6h)
                  命令主要參數(shù):GS,SM,SS
               2.Memory Access Control (36h)
                  命令主要參數(shù):MX,MY,MV,BGR(色彩模式RGB or GBR),MH,ML

         2)設(shè)置指針位置
              1.Set Page Address (2Bh)
                 設(shè)置指針X起點(diǎn), 默認(rèn)情況為0~13F(B5= 0),受36h的第五位(B5)影響0~1DF(B5 = 1)

              2.Set Column Address (2Ah)
                  設(shè)置指針Y起點(diǎn), 默認(rèn)情況為0~1DF(B5= 0),受36h的第五位(B5)影響0~13F(B5 = 1)

         3)設(shè)置像素格式
              1. Interface Pixel Format(3Ah)
                 設(shè)置是16bit或則18bit的像素。DPI設(shè)置接口像素格式,DBI設(shè)置CPU像素格式

         4)連續(xù)寫(xiě)
              1.Memory Write Continue (3Ch)
                  要在使用Memory Write (2Ch)后使用此命令,最多能連續(xù)讀取65535個(gè)字節(jié)。     

      (三)與uCUI接口相關(guān)函數(shù)

              接口函數(shù)在GUI/LCDDriver文件夾下LCD_Dummy.c以及Config目錄下LCDConfig.h。

              1. LCD_Dummy.c主要是接口相應(yīng)顯示屏

                  1--void LCD_L0_SetPixelIndex(int x, int y, int PixelIndex) 設(shè)置像素點(diǎn),要使用自己的函數(shù)實(shí)現(xiàn)設(shè)置像素點(diǎn)功能。下面一個(gè)簡(jiǎn)單的例子:
                 void LCD_L0_SetPixelIndex(int x, int y, int PixelIndex)
                {
                   LCD_Setpixel(xPhys, yPhys,PixelIndex);//底層TFT相關(guān)的函數(shù)(可以轉(zhuǎn)換XY的值,達(dá)到想要的效果)
                }   

                  2--void LCD_L0_DrawVLine  (int x,  int y0,  int y1)//畫(huà)橫線
                  3--void LCD_L0_DrawHLine  (int x0, int y,  int x1)//畫(huà)豎線
                  注:這兩個(gè)函數(shù),可以不用替換,uCGUI默認(rèn)情況下給一個(gè)坐標(biāo),畫(huà)一個(gè)像素點(diǎn)(速度慢,但準(zhǔn)確,無(wú)差錯(cuò))。如果你覺(jué)得你使用自己的函數(shù)更加快速,可進(jìn)行替換(ili9486有自動(dòng)移動(dòng)指針的功能,可以只送一個(gè)起始點(diǎn),然后送數(shù)據(jù),指針會(huì)自動(dòng)加也會(huì)自動(dòng)換行(列),而不用送坐標(biāo)地址)

                  4--LCD_L0_DrawBitmap(...)//畫(huà)位圖
                  5--DrawBitLine16BPP(...)//畫(huà)位圖主要功能函數(shù)
                  注:這兩個(gè)函數(shù)底層功能函數(shù)與2,3兩個(gè)函數(shù)類(lèi)似,但色彩不同。自行替換時(shí)要注意相關(guān)參數(shù)。

              2.LCDConfig.h需修改如下項(xiàng)

              #define LCD_XSIZE                 (480)   /* X-resolution of LCD, Logical coor. */
              #define LCD_YSIZE                  (350)   /* Y- resolution of LCD, Logical coor. */
              #define LCD_BITSPERPIXEL      (16)     //像素點(diǎn)位數(shù)
              #define LCD_CONTROLLER       -1        // -1表示不在GUI_Init()里面初始化顯示屏
              #define LCD_SWAP_RB             1        // 1--BGR 0--RGB
              #define LCD_MIRROR_X           (1)      //0 If active: X ->-X /1--翻轉(zhuǎn)X軸起點(diǎn)
              #define LCD_MIRROR_Y           (0)      //0 If active: Y -> -Y /1--翻轉(zhuǎn)Y軸起點(diǎn)
              #define LCD_SWAP_XY             1        //0  If active: X <->Y/1--調(diào)換XY的值

      (四)FAQ
                1.顯示顏色不對(duì),而圖像輪廓正確
                              1)這個(gè)問(wèn)題最常見(jiàn)的是RB調(diào)換,TFT顯示屏常見(jiàn)的像素格式為BGR(5,6,5),而一般的windows的格式為RGB(5,6,5),這個(gè)問(wèn)題只要轉(zhuǎn)換Memory Access Control(36h)命令BGR參數(shù)即可。
                               2)第二個(gè)可能原因是由于高低字節(jié)的問(wèn)題,這款ili9486的顯示屏為低字節(jié)在前,高字節(jié)在后,可以在送數(shù)據(jù)到顯示屏之前將數(shù)據(jù)轉(zhuǎn)換一下。
                               3)如果以上步驟沒(méi)有將顏色的問(wèn)題解決,考慮顯示屏質(zhì)量問(wèn)題或者屏幕焊接問(wèn)題(換塊顯示屏試試)。

                 2.背景圖顯示不正確,沒(méi)有完整的圖像
                               1)這個(gè)問(wèn)題主要是取圖像大小時(shí)出錯(cuò),如果要鋪滿整個(gè)屏幕的話,圖像一定要與顯示屏規(guī)格相同,例如:ili9486是320*480,所以你的圖像大小也要為320*480或者橫屏480*320,不能多也不能少,否則不會(huì)正確顯示圖像。

                 3.圖像無(wú)法整屏顯示,或者是整屏顯示需要更多的像素點(diǎn)
                               1)這個(gè)問(wèn)題很有可能是總線模式選擇錯(cuò)誤,ili9486支持多種縱向模式8、9、16、18以及3/4SPI等等,總線模式取決于IM[2:0]的選擇,詳細(xì)內(nèi)容請(qǐng)參考相關(guān)數(shù)據(jù)手冊(cè)。
                               2)還有一個(gè)可能是數(shù)據(jù)在傳輸?shù)倪^(guò)程中丟失了(因?yàn)閭鬏斔俣冗^(guò)快/頻率太高),可以每傳送一次數(shù)據(jù),延時(shí)一段時(shí)間,觀察有沒(méi)有出現(xiàn)漏點(diǎn)的情況(對(duì)比色要鮮明),或者調(diào)整頻率,讓送數(shù)據(jù)的速度變慢些(不太建議這樣做,因?yàn)轭l率low,可能導(dǎo)致其他問(wèn)題出現(xiàn),頻率high也是)。

                 4.屏幕總是白屏,而無(wú)法顯示其他內(nèi)容
                                1)這問(wèn)題最有可能是因?yàn)槠聊坏娘@示模式不正確,極有可能處在idle模式下,加入命令0x0011(退出idle模式,進(jìn)入normal模式)可解決。

                 5. 顏色抖動(dòng)現(xiàn)象
                                1)這個(gè)問(wèn)題最有可能的是電路上的問(wèn)題,可以嘗試重新焊接一下。

       (五)測(cè)試
                 1.顏色測(cè)試:讓顯示屏顯示出三原色的三種純色,三種顏色正確,基本不會(huì)出現(xiàn)顏色問(wèn)題,若出現(xiàn)顏色問(wèn)題,考慮硬件上的問(wèn)題。

                 2.刷屏測(cè)試:用320*480個(gè)像素點(diǎn)刷屏,如果能鋪滿整屏,總線模式正確。反之模式不正確。


注意:
3.5_TFT彩色LCD模塊 驅(qū)動(dòng)芯片型號(hào)為SSD2119

3.2_TFT彩色LCD模塊 驅(qū)動(dòng)芯片型號(hào)為ILI9320

2.8_TFT彩色LCD模塊 驅(qū)動(dòng)芯片型號(hào)為ST7781、ILI9325、ILI9328、或ILI9331。具體是哪種控制芯片可以在UCGUI程序里初始化LCD程序的讀ID函數(shù)里下個(gè)斷點(diǎn)即可看到器件ID號(hào)。

驅(qū)動(dòng)程序全兼容這些控制芯片,要想詳細(xì)了解控制芯片請(qǐng)查看目錄下的對(duì)應(yīng)芯片數(shù)據(jù)手冊(cè),ILI9328的數(shù)據(jù)手冊(cè)請(qǐng)參考ILI9325的。兩個(gè)是一樣的,只是讀到的ID不一樣,驅(qū)動(dòng)程序也是相同的。

SSD2119    讀到的ID為        0x9919
ILI9320    讀到的ID為        0x9320
ILI9325    讀到的ID為        0x9325
ILI9328    讀到的ID為        0x9328
ILI9331    讀到的ID為        0x9331
ST7781     讀到的ID為        0x7783
LGDP4531   讀到的ID為        0x4531
用戶可以自己提取對(duì)應(yīng)驅(qū)動(dòng)芯片的初始化文件用到自己的工程中。

TFT相關(guān)資料,包含多種液晶屏幕驅(qū)動(dòng)及說(shuō)明文檔 --TFT.zip (13.43 MB, 下載次數(shù): 620)




評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的積分獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏7 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:91599 發(fā)表于 2015-10-4 14:27 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

板凳
ID:95954 發(fā)表于 2015-11-16 11:09 | 只看該作者
好東西啊,謝謝分享
回復(fù)

使用道具 舉報(bào)

地板
ID:95954 發(fā)表于 2015-11-16 11:12 | 只看該作者
好東西,謝謝分享
回復(fù)

使用道具 舉報(bào)

5#
ID:117333 發(fā)表于 2016-4-28 16:43 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

6#
ID:124364 發(fā)表于 2016-5-31 23:55 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

7#
ID:136208 發(fā)表于 2016-8-7 14:06 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

8#
ID:137870 發(fā)表于 2016-8-29 22:14 | 只看該作者
謝謝樓主分享
回復(fù)

使用道具 舉報(bào)

9#
ID:138608 發(fā)表于 2016-9-29 10:40 | 只看該作者
好東西,來(lái)者不拒。謝了!
回復(fù)

使用道具 舉報(bào)

10#
ID:139564 發(fā)表于 2016-10-5 10:05 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

11#
ID:156481 發(fā)表于 2016-12-21 10:40 | 只看該作者
好東西,要的分太多了。下不了。
回復(fù)

使用道具 舉報(bào)

12#
ID:163227 發(fā)表于 2017-2-1 15:09 | 只看該作者
感謝分享。。!
回復(fù)

使用道具 舉報(bào)

13#
ID:168090 發(fā)表于 2017-3-4 13:05 | 只看該作者
謝謝分享!
回復(fù)

使用道具 舉報(bào)

14#
ID:173086 發(fā)表于 2017-3-19 17:26 | 只看該作者
謝謝樓主~~
回復(fù)

使用道具 舉報(bào)

15#
ID:62289 發(fā)表于 2017-3-21 06:36 | 只看該作者

 謝謝分享
回復(fù)

使用道具 舉報(bào)

16#
ID:116046 發(fā)表于 2017-3-23 10:39 | 只看該作者
謝謝分享,剛好準(zhǔn)備移植一下
回復(fù)

使用道具 舉報(bào)

17#
ID:168320 發(fā)表于 2017-4-30 21:48 | 只看該作者

謝謝分享
回復(fù)

使用道具 舉報(bào)

18#
ID:199411 發(fā)表于 2017-5-11 09:46 | 只看該作者
沒(méi)幣下不了
回復(fù)

使用道具 舉報(bào)

19#
ID:199411 發(fā)表于 2017-6-1 11:35 | 只看該作者
謝謝分亨
回復(fù)

使用道具 舉報(bào)

20#
ID:63312 發(fā)表于 2017-6-12 09:13 | 只看該作者
好資料,下下來(lái)學(xué)習(xí)參考
回復(fù)

使用道具 舉報(bào)

21#
ID:159060 發(fā)表于 2017-6-13 10:49 | 只看該作者
謝謝,好資料
回復(fù)

使用道具 舉報(bào)

22#
ID:73795 發(fā)表于 2017-6-13 15:04 | 只看該作者
謝謝樓主分享
回復(fù)

使用道具 舉報(bào)

23#
ID:27047 發(fā)表于 2017-8-7 20:09 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

24#
ID:27047 發(fā)表于 2017-8-8 10:01 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

25#
ID:225669 發(fā)表于 2017-8-8 10:28 | 只看該作者
那位大師收徒弟啊,想學(xué)arm
回復(fù)

使用道具 舉報(bào)

26#
ID:226427 發(fā)表于 2017-8-10 09:34 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

27#
ID:226427 發(fā)表于 2017-8-10 09:36 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

28#
ID:228316 發(fā)表于 2017-8-18 19:31 | 只看該作者
好東西啊,謝謝分享
回復(fù)

使用道具 舉報(bào)

29#
ID:235543 發(fā)表于 2017-9-25 17:24 | 只看該作者
有沒(méi)有ILI9486的通信模塊啊,求分享
回復(fù)

使用道具 舉報(bào)

30#
ID:238016 發(fā)表于 2017-10-9 15:29 | 只看該作者
好東西,但下載不了,咋辦呀?
回復(fù)

使用道具 舉報(bào)

31#
ID:160960 發(fā)表于 2017-10-27 17:26 | 只看該作者
不錯(cuò)的東東,正須要,目前在用ILI9488 .
回復(fù)

使用道具 舉報(bào)

32#
ID:59202 發(fā)表于 2017-11-2 16:26 | 只看該作者
謝謝分享,樓主做的不錯(cuò)
回復(fù)

使用道具 舉報(bào)

33#
ID:247847 發(fā)表于 2017-11-9 19:50 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

34#
ID:286649 發(fā)表于 2018-3-1 16:06 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

35#
ID:286649 發(fā)表于 2018-3-1 16:06 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

36#
ID:357237 發(fā)表于 2018-6-23 14:55 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

37#
ID:357237 發(fā)表于 2018-6-23 14:56 | 只看該作者
目前在用ILI9488 .但下載不了呀
回復(fù)

使用道具 舉報(bào)

38#
ID:363007 發(fā)表于 2018-7-2 11:37 | 只看該作者
這兩天再搞這個(gè)3.5寸屏,感謝分享
回復(fù)

使用道具 舉報(bào)

39#
ID:366312 發(fā)表于 2018-7-6 14:52 | 只看該作者
你好,我想買(mǎi)一款I(lǐng)LI9488 LCD的顯示驅(qū)動(dòng)板,你手上的板可以改成驅(qū)動(dòng)ILI9488的板嗎,請(qǐng)聯(lián)系我 謝謝 18802616496 劉
回復(fù)

使用道具 舉報(bào)

40#
ID:373544 發(fā)表于 2018-7-17 18:27 | 只看該作者
非常有用,謝謝
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表