我們採用LCD模塊為顯尚光電的DST2001PH TFTLCD,它的控制器為ILI9320,它採用26萬色的TFT屏,解析度為320×240,採用16位的80並口與外部連接。
該模塊的80並口有如下一些信號線:
CS/PC9:TFTLCD片選信號。 片選拉低時,表示選中。
RS/PC8:命令/數據標誌(0,讀寫命令;1,讀寫數據)。
WR/PC7:向 TFTLCD寫入數據。在WR的上升沿,使數據寫入到LCD晶片裡;
RD/PC6:從 TFTLCD讀取數據。 在RD的上升沿,使數據鎖存到數據線上;
D[15:0]:16位雙向數據線。
RST:硬復位TFTLCD。
RST信號線,是直接接到 STM32的復位腳上,並不由軟體控制,這樣可以省下來一個IO埠。
另外,還需要一個背光控制線來制TFTLCD的背光。所以,總共需要的IO口數目為21個。
控制器自帶顯存,其顯存總大小為172820(240*320*18/8),即18位模式(26萬色)下的顯存量。
模塊的16位數據線與顯寸的對應關係為565方式,如下圖所示:
最低5位代表藍色,中間6位為綠色,最高5位為紅色。數值越大,表示該顏色越深。
接下來,介紹一下ILI9320的幾個重要命令,因為ILI9320的命令很多,不可能一一介紹。
有興趣的大家可以找到ILI9320的Datasheet看看,裡面對這些命令有詳細的介紹。
這裡我們要介紹的命令列表如下:
R0,這個命令,有兩個功能,如果對它寫,則最低位為 OSC,用於開啟或關閉振蕩器。而如果對它讀操作,則返回的是控制器的型號。
R3,入口模式命令。我們重點關注的是 I/D0、I/D1、AM 這 3 個位,因為這 3 個位控制了屏幕的顯示方向。
AM:控制 GRAM 更新方向。當 AM=0 的時候,地址以行方向更新。當 AM=1 的時候,地址以列方向更新。
I/D[1:0]:當更新了一個數據之後,根據這兩個位的設置來控制行地址和列地址計數器自減或自增。
R7,顯示控制命令。該命令 CL 位用來控制是 8 位彩色,還是 26 萬色。為 0 時 26 萬色,為 1 時八位色。D1、D0、BASEE 這三個位用來控制顯示開關與否的。當全部設置為 1 的時候開啟顯示,全 0 是關閉。我們一般通過該命令的設置來開啟或關閉顯示器,以降低功耗。
R32,R33,設置 GRAM 的行地址和列地址。R32 用於設置列地址(X 坐標,0~239),R33 用於設置行地址(Y坐標,0~319)。當我們要在某個指定點寫入一個顏色的時候,先通過這兩個命令設置到改點,然後寫入顏色值就可以了。
R34,寫數據到 GRAM 命令,當寫入了這個命令之後,地址計數器才會自動的增加和減少。該命令是我們要介紹的這一組命令裡面唯一的單個操作的命令,只需要寫入該值就可以了,其他的都是要先寫入命令編號,然後寫入操作數。
R80~R83,行列 GRAM 地址位置設置。這幾個命令用於設定你顯示區域的大小,我們整個屏的大小為 240*320,但是有時候我們只需要在其中的一部分區域寫入數據,如果用先寫坐標,後寫數據這樣的方式來實現,則速度大打折扣。此時我們就可以通過這幾個命令,在其中開闢一個區域,然後不停的丟數據,地址計數器就會根據 R3 的設置自動增加/減少,這樣就不需要頻繁的寫地址了,大大提高了刷新的速度。
TFTLCD顯示需要的相關設置步驟如下:
1)設置STM32與TFTLCD模塊相連接的IO埠。
這一步,先將我們與TFTLCD模塊相連的IO埠設置為輸出,具體使用哪些IO埠,需要根據連接電路以及TFTLCD模塊的設置來確定。
2)初始化TFTLCD模塊。
通過向 TFTLCD寫入一系列的設置,來啟動TFTLCD的顯示。為後續顯示字符和數字做準備。
3)通過函數將字符和數字顯示到TFTLCD模塊上。
這裡就是通過我們設計的程序,將要顯示的字符送到TFTLCD模塊就可以了。
打開APP閱讀更多精彩內容聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴