<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > Stm32的TFT LCD顯示器控制學(xué)習筆記

Stm32的TFT LCD顯示器控制學(xué)習筆記

作者: 時(shí)間:2016-12-01 來(lái)源:網(wǎng)絡(luò ) 收藏
學(xué)習stm32,TFT LCD顯示屏控制是很重要的一章,本人在初步學(xué)習STM32遇到了很多困難,所以把學(xué)習中積累的部分感覺(jué)重要的知識點(diǎn)羅列出來(lái)。目前常用的TFT液晶內部驅動(dòng)芯片是ILI9320,ILI9325系列,內部原理基本一致,我用的是ILI9320。用stm32驅動(dòng)液晶,實(shí)際上就是驅動(dòng)ILI9320芯片。點(diǎn)亮TFT LCD的具體步驟有:

(1)stm32與ILI9320芯片管腳的初始化。

本文引用地址:http://dyxdggzs.com/article/201612/324408.htm

void LCD_Init(void); /*初始化LCD,也就是初始化LCD控制器ILI9320芯片與stm32控制器的管腳連接配置*/其中包括CS:TFTLCD片選信號,WR:向TFTLCD寫(xiě)入信號,RD:從TFTLCD讀取信號,DB(15--0):16位雙向數據線(xiàn),RST:硬復位TFTLCD,RS:命令/數據標志(0 讀寫(xiě)命令;1 讀寫(xiě)數據),TFT模塊有個(gè)控制器,名為ILI9320,該控制器自帶顯存,其顯存總大小為172820,模塊數據線(xiàn)與顯存的對應關(guān)系位565方式


SGRAM (Synchronous Graphics Random-Access Memory),同步圖形隨機存儲器,是一種專(zhuān)為顯卡設計的顯存、一種圖形讀寫(xiě)能力較強的顯存,由SDRAM改良而成。SGRAM讀寫(xiě)數據時(shí)不是一一讀取,而是以“塊”(Block)為單位,從而減少了內存整體讀寫(xiě)的次數,提高了圖形控制器的效率。同SDRAM一樣,SGRAM也分普通SGRAM與DDR SGRAM兩種。

R0,這個(gè)命令有兩個(gè)功能,如果對它寫(xiě),則最低位位OSC,用于開(kāi)啟或關(guān)閉振蕩器,而如果對它讀,返回控制器型號。我們知道了控制器型號,可以針對不同型號的控制器,進(jìn)行不同對的初始化。

R3,入口模式命令。重點(diǎn)關(guān)注I/D0,I/D1,AM這三個(gè)位,因為這3個(gè)位控制了屏幕的顯示方向。AM:控制GRAM更新方向,當AM=0的時(shí)候,地址以行方向更新,當為1的時(shí)候,地址以列方向更新。I/D[1:0]:當更新了一個(gè)數據之后,根據這兩個(gè)位的設置來(lái)控制地址計數器自動(dòng)增加/減少1,其關(guān)系圖如下

R7,顯示控制命令。該命令CL位用來(lái)控制是8位彩色,還是26萬(wàn)色。為0是26萬(wàn)色,為1時(shí)八位色。D1,D0,BASEE這三個(gè)位用來(lái)控制顯示開(kāi)關(guān)與否的。

當全部置1的時(shí)候開(kāi)啟顯示,全0是關(guān)閉。我們一般通過(guò)該命令的設置來(lái)開(kāi)啟或關(guān)閉顯示器,以降低功耗。

R22,(讀/寫(xiě))數據(到/從)GRAM。

R32,R33,設置GRAM的行地址和列地址。R32用于設置列地址(X坐標,0~239),R33用于設置行地址(Y坐標,0~319)。當我們要在某個(gè)指定點(diǎn)寫(xiě)入一個(gè)顏色的時(shí)候,先通過(guò)這兩個(gè)命令設置到改點(diǎn),然后寫(xiě)入顏色值就可以了。

R34,寫(xiě)數據到GRAM命令,當寫(xiě)入了這個(gè)命令之后,地址計數器才會(huì )自動(dòng)的增加和減少。

R80~R83,行列GRAM地址位置設置。這幾個(gè)命令用于設定你顯示區域的大小,我們整個(gè)屏的大小240*320, 但是有時(shí)候我們只需要在其中一部分區域寫(xiě)入數據,如果用先寫(xiě)坐標,后寫(xiě)數據這樣的方式來(lái)實(shí)現,則速度大打折扣。

此時(shí)我們可以通過(guò)這幾個(gè)命令,在其中開(kāi)辟一個(gè)區域,然后不停地丟數據,地址計數器就會(huì )根據R3的設置自動(dòng)增加/減小,這樣就不需要頻繁的寫(xiě)地址了,大大提高了刷新的速度。

(2)具體TFTLCD模塊功能程序

顯示屏寬度參數定義


#define LCD_W 240
#define LCD_H 320
#define LCD_LED PCout()//LCD背光
#define LCD_CS PCout() //片選端口
#define LCD_RS PCout() //數據/命令
#define LCD_WR PCout() //寫(xiě)數據
#define LCD_RD PCout() //讀數據
A. 寫(xiě)寄存器
首先根據英文版的ILI9320 datasheet 描述的關(guān)于寫(xiě)寄存器控制管腳的主要配置。下圖所示:
圖:寫(xiě)寄存器波形圖

voidLCD_WriteReg(u16 LCD_Reg,u16 LCD_RegValue)
{
/* Write 16-bit Index, thenWrite Reg */
ClrCs //片選復位
ClrRs //選擇命令
ClrWr //寫(xiě)數據復位
LCD_Write(LCD_Reg); //寫(xiě)入操作指令代碼
SetWr //寫(xiě)數據置位
/* 寫(xiě)16位的數據到指定寄存器*/
SetRs
ClrWr
LCD_Write(LCD_RegValue); //寫(xiě)數據
SetWr
SetCs
}
B. 讀寄存器
圖:讀寄存器波形圖

u16 LCD_ReadReg(u8 LCD_Reg)
{
u16data;
ClrCs
ClrRs
ClrWr
LCD_Write(LCD_Reg);
SetWr

SetRs
ClrRd
SetRd
data= LCD_Read();
SetCs
return data;
}
C. 寫(xiě)GRAM
圖:寫(xiě)GRAM波形圖
/*讀GRAM準備過(guò)程*/
void LCD_WriteRAM_Prepare(void)
{
/*Write 16-bit Index, then Write Reg */
ClrCs
ClrRs
ClrWr
LCD_Write(0x22);
SetWr
SetCs
}
/*讀GRAM*/
void LCD_WriteRAM(u16 RGB_Code)
{
/*Write 16-bit Index, then Write Reg */
ClrCs
SetRs
ClrWr
LCD_Write(RGB_Code);
SetWr
SetCs
}
D. 讀GRAM
圖:讀GRAM波形圖
u16 LCD_ReadRAM(void)
{
u16dummy;
u16data;
LCD_WriteRAM_Prepare();
LCD_DB_AS_InPut(); //將DB端口設置為輸入模式
dummy= LCD_ReadSta();
dummy++;
data= LCD_ReadSta();
LCD_DB_AS_OutPut();
return data;
}

E.剩下的部分就是控制液晶畫(huà)點(diǎn)劃線(xiàn),顯示圖像的內容,跟51時(shí)代的控制液晶基本類(lèi)似。



關(guān)鍵詞: Stm32TFTLCD顯示器控

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>