alientek ministm32開發(fā)板-9增值應(yīng)用an flash圖片顯示an1103_第1頁
alientek ministm32開發(fā)板-9增值應(yīng)用an flash圖片顯示an1103_第2頁
alientek ministm32開發(fā)板-9增值應(yīng)用an flash圖片顯示an1103_第3頁
alientek ministm32開發(fā)板-9增值應(yīng)用an flash圖片顯示an1103_第4頁
alientek ministm32開發(fā)板-9增值應(yīng)用an flash圖片顯示an1103_第5頁
免費預(yù)覽已結(jié)束,剩余7頁可下載查看

下載本文檔

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

文檔簡介

AN1103AN1103FLASH圖片顯示AN1103AN1103FLASH圖片顯示(開發(fā)板為實驗對象。本文檔分為如下幾部分:1,2,3,圖片顯示原理。Image2lcd簡介。軟件實現(xiàn)。2個要素:1,坐標(biāo)。2,LCD上顯示出來,我們只需要在正你的畫點函數(shù)。320*240的圖像,以16位色計算,那么光顏色的數(shù)據(jù)量就有:320*240*2=153600字節(jié)。這其中還不包括設(shè)置坐標(biāo)的過程,如果加上坐標(biāo)設(shè)置,數(shù)據(jù)量就是顏色數(shù)據(jù)量的5倍(每次坐標(biāo)設(shè)置需要發(fā)送5次命令/數(shù)據(jù))以上。所以盡量優(yōu)化畫點過程,才能使你的圖片顯示得流暢。ALIENTEK所LCD寫顏色數(shù)據(jù),而不需要再做地址設(shè)置了。這樣可以使5倍以上。開窗也有幾個條件:1,窗大小。2,GRAM自增方向(就是掃描方向。1所示:110/09/2011AN1103240*31AN1103240*31000~0XE(x坐標(biāo)00~0X13(y坐標(biāo)。圖一中我們開辟了一個灰XSTA~XEND,YSTA~YEND。這樣LCD寫數(shù)據(jù),它就只會在這個窗口范圍內(nèi)地址按照設(shè)定的方向自yxy(XSTA,YSTA)。窗方式來畫圖,從而提高效率。10/09/2011AN1103簡介。Image2Lcd式以用來匹配單片機(jī)系統(tǒng)所需要的顯示數(shù)據(jù)格式。AN1103簡介。Image2Lcd式以用來匹配單片機(jī)系統(tǒng)所需要的顯示數(shù)據(jù)格式。Image2Lcd支持的輸入圖像格式包括:,)、圖像數(shù)據(jù)排列方式、亮度、對比度、等等。對于包含了圖像頭數(shù)據(jù)保存的圖像數(shù)據(jù)文件,Image2Lcd能重新打開作為輸入圖像。16位真彩色為例進(jìn)行說明。在該軟件的幫助文件查到對“4096色/16位真彩色/18位真彩色/24位真彩色/32位真彩色”圖片,其生成的圖像數(shù)據(jù)頭的結(jié)構(gòu)為:typedefstruct_HEADCOLOR{unsignedcharscan;unsignedchargray;unsignedshortw;unsignedshorth;unsignedcharis565;unsignedcharrgb;}HEADCOLOR;各個成員的功能描述如下:scan:掃描模式0:自左至右掃描,1:自右至左掃描。0:自頂至底掃描,1:自底至頂掃描。Bit5:0:字節(jié)內(nèi)象素數(shù)據(jù)從1:字節(jié)內(nèi)象素數(shù)據(jù)從低位到排列。PC相同,1:WORDPC相反。Bit3~2:保留。Bit1~0:00]水平掃描,[01]垂直掃描,[10]數(shù)據(jù)水平,字節(jié)垂直,[11]數(shù)據(jù)垂直,字節(jié)水平。gray:灰度值32:32位彩色。w:圖像的寬度。h:圖像的高度。表示使用[16bits(WORD)]WORD表示[12bits(連續(xù)字節(jié)流)]12Bits代表一個象素。0RGB5Bits1RGB顏色。"6BitsinHighByte"。is565無效。Blue。wh,scan的最高兩位,則代表了圖片數(shù)據(jù)生成時的掃描方向,也就10/09/2011AN1103種掃描方式的圖片數(shù)據(jù)了。16AN1103種掃描方式的圖片數(shù)據(jù)了。16位真彩(RGB:565)格式的圖像數(shù)據(jù)。2image2lcdV2.93所示:33162163(位(MSBFit56(4處)得到圖像數(shù)組如下:constunsignedchargImage_image1[67208]={0X00,0X10,0XC8,0X00,0XA8,0X00,0X01,0X1B,……0X73,0XB7,0XF6,0XCF,0XF9,0XD7,0X98,0XCF,0X71,0XAE,0XD6,0XDF,0XFA,0XE7,0XF8,0XCF,10/09/2011AN11030XF6,0XC7,0X10,0X9F,0X53,0XB7,0XD5,0XC7,0XF6,0XCF,0X74,0XBF,0XD1,0XA6,0XF7,0XD7,};AN11030XF6,0XC7,0X10,0X9F,0X53,0XB7,0XD5,0XC7,0XF6,0XCF,0X74,0XBF,0XD1,0XA6,0XF7,0XD7,};HEADCOLOR的大小。緊隨其后的就是按設(shè)定的方向順序存放的圖像數(shù)據(jù)(顏色數(shù)據(jù)。這樣我們只需要在軟件上對這個數(shù)的數(shù)據(jù)進(jìn)行,就可以還原圖像了。10/09/2011AN1103AN1103(gImae_imae1需要一個開窗函數(shù),以及一個掃描方向設(shè)置函數(shù),這里提供這兩個函數(shù)的代碼如下:的自動掃描方向voidLCD_Scan_Dir(u8dir){u16regval=0;u8dirreg=0;使用橫屏switch(dir)//方向轉(zhuǎn)換{0:dir=6;break;1:dir=7;break;2:dir=4;break;3:dir=5;break;4:dir=1;break;5:dir=0;break;6:dir=3;break;7:dir=2;break;}#endifif(DeviceCode==0x8989)//8989IC{dirreg=0X11;IC{dirreg=0X03;}switch(dir){從左到右,從上到下regval|=(1<<5)|(1<<4)|(0<<3);break;caseL2R_D2U://從左到右,從下到上regval|=(0<<5)|(1<<4)|(0<<3);break;從右到左,從上到下regval|=(1<<5)|(0<<4)|(0<<3);break;10/09/2011AN1103caseR2L_D2U://從右到左,從下到上regval|=(0<<5)|(0<<4)|(0<<3);AN1103caseR2L_D2U://從右到左,從下到上regval|=(0<<5)|(0<<4)|(0<<3);break;從上到下,從左到右regval|=(1<<5)|(1<<4)|(1<<3);break;從上到下,從右到左regval|=(1<<5)|(0<<4)|(1<<3);break;caseD2U_L2R://從下到上,從左到右regval|=(0<<5)|(1<<4)|(1<<3);break;從下到上,從右到左regval|=(0<<5)|(0<<4)|(1<<3);break;}}//設(shè)置窗口//sx,sy,ex,ey窗口坐標(biāo)//窗口大小:(ex‐sx+1)*(ey‐ex+1)voidLCD_Set_Window(u16sx,u16sy,u16ex,u16ey){#ifUSE_HORIZONTAL //使用橫屏//窗口值hsaval=sy;heaval=ey;veaval=319‐sx;//豎屏#else//窗口值hsaval=sx;vsaval=sy;#endifif(DeviceCode==0X8989)//8989IC{水平方向窗口寄存器hsaval|=(heaval<<8); //得到寄存器值.(1289的由一個寄存器控制)10/09/2011AN1103heaval=hsaval;vsareg=0X45;veareg=0X46;//垂直方向窗口寄存器}else IC{水平方向窗口寄存器vsareg=0X52;veareg=0X53;//垂直方向窗口寄存器AN1103heaval=hsaval;vsareg=0X45;veareg=0X46;//垂直方向窗口寄存器}else IC{水平方向窗口寄存器vsareg=0X52;veareg=0X53;//垂直方向窗口寄存器}//設(shè)置寄存器值LCD_WriteReg(hsareg,hsaval);LCD_WriteReg(vsareg,vsaval);LCD_WriteReg(veareg,veaval);}這兩個函數(shù)已經(jīng)添加到ILI93xx.c的源碼中,具體請看本應(yīng)用文檔的對應(yīng)擴(kuò)展實驗版本為USMARTV2.6。10usmart組建以及新IMAG2LCD4:4式也可以實現(xiàn)h‐de2lcd.c的內(nèi)容如下://816位顏色//mode:0,低位在前,在后.1, 在前,低位在后.//10/09/2011AN1103//str:數(shù)據(jù)AN1103//str:數(shù)據(jù)u16image_getcolor(u8mode,u8*str){if(mode){color|=*str;}else{color=*str++;}returncolor;}//在液晶上畫圖//xsta,ysta,xend,yend:畫圖區(qū)域的說明.//*p:圖像數(shù)據(jù)voidimage_show(u16xsta,u16ysta,u16xend,u16yend,u8scan,u8*p){u32i;u32len=0;if((scan&0x03)==0)//水平掃描{switch(scan>>6)//設(shè)置掃描方式{case0:從左到右,從上到下LCD_SetCursor(xsta,ysta);//設(shè)置光標(biāo)位置break;case1:從左到右,從下到上LCD_SetCursor(xsta,yend);//設(shè)置光標(biāo)位置break;case2:從右到左,從上到下LCD_SetCursor(xend,ysta);//設(shè)置光標(biāo)位置break;case3:從右到左,從下到上LCD_SetCursor(xend,yend);//設(shè)置光標(biāo)位置break;10/09/2011AN1103}}else //垂直掃描{switch(scan>>6)//設(shè)置掃描方式{case0:AN1103}}else //垂直掃描{switch(scan>>6)//設(shè)置掃描方式{case0:從上到下,從左到右LCD_SetCursor(xsta,ysta);//設(shè)置光標(biāo)位置break;case1:從下到上從,左到右LCD_SetCursor(xsta,yend);//設(shè)置光標(biāo)位置break;case2:從上到下,從右到左LCD_SetCursor(xend,ysta);//設(shè)置光標(biāo)位置break;case3:從下到上,從右到左LCD_SetCursor(xend,yend);//設(shè)置光標(biāo)位置break;}}GRAMlen=(xend‐xsta+1)*(yend‐ysta+1);//寫入的數(shù)據(jù)長度for(i=0;i<len;i++){p+=2;}#ifUSE_HORIZONTAL //使用橫屏LCD_Set_Window(0,0,319,239);#elseLCD_Set_Window(0,0,239,319);#endif}//在指定的位置顯示一個圖片image2lcd16位真彩色圖片.//限制:1,尺寸不能超過屏幕的區(qū)域.2,生成數(shù)據(jù)時不能勾選:3,必須包含圖片信息頭數(shù)據(jù)在前(MSBFirst)//////x,y:指定位置//imgx:圖片數(shù)據(jù)(必須包含圖片信息頭,"4096色/16位真彩色/18位真彩色/24位真彩色/32位10/09/2011AN1103真彩色”的圖像數(shù)據(jù)頭)image2lcd的"不正確!!voidAN1103真彩色”的圖像數(shù)據(jù)頭)image2lcd的"不正確!!voidimage_display(u16x,u16y,u8*imgx){HEADCOLOR*imginfo;imginfo的數(shù)據(jù)將imginfo=(HEADCOLOR*)imgx;}通過這三個函數(shù)即實現(xiàn)了對image2lcd軟件生成的任意掃描方向、任意尺寸(不大于240*320)的圖像數(shù)據(jù)的。flash里面的圖像數(shù)據(jù)進(jìn)行顯示imgxflash圖像數(shù)據(jù)的首地址。main函數(shù)里面的實現(xiàn)代碼如下:13FLASH圖片顯示實驗//正點原子@ALIENTEK//技術(shù):intmain(void){u8i=0;u16x=0,y=0;u16x0,y0;imginfo=(HEADCOLOR*)gImage_image1; //得到文件信息Stm32_Clock_Init(9);//系統(tǒng)時鐘設(shè)置delay_init(72); //延時初始化//串口1初始化LED_Init();LCD_Init();LCD_ShowString(30,50,"MiniSTM32^_^");PICTURETEST");LCD_ShowString(30,90,"ATOM@ALIENTEK");1.5秒srand(imginfo‐>h*imginfo‐>w);while(1){if(i==0){10/09/2011AN1103LCD_Clear(0X0000);//黑屏{POINT_COLOR=RED;LCD_ShowString(10,70,"ThePictureistooAN1103LCD_Clear(0X0000);//黑屏{POINT_COLOR=RED;LCD_ShowString(10,70,"ThePictureistoolarge");continue;}x0=x;y0=y;w

溫馨提示

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

評論

0/150

提交評論