atk-1 3-tftlcd模塊使用說明基于阿波羅h743_W_第1頁
atk-1 3-tftlcd模塊使用說明基于阿波羅h743_W_第2頁
atk-1 3-tftlcd模塊使用說明基于阿波羅h743_W_第3頁
atk-1 3-tftlcd模塊使用說明基于阿波羅h743_W_第4頁
atk-1 3-tftlcd模塊使用說明基于阿波羅h743_W_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、ATK-1.3 TFTLCD 使用說明ALIENTEKATK-1.3 TFTLCDATK-1.3TFTLCD 液晶模塊使用說明本應(yīng)用文檔將教大家如何在ALIENTEK 的液晶顯示模塊。 本文檔分為如下幾部分: 1, ATK-1.3TFTLCD 模塊簡介 2, 硬件連接 3, 軟件實(shí)現(xiàn) 羅F767 開發(fā)板上使用 ATK-1.3TFTLCD1.ATK-1.3TFTLCD 模塊簡介ATK-1.3 TFTLCD 是 ALIENTEK 推出的一款高性能 1.3 寸液晶顯示模塊。該模塊分辨率高達(dá) 240*240,支持 16 位真彩色顯示,采用ST7789V2 驅(qū)動(dòng),該芯片自帶 RAM,無需外加驅(qū)動(dòng)器,單片

2、機(jī)只需要使用 SPI 接口就可以輕易驅(qū)動(dòng)該液晶屏幕。 1.1 模塊引腳說明ATK-1.3TFTLCD 顯示屏通過 2*4P 的排針(2.54mm 間距)同外部連接,模塊可以與ALIENTEK 的 STM32 開發(fā)板直接連接,我們也提供了相應(yīng)的例程,用戶可以在 ALIENTEK STM32 開發(fā)板上直接測試。ATK-1.3 TFTLCD 外觀如圖 1.1.1 所示: 圖 1.1.1 ATK-1.3 TFTLCD 模塊正面圖User MATK-1.3 TFTLCD 使用說明ALIENTEKATK-1.3 TFTLCD圖 1.1.2 ATK-1.3 TFTL

3、CD 模塊背面圖 ATK-1.3TFTLCD 模塊通過 8(2*4)個(gè)引腳同外部連接,對(duì)外接口原理圖如圖 1.1.3所示: 圖 1.1.3 模塊對(duì)外接口原理圖 對(duì)應(yīng)引腳功能詳細(xì)描述如表 1.1.1 所示: 表 1.1.1 ATK-1.3 TFTLCD 模塊引腳說明 特別注意:模塊出廠默認(rèn)選擇四線 SPI,例程源碼也是使用四線 SPI 進(jìn)行通訊的,如果需要使用三線SPI,請(qǐng)按照用戶手冊(cè)修改電路。 1.2 LCD 接口時(shí)序User M序號(hào) 名稱 說明 1VCCLCD 供電電源引腳(3.3V) 2CSLCD 片選信號(hào)(低電平有效) 3SDALCD 的 SDA

4、 信號(hào)線 4RESETLCD 的復(fù)位信號(hào)(低電平有效)5WR(DC)寫命令/寫數(shù)據(jù)信號(hào)(0:寫命令;1:寫數(shù)據(jù)) 6SCKLCD 的 SCK 時(shí)鐘線 7PWRLCD 背光控制引腳(0:關(guān)閉;1:打開) 8GND電源地 ATK-1.3 TFTLCD 使用說明ALIENTEKATK-1.3 TFTLCDATK-1.3TFTLCD 模塊支持三線SPI 和四線 SPI 通訊,出廠默認(rèn)選擇四線SPI 通訊。通訊模式選擇: 由于我們模塊出廠默認(rèn)使用四線 SPI,所以我們這里只講解四線 SPI 的時(shí)序,三線 SPI 的時(shí)序請(qǐng)參考模塊用戶手冊(cè)。 ATK-1.3TFTLCD 在四線 SPI 通訊模式下,最少需要

5、四根線就可以與 LCD 通訊:CS/SCL/SDA/WR(DC),該模塊出廠默認(rèn)使用四線 SPI 通訊,也就是默認(rèn)焊接 R7 和 R10 電阻。四線 SPI 接口時(shí)序如圖 所示: 圖 圖中各個(gè)時(shí)間參數(shù)見表 所示:四線 SPI 接口時(shí)序圖User M序號(hào) 名稱 說明 1三線 SPI焊接:R5 和 R62四線 SPI焊接:R4 和 R7(出廠默認(rèn))ATK-1.3 TFTLCD 使用說明ALIENTEKATK-1.3 TFTLCD表 四線 SPI 時(shí)間參數(shù)從表中可以看出,模塊的寫周期是非常快的,寫周

6、期為:16ns,而模塊的讀周期相對(duì)較慢,讀周期為:150ns。 LCD 四線SPI 的詳細(xì)讀寫時(shí)序,請(qǐng)看 ST7789V2 數(shù)據(jù)手冊(cè)第 56 頁和 60 頁。 1.3 LCD 驅(qū)動(dòng)說明ATK-1.3TFTLCD 模塊采用 ST7789V2 作為 LCD 驅(qū)動(dòng)器,顯示數(shù)據(jù)可以直接存儲(chǔ)在 240*320*18 位片上的 RAM 中,它可以在沒有外部操作時(shí)鐘的情況下執(zhí)行顯示數(shù)據(jù) RAM 讀 /寫操作,以最小化功耗。該驅(qū)動(dòng)芯片采用 SPI 接口與外部連接,需要使用的信號(hào)線如下:CS:LCD 的片選信號(hào)線SCK:SPI 的時(shí)鐘信號(hào)線SDA:SPI 的數(shù)據(jù)信號(hào)線 WR(DC):命令/數(shù)據(jù)標(biāo)志(0:寫命令;

7、1:寫數(shù)據(jù)) 除了以上信號(hào),我們一般還需要用到這個(gè) 2 個(gè)信號(hào):RESET 和 PWR,其中:RST 是LCD 的硬復(fù)位腳,低電平有效,用于復(fù)位 ST7789V2 芯片,實(shí)現(xiàn)液晶的復(fù)位,在每次初始化之前,我們強(qiáng)烈建議大家先執(zhí)行硬復(fù)位,再做初始化。而PWR 則是 LCD 的背光控制引腳,高電平有效,這個(gè)引腳自帶了下拉電阻,所以如果這個(gè)引腳懸空,背光是不會(huì)亮的。必須接高電平背光才會(huì)亮,另外可以用PWM 控制 PWR 腳,從而控制背光的亮度。 ST7789V2 自帶 LCD RAM(240*320*3 字節(jié)),并且最高支持 18 位顏色深度(262K 色),不過我們一般使用 16 位顏色深度(65K

8、 色),RGB565 格式,這樣可以在 16 位模式下達(dá)到最快的速度。在 16 位模式下,ST7789V2 采用 RGB565 格式存儲(chǔ)顏色數(shù)據(jù),此時(shí) MCU的 16 位數(shù)據(jù)與 LCD RAM 的對(duì)應(yīng)關(guān)系如圖 2.4.1 所示: User MATK-1.3 TFTLCD 使用說明ALIENTEKATK-1.3 TFTLCD圖 2.4.1 16 位數(shù)據(jù)與 LCD RAM 的對(duì)應(yīng)關(guān)系 圖示 MCU 的 16 位數(shù)據(jù)中,最低 5 位代表藍(lán)色,中間 6 位位綠色,最高 5 位為紅色。數(shù)值越大,表示該顏色越深。 接下來,就來介紹一下 ST7789V2 的幾條重要

9、指令,因?yàn)樵撔酒拿钣泻芏?,我們這里就不全部介紹了,有興趣的可以找數(shù)據(jù)手冊(cè)看看,里面對(duì)命令有詳細(xì)介紹。 首先來看一下指令:0x36,這是存儲(chǔ)訪問控制指令,可以控制 ST7789V2 存儲(chǔ)器的讀寫方向,簡單的來說,就是在連續(xù)寫 LCD RAM 數(shù)據(jù)的時(shí)候,可以控制 RAM 指針的增長方向, 從而控制顯示方式(讀操作也是一樣)。該指令如圖 2.4.2 所示: 圖 2.4.2 0x36 指令描述 從上圖可以看出。0x36 指令下可以配置 6 個(gè)參數(shù),這里我們主要關(guān)心:MY、MX 和MV 這三位,通過這三個(gè)位的設(shè)置,我們可以控制整個(gè) ST7789V2 的全部掃描方向。如表 2.4.1 所示: Use

10、r MATK-1.3 TFTLCD 使用說明ALIENTEKATK-1.3 TFTLCD表 2.4.1 MX、MY、MV 設(shè)置與 LCD 掃描方向關(guān)系表 這樣,我們?cè)谑褂?ST7789V2 顯示內(nèi)容的時(shí)候,就有很大靈活性了,比如顯示BMP 圖片,BMP 解碼數(shù)據(jù),就是從圖片的左下角開始,慢慢顯示到右上角,如果設(shè)置 LCD 掃描方向?yàn)閺淖蟮接?,從下到上,那么?們只需要設(shè)置一次坐標(biāo),然后就不停的往 LCD 填充顏色數(shù)據(jù)即可,這樣可以大大提高顯示速度。 接下來看一下指令:0x2A,這是列地址設(shè)置指令,在從左到右,從上到下的掃描方式 (默認(rèn))下面,該指令用于

11、設(shè)置橫坐標(biāo)(x 坐標(biāo)),該指令如圖 2.4.3 所示: 圖 2.4.3 0x2A 指令描述 這條指令用于設(shè)置 x 坐標(biāo),x 坐標(biāo)有兩個(gè)坐標(biāo)值:XS 和 XE(XS 和XE 都是 16 位的, 由 2 個(gè) 8 位組成),即列地址的起始值和結(jié)束值,當(dāng)“MV=0”時(shí),0XSXE239,當(dāng)“MV=1” 時(shí),0XSXE319。 與 0x2A 指令類似,指令:0x2B,是設(shè)置行地址的指令,在從左到右,從上到下的掃描方式(默認(rèn))下面,該指令用于設(shè)置縱坐標(biāo)(y 坐標(biāo))。該指令如圖 2.4.3 所示:圖 2.4.3 0x2B 指令描述 這條指令用于設(shè)置 y 坐標(biāo),y 坐標(biāo)有兩個(gè)坐標(biāo)值:YS 和 YE(YS 和Y

12、E 都是 16 位的, 由 2 個(gè) 8 位組成),即頁地址的起始值和結(jié)束值,當(dāng)“MV=0”時(shí),0YSYE319,當(dāng)“MV=1” 時(shí),0YSYE寫 GRAM 指令-寫入顏色數(shù)據(jù),然后在 LCD 上面,我們就可以看到對(duì)應(yīng)的點(diǎn)顯示我們寫入的顏色了。讀點(diǎn)流程為:設(shè)置坐標(biāo)-讀 GRAM 指令-讀取顏色數(shù)據(jù),這樣就可以獲取到對(duì)應(yīng)點(diǎn)的顏色數(shù)據(jù)了。 2.硬件連接本章實(shí)驗(yàn)功能簡介:開機(jī)時(shí)先初始化 LCD,然后開始顯示正點(diǎn)原子 LOGO,12/16/24/32 號(hào)字體等信息,同時(shí)使用 LED 燈來指示程序正在運(yùn)行。本章需要用到的硬件資源如下: 1、指示燈 LED2、TFTLCD 模塊 3、ATK-WIRELESS

13、 接口 ATK-1.3 TFTLCD 模塊可以直接插在 ALIENTEK STM32 開發(fā)板上的 ATK-WIRELESS接口處。在 MINI 開發(fā)板上,ATK-1.3TFTLCD 模塊與 MINI 開發(fā)板對(duì)應(yīng)的關(guān)系如下: SCK:對(duì)應(yīng)PB13,即 SPI2_SCK SDA:對(duì)應(yīng) PB15,即 SPI2_SDA WR:連接 PA6CS: 連 接 PC4 PWR:連接 PA4RESET:連接PA13.軟件實(shí)現(xiàn)本實(shí)驗(yàn)我們使用四線 SPI 來驅(qū)動(dòng) ATK-1.3 TFTLCD 模塊,所以我們通過 WR(DC)信 User MATK-1.3 TFTLCD 使用

14、說明ALIENTEKATK-1.3 TFTLCD號(hào)線來控制是發(fā)送命令還是發(fā)送數(shù)據(jù)到 LCD。代碼如下所示: LCD 的 SPI 通訊時(shí)序大家可以通過 ST7789V2 數(shù)據(jù)手冊(cè)進(jìn)行學(xué)習(xí),這里就不多介紹了。下面我們就來重點(diǎn)關(guān)注一下上面我們提到的 0x36 指令(存儲(chǔ)器訪問控制指令,即 RAM指針增長方向),這里只粘貼了部分代碼。 從以上代碼可以看到,LCD 的 RAM 指令增長方向被設(shè)置成了從左到右,從上到下的方式,這個(gè)方式?jīng)Q定了字庫取模方式和圖片顯示等問題。如果方向設(shè)置的好,我們只需要將字庫和圖片數(shù)據(jù)不停的往 LCD 填充就好了,就可以大大提高顯示速度。 下面我們就來看看畫點(diǎn)函數(shù),該函數(shù)的實(shí)現(xiàn)

15、代碼如下: User M/* 設(shè)置數(shù)據(jù)寫入 LCD 緩存區(qū)域 * paramx1,y1起點(diǎn)坐標(biāo) * paramx2,y2終點(diǎn)坐標(biāo) */* Memory Data Access Control */LCD_Write_Cmd(0x36); LCD_Write_Data(0x00);/* brief寫命令到 LCD* paramcmd需要發(fā)送的命令 * returnvoid*/static void LCD_Write_Cmd(u8 cmd)LCD_DC = 0;LCD_SPI_Send(&cmd, 1);/* brief寫數(shù)據(jù)到 LCD* paramcm

16、d需要發(fā)送的數(shù)據(jù) * returnvoid*/static void LCD_Write_Data(u8 data)LCD_DC = 1;LCD_SPI_Send(&data, 1);ATK-1.3 TFTLCD 使用說明ALIENTEKATK-1.3 TFTLCDUser M* returnvoid*/void LCD_Address_Set(u16 x1, u16 y1, u16 x2, u16 y2)LCD_Write_Cmd(0x2a); LCD_Write_Data(x1 8); LCD_Write_Data(x1); LCD_Write_D

17、ata(x2 8); LCD_Write_Data(x2);LCD_Write_Cmd(0x2b); LCD_Write_Data(y1 8); LCD_Write_Data(y1); LCD_Write_Data(y2 8); LCD_Write_Data(y2);LCD_Write_Cmd(0x2C);/* brief寫半個(gè)字的數(shù)據(jù)到 LCD* paramcmd需要發(fā)送的數(shù)據(jù) * returnvoid*/void LCD_Write_HalfWord(const u16 da)u8 data2 = 0;data0 = da 8; data1 = da;LCD_DC = 1;LCD_SPI_

18、Send(data, 2);/* 畫點(diǎn)函數(shù) * paramx,y畫點(diǎn)坐標(biāo) * returnvoid*/void LCD_Draw_Point(u16 x, u16 y)ATK-1.3 TFTLCD 使用說明ALIENTEKATK-1.3 TFTLCD該函數(shù)實(shí)現(xiàn)比較簡單,就是先設(shè)置坐標(biāo),然后往坐標(biāo)寫顏色數(shù)據(jù)。其中 POINT_COLOR 是我們定義的一個(gè)全局變量, 用于存放畫筆顏色, 順帶介紹一下另外一個(gè)全局變量BACK_COLOR,該變量代表 LCD 的背景顏色。LCD_Draw_Point 函數(shù)雖然簡單,但是至關(guān)重要,其他函數(shù)都可以調(diào)用這個(gè)函數(shù)實(shí)現(xiàn)。在例程源代碼中,為了提高顯示速度,很少用到

19、畫點(diǎn)函數(shù)來實(shí)現(xiàn)上層函數(shù)功能,因?yàn)楫孅c(diǎn)函數(shù)的效率有點(diǎn)低。但是可以供到大家學(xué)習(xí)使用。 由于 ATK-1.3TFTLCD 模塊是 SPI 通訊接口的,在速度上肯定會(huì)比不上那些使用 8080 等并口的TFTLCD 顯示屏,為了提高顯示速度,增加了一個(gè) LCD 緩存,以提高顯示效果, 這個(gè)緩存會(huì)影響清屏函數(shù) LCD_Clear、填充函數(shù) LCD_Fill 和畫線函數(shù) LCD_DrawLine,修 改緩存大小時(shí),請(qǐng)注意! 最后就來看一下字符顯示函數(shù) LCD_ShowChar,該函數(shù)可以顯示 12/16/24/32 號(hào)字體, 如果大家需要其他字體的話可以直接修改這個(gè)函數(shù)。特別要注意字庫取模方向! User

20、M/* brief顯示一個(gè)ASCII 碼字符 * paramx,y顯示起始坐標(biāo) * paramchr需要顯示的字符 * paramsize 字體大小(支持 16/24/32 號(hào)字體)* returnvoid*/void LCD_ShowChar(u16 x, u16 y, char chr, u8 size)u8 temp, t1, t;u8 csize;/得到字體一個(gè)字符對(duì)應(yīng)點(diǎn)陣集所占的字節(jié)數(shù)u16 colortemp;u8 sta;chr = chr - ; /得到偏移后的值(ASCII 字庫是從空格開始取模,所以- 就是對(duì)應(yīng)字符的字庫) if(x

21、 (LCD_Width - size / 2) | (y (LCD_Height - size)return; LCD_Address_Set(x, y, x + size / 2 - 1, y + size - 1);/(x,y,x+8-1,y+16-1)if(size = 16) | (size = 32) )/16 和 32 號(hào)字體 /LCD 緩存大小設(shè)置,修改此值時(shí)請(qǐng)注意!修改這兩個(gè)值時(shí)可能會(huì)影響以下函數(shù) LCD_Clear/LCD_Fill/ LCD_DrawLine#define LCD_TOTAL_BUF_SIZE(240*240*2) #define LCD_Buf_Size

22、1152static u8 lcd_bufLCD_Buf_Size;LCD_Address_Set(x, y, x, y); LCD_Write_HalfWord(POINT_COLOR);ATK-1.3 TFTLCD 使用說明ALIENTEKATK-1.3 TFTLCDUser Mcsize = (size / 8 + (size % 8) ? 1 : 0) * (size / 2);for(t = 0; t csize; t+)if(size = 16)temp = asc2_1608chrt;/ 調(diào) 用 1608 字 體else if(size = 32)temp = asc2_3216chrt; /調(diào)用 3216 字體else return;/沒有的字庫 for(t1 = 0; t1 8; t1+)if(temp & 0x80) colortemp = POINT_COLOR; else colortemp = BACK_COLOR;LCD_Write_HalfWord(colortemp); temp = 1;else if(size = 1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論