第23講tft彩屏系列之四顯示圖片實(shí)驗(yàn)_第1頁(yè)
第23講tft彩屏系列之四顯示圖片實(shí)驗(yàn)_第2頁(yè)
第23講tft彩屏系列之四顯示圖片實(shí)驗(yàn)_第3頁(yè)
第23講tft彩屏系列之四顯示圖片實(shí)驗(yàn)_第4頁(yè)
第23講tft彩屏系列之四顯示圖片實(shí)驗(yàn)_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、7.12TFT彩色液晶屏顯示7.12.1格式介紹格式有非常多的種類,比如 JPEG、BMP 和 GIF 等多種不同的類型,實(shí)驗(yàn)中主要是使用 LCD 屏來(lái)顯示 BMP。BMP 文件格式,又稱為位圖(Bitmap)或是 DIB(Device-Independent Device,設(shè)備無(wú)關(guān)位圖),是 Windows 系統(tǒng)中廣泛使用的圖像文件格式。BMP 文件保存了一幅圖像中所有的像素。BMP 格式可以保存單色位圖、16 色或 256 色索引模式像素圖、24 位真彩象,每種模式中單一像素點(diǎn)的大小分別為 1/8 字節(jié),1/2 字節(jié),1 字節(jié)和 32 字前最常見的是 256位MP 和 24 位MP。BMP

2、 文件格式還定義了像素保存的幾種方法,包括不壓縮、RLE 壓縮等。常見的 BMP 文件大多是不壓縮的。Windows 所使用的 BMP 文件,在開始處有一個(gè)文件頭,大小為 54 字節(jié)。保存了包括文件格式標(biāo)識(shí)、顏色數(shù)、圖像大小、壓縮方式等信息,因?yàn)閮H24比位色不壓縮的 BMP,所以文件頭中的信息基本不需要注意,只有大小這一項(xiàng)對(duì)較有用。圖像的寬度和高度都是一個(gè) 32 位整數(shù),在文件中的地址分別為 0 x0012 和 0 x0016。54 個(gè)字節(jié)以后,如果是 16 色或 256MP,則還有一個(gè)顏色表,但在 24 位MP 文件的優(yōu)點(diǎn)則沒有,這里不考慮。接下來(lái)就是實(shí)際的像素?cái)?shù)據(jù)了。因此總的來(lái)說(shuō) BMP是

3、簡(jiǎn)單。7.12.2 深入了解BMPBMP 文件的格式大體上分為 4 部分。第一部分為位圖文件頭。第二部分為位圖信息頭。第三部分為調(diào)色板。第四部分就是實(shí)際的圖像數(shù)據(jù)了。BMP 的內(nèi)容,網(wǎng)上的資料很多,都說(shuō)爛了。從操作上講,如果想在液晶屏上顯示的話,還是比較簡(jiǎn)單的。大體上說(shuō),使用提供的圖像轉(zhuǎn)換,將要顯示的圖像轉(zhuǎn)換成數(shù)據(jù),替代提供的代碼中的圖像數(shù)據(jù)就可以了。針對(duì)于本實(shí)驗(yàn),直接看一下轉(zhuǎn)換出來(lái)的 BMP 圖像數(shù)據(jù)。轉(zhuǎn)換的出的數(shù)據(jù),并非都是都是用于繪制的圖像實(shí)際數(shù)據(jù)。在圖像數(shù)據(jù)之前還有一串?dāng)?shù)據(jù)。比如:。這里的 0 x40,0 x01,表示圖像的寬度。0 xF0,0 x00 表示圖像的高度。0 x0140

4、化為 10 進(jìn)制等于 320;0 x00F0 化為 10 進(jìn)制是 240。其它位代表的意義,這里不一一列舉。在代碼中進(jìn)行說(shuō)明,在7.12.3 使用工具將轉(zhuǎn)換成二進(jìn)制碼在本實(shí)例中,在main函數(shù)中有以下函數(shù)調(diào)用:LCD_Image2LcdDrawBmp565Pic()函數(shù)可以在指定的位置顯示。當(dāng)然顯示的大小是有限制的。比如本實(shí)驗(yàn)顯示的是240 x320,屏幕也是240 x320。那么顯示圖片的時(shí)候,指定的顯示坐標(biāo)應(yīng)該是(0,0),剛好整屏顯示。本實(shí)驗(yàn)使用的轉(zhuǎn)換工具是:Img2Lcd.exe。該的使用方法如下:雙擊“Image2Lcd 2.9.exe”,打開單擊“打開”選項(xiàng),選擇要轉(zhuǎn)換的。3) 對(duì)

5、轉(zhuǎn)換的進(jìn)行設(shè)置。具體的設(shè)置入下圖:這里是C語(yǔ)言,輸出的數(shù)據(jù)類型選擇“C語(yǔ)言數(shù)組(*.C)”。這里大家要留意的是“輸出圖像”。屏幕最大的寬度和高度是320和240。假如輸出的圖像剛好是(320,240),在代碼中設(shè)置圖像顯示位置的時(shí)候應(yīng)該是在開始的位置,即坐標(biāo)(0,0)。如果選擇其他位置,的顯示錯(cuò)亂。掃描模式,選擇水平掃描?!拜敵龌叶取边@里,選擇的是“16位真彩色”。本實(shí)驗(yàn)中針對(duì)的是16位彩色,顏色數(shù)據(jù)的排序是紅、綠、藍(lán)。顏色的位數(shù)分別是紅色5位,綠色6位,藍(lán)色5位。勾選“包含圖像頭數(shù)據(jù)”。轉(zhuǎn)換出來(lái)的數(shù)據(jù),并非都是都是用于繪制的圖像實(shí)際數(shù)據(jù),它還包含了圖像頭數(shù)據(jù)。將數(shù)組拷貝出來(lái),替換_LCON_

6、80X80.C 文件中的“gImage_ICON_80X80_16153608”數(shù)組內(nèi)容和_LCON_80X80.h 文件中對(duì)應(yīng)的數(shù)組定義,重新編譯后即可顯示用戶自己的。7.12.4 硬件設(shè)計(jì)硬件設(shè)計(jì)同上7.12.5分析從主程序開始分析。主程序中,函數(shù) SZ_STM32_SysTickInit(1000000)提供延時(shí)函數(shù)。函數(shù)SZ_STM32_LCDInit()初始化彩屏。函數(shù) LCD_Image2LcdDrawBmp565Pic(0, 0, gImage_C)顯示。本章節(jié),主要對(duì)顯示函數(shù)進(jìn)行分析。代碼分析 1:液晶屏的初始化等細(xì)節(jié)前面的例程都有詳細(xì)介紹,這個(gè)例程中主要是LCD_Image2

7、LcdDrawBmp565Pic ( )函數(shù)顯示了。代碼分析 2:LCD_Image2LcdDrawBmp565Pic(0, 0, gImage_C)本函數(shù)有 3 個(gè)參數(shù),第一、第二個(gè)參數(shù)設(shè)置顯示的位置。第三個(gè)參數(shù)是指針,指向轉(zhuǎn)換出來(lái)的數(shù)組數(shù)據(jù)的首地址。代碼分析 3:畫圖函數(shù)中首先定義了 HEADCOLOR 類型的“* BmpHeadr”。看一下HEADCOLOR 是什么。大家可以發(fā)現(xiàn),HEADCOLOR 里面分別包含了多個(gè)數(shù)據(jù)。有 4 個(gè)unsigned char 類型,兩個(gè) unsigned short 類型。算一下它們總共占用了多少字節(jié)。unsigned char 占用一個(gè)字節(jié),unsi

8、gned short 占用兩個(gè)字節(jié)。那么它們一共就是占用了 8 個(gè)字節(jié)。這 8 個(gè)字節(jié)就是,轉(zhuǎn)換的的頭數(shù)據(jù)。它們的意義分別為:scan,掃描模式。gray,灰度值。w,h 分別是圖像的寬度和高度。is565,16 位彩色。Rgb,描述 R G B 顏色分量的排列順序。代碼分析 4:定義完“* BmpHeadr”后,將指針 BmpHeadr 指向轉(zhuǎn)換出來(lái)的數(shù)組數(shù)的寬度(Width)和高度(Height)。并跳過(guò)圖像的頭數(shù)據(jù),將指針 BmpData的實(shí)際數(shù)據(jù)。據(jù),指向顯示代碼分析 5:通過(guò)對(duì)圖像頭數(shù)據(jù)的判斷,調(diào)用 LCD_DrawBmp565Pic()函數(shù)顯示。代碼分析 6:顯示函數(shù) LCD_Im

9、age2LcdDrawBmp565Pic()。LCD_DrawBmp565Pic(u16_t StartX, u16_t StartY, u16_t Width, u16_t Height,const u16_t *BmpAddress)函數(shù)一共包含 5 個(gè)參數(shù)。第一、第二個(gè)參數(shù)是顯示圖像的起始點(diǎn),本實(shí)驗(yàn)給的點(diǎn)是(0,0)。第三、第四個(gè)參數(shù)分別表示圖像的寬度和高度。第 5 個(gè)參數(shù)就是指向跳過(guò)圖像頭數(shù)據(jù)后的第一個(gè)數(shù)據(jù),即用于繪制圖畫的第一個(gè)數(shù)據(jù)。代碼分析 7:繪制,也是一個(gè)點(diǎn)一個(gè)點(diǎn)的畫。只是速度太快人眼無(wú)法看出。顯示的時(shí)候,首先設(shè)定顯示的范圍,這里用到了 3 個(gè)寄存器 0 x0044、0 x0045、0 x0046。算一下給 0 x0044 和 0 x0046 的數(shù)據(jù),0 xEF00 和 0 x013F。十六進(jìn)制 0 xEF 化為十進(jìn)制得 239。0 x13F 化為十進(jìn)制是 319。相信大家對(duì)這兩個(gè)數(shù)據(jù)非常的熟悉。對(duì) 0 x0044、0 x0045、0 x0046 的介紹大家參考控制冊(cè)。顯示的時(shí)候,設(shè)置顯示時(shí)的位置。寫入命令 0 x22,準(zhǔn)備寫入 GRAM。然后通話LCD_WriteRAM()函數(shù)寫數(shù)據(jù)。本實(shí)驗(yàn)中,可以通過(guò)兩個(gè) fo

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論