基于STM32的圖像顯示系統(tǒng)_第1頁
基于STM32的圖像顯示系統(tǒng)_第2頁
基于STM32的圖像顯示系統(tǒng)_第3頁
基于STM32的圖像顯示系統(tǒng)_第4頁
基于STM32的圖像顯示系統(tǒng)_第5頁
免費預(yù)覽已結(jié)束,剩余15頁可下載查看

下載本文檔

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

文檔簡介

1、本文介紹了基于STM32的圖片顯示系統(tǒng)設(shè)計.現(xiàn)如今LCD顯示屏的技術(shù)和產(chǎn)業(yè)都取得了長足的開展,作為重要的現(xiàn)代信息發(fā)布媒體之一,LCD顯示屏在證券交易、金融、交通、體育、廣告等領(lǐng)域被廣泛的應(yīng)用.基于STM32的LCD顯示可以更好的滿足各種需求,也更便于操作和實現(xiàn).通電后,復(fù)位到初始化狀態(tài)可顯示本次課程設(shè)計題目及成員等根本信息,可人為操作對顯示信息的漢字進行自定義大小顏色及字體等等;把要顯示的圖片考入內(nèi)存卡里,更新內(nèi)存卡,即圖片可進行變換;自定義定時跳轉(zhuǎn)下一幅圖片,也可以通過按鍵快速跳到下一幅圖片,或返回上一張圖片.利用TFT-LCD液晶顯示屏顯示的圖片清楚、分辨率高,顯示圖片的效果極好.關(guān)鍵詞:

2、STM32;LCD顯示屏;圖片顯示1引言錯誤!未定義書簽.2總體設(shè)計錯誤!未定義書簽.2.1 圖片顯示的根本原理22.2 圖片顯示設(shè)計分析22.3 系統(tǒng)的結(jié)構(gòu)框圖33詳細設(shè)計錯誤!未定義書簽.3.1 硬件設(shè)計錯誤!未定義書簽.3.1.1 ALIENTEKMiniSTM32開發(fā)板簡介錯誤!未定義書簽.3.1.2 功能簡介錯誤!未定義書簽.3.2 軟件設(shè)計73.2.1 主函數(shù)局部83.2.2 硬件局部程序93.2.3 識別圖片113.2.4 FAT系統(tǒng)143.2.5 程序流程圖154實驗結(jié)果及分析164.1 硬件實驗結(jié)果164.2 結(jié)果分析錯誤!未定義書簽.5結(jié)論17參考文獻181引言進入新世紀L

3、CD顯示屏的技術(shù)和產(chǎn)業(yè)都取得了長足的開展,作為重要的現(xiàn)代信息發(fā)布媒體之一,LCD顯示屏在證券交易、金融、交通、體育、廣告等領(lǐng)域被廣泛的應(yīng)用.伴隨社會信息化進程的推進,LCD顯示屏技術(shù)也在不斷的推陳出新,應(yīng)用領(lǐng)域愈加廣闊.基于STM32的LCD顯示可以更好的滿足各種需求,也更便于操作和實現(xiàn).現(xiàn)基于STM32在液晶顯示屏幕上顯示文本及圖形.目前,顯示技術(shù)和顯示工業(yè)的開展迅速.顯示技術(shù)是傳遞視覺的信息技術(shù).液晶顯示器件LCD是當今最有開展前途的一種平板顯示器件,它具有很多獨到的優(yōu)異特性.它具有顯示信息多、易于多彩化、體積小、重量輕、功耗低、壽命長、價格低、無輻射、無污染、接口限制方便等優(yōu)點.BMP是

4、一種與硬件設(shè)備無關(guān)的圖像文件格式,使用非常廣.它采用位映射存儲格式,除了圖像深度可選以外,不采用其他任何壓縮,因此,BMP文件所占用的空間很大.而且JPEG是一種很靈活的格式,具有調(diào)節(jié)圖像質(zhì)量的功能,允許用不同的壓縮比例對文件進行壓縮,支持多種壓縮級別.2總體設(shè)計1.1 圖片顯示的根本原理BMP是一種與硬件設(shè)備無關(guān)的圖像文件格式,使用非常廣.它采用位映射存儲格式,除了圖像深度可選以外,不采用其他任何壓縮,因此,BMP文件所占用的空間很大.BMP文件的圖像深度可選Ibit、4bit>8bit、16bit>24bit及32bitoBMP文件存儲數(shù)據(jù)時,圖像的掃描方式是按從左到右、從下到

5、上的順序.JPEG是最常用的圖像文件格式,由一個軟件開發(fā)聯(lián)合會組織制定,是一種有損壓縮格式,能夠?qū)D像壓縮在很小的儲存空間,圖像中重復(fù)或不重要的資料會被喪失,因此容易造成圖像數(shù)據(jù)的損傷.尤其是使用過高的壓縮比例,將使最終解壓縮后恢復(fù)的圖像質(zhì)量明顯降低,如果追求高品質(zhì)圖像,不宜采用過高壓縮比例.但是JPEG壓縮技術(shù)十分先進,它用有損壓縮方式去除冗余的圖像數(shù)據(jù),在獲得極高的壓縮率的同時能展現(xiàn)十分豐富生動的圖像,換句話說,就是可以用最少的磁盤空間得到較好的圖像品質(zhì).而且JPEG是一種很靈活的格式,具有調(diào)節(jié)圖像質(zhì)量的功能,允許用不同的壓縮比例對文件進行壓縮,支持多種壓縮級別,壓縮比率通常在10:1到4

6、0:1之間,壓縮比越大,品質(zhì)就越低;相反地,壓縮比越小,品質(zhì)就越好.當然也可以在圖像質(zhì)量和文件尺寸之間找到平衡點.JPEG格式壓縮的主要是高頻信息,對色彩的信息保存較好,適合應(yīng)用于互聯(lián)網(wǎng),可減少圖像的傳輸時間,可以支持24bit真彩色,也普遍應(yīng)用于需要連續(xù)色調(diào)的圖像.2. 2圖片顯示設(shè)計分析在程序方面,采用分塊設(shè)計的方法,這樣既減小了編程難度、使程序易于理解,乂能便于添加各項功能.該程序?qū)崿F(xiàn)瀏覽PICTURE文件夾下的所有圖片及其名字,配合SD卡能夠?qū)崿F(xiàn)順序顯示出每一副圖片,并每隔3s左右切換一幅圖片.具體要實現(xiàn)的目標有:更新內(nèi)存卡,即圖片可進行變換;定時自動跳轉(zhuǎn)下一幅圖片飛可以通過按鍵快速

7、跳到下一幅圖片;可以通過按鍵返回到上一幅圖片;初始狀態(tài)顯示本次課設(shè)的根本信息;可對顯示信息的漢字進行自定義.2.3系統(tǒng)的結(jié)構(gòu)框圖2.1系統(tǒng)結(jié)構(gòu)框圖3詳細設(shè)計2.1 硬件設(shè)計3. 1.1ALIENTEKMiniSTM32開發(fā)板簡介ALIENTEKMiniSTM32開發(fā)板是一款迷你型的開發(fā)板,小巧而不小氣,簡約而不簡單.它的外觀尺寸只有8cm*10cm大小,板子的設(shè)計充分考慮了本錢與功能這兩個矛盾面,再結(jié)合實際使用的經(jīng)驗及STM32的特點,可有可無的選擇性價比最高的留下,最終確定了這樣的設(shè)計.其資源豐富,設(shè)計靈活.特點包括:1小巧.整個板子尺寸為8cm*10cm*2cm.2靈活.板上除晶振外的所有

8、的10口全部引出,特別還有GPI0A和GPI0B的10口是按順序引出的,可以極大的方便大家擴展及使用,另外板載獨特的一鍵下載功能,防止了頻繁設(shè)置BO、B1帶來的麻煩,直接在電腦上一鍵下載.3資源豐富.板載十多種外設(shè)及接口,可以充分挖掘STM32的潛質(zhì).4質(zhì)量過硬.沉金PCB+全新優(yōu)質(zhì)元器件+定制全銅鍍金排針/排座+電源TVS保護,堅假設(shè)磐石.3.1.2功能簡介開機的時候先檢測SD卡是否存在,然后初始化FAT文件系統(tǒng),在這之后開始查找根目錄下的PICTURE文件夾,如果找到那么顯示該文件夾下面的圖片,循環(huán)顯示,通過按KEY0和KEY1可以快速瀏覽下一張和上一張.如果未找到圖片文件夾/圖片,那么提

9、示錯誤.同樣我們也是用LEDO來指示程序正在運行.所要用到的硬件資源如下:1STM32o2夕卜部LEDO.3) TFTLCD液晶模塊.4) KEYO,KEYlo5) SD卡.1、STM32的簡單介紹FBATPCI3g0KUO5C32K15O5C32PDGOSCWPD1QSCOUTXRSTVDDVSSP0ADC10PCIADC11POAEJC12FC3ADC13FB0TTMJCHJRBSlfcHZCHiBOOTOP37IX1iDAHM<CH2Pafi.CCrscLTtM4_CHlPB5I2C!SXfBAIP34JNTR$rPB3nDOTRACES宙OPD2TIMETRVSSAVDDAPAa

10、UrKin>/ADC&TIXD_CHl_EIKFAI.XDCITOCCH?PA2U2IXADC2TlM2CHJPA3Q_RX.ADC3TlMFC朋VSSTODPA4SPHN4RX4PALNCANPC12penpciuPA15JTDIPA14JTCK5WCLKVDDVS5PAMJTMSSWDKiTX.USBDPTIML£IRPR55PliSCKADC5PACANPA6$Fn:MlSOADC6TlM3PAlft-UI_RXTrMLCH3PA75PHMOTADCTTIM.lCH?PA9UITXTIMICH2PC4ADCi4PCSADC15PBflADCSTINBCH3FBIA

11、DC9TIM3CH42WOTIPBioncj5cLsTXFBHI2C2SDAU3RXvssPA&TIMLCHINICOQT*C8K?76PB15$F2_MOSITIMIEXPBHSPI2MISCTDrllCH2NPB13SPI2SOCTIMrCHlNVDDPBll'SPDNSSI2C2SMBMirMCBKINJL4THT41-JZ+±±±wi±*STht52F03RET6圖3.1STM32原理圖選擇STM32F103RBT6作為MCU,原因是其性價比高,128KFLASH、20KSRAM、2個SPI、3個串口、1個USB、1個CAN、2個

12、12位的ADC、RTC、51個可用10腳,所以我們選擇了它作為我們的主芯片.2、外部LEDO圖3.2外部LEDO原理圖其中PWR是系統(tǒng)電源指示燈,為藍色.LEDO和LED1分別接在PA8和PD2±,PA8還可以通過TIM1的通道1的PWM輸出來限制DSO的亮度.3、TFTLCD液晶模塊2.472.8TCD/OLEDGND321TPE、4下當LCDCS1LCDVR3RESET5LCDDITLCDD39LCDDS"LCDh13'LCDD915LCDDU17'LCDDI9LCDDllLCDBL23"<C3.3TMISO294.7K10R31TCS3

13、3LCDCSRSWR/CLKRDRSTDB1DB2DB3DB4DBSDB6DB7DBSDBIODBUDB12DB13DBUDB15DB16DB17GNDBLVDD3.3DD3.3GNDGNDBLVDDsnsoMOSIT.PENMOTCSCLK2.4728TLCDTFTLCD1LCDRS4LCDRD6LCDDO3LCDD:10LCDD412LCDD614LCDD816LCDDIOOLED20LCDD14IC30一一-1一24VCC3.3J1042628VCC30TMOSI34TSCK圖3.3TFTLCD液晶顯示原理圖IOLEDVCC104GND#“3.3TFT.LCD是一個通用的液晶模塊接口.O

14、LED是一個給OLED顯示模塊供電的接口,它和TFT_LCD拼接在一起<>當使用2.4'/2.8'的LCD時,我們接到TFT.LCD上就可以了,而當我們使用ALIENTEK的OLED模塊時,那么接OLED排陣做電源,同時會連接到TFT_LCD上的局部管腳,從而實現(xiàn)OLED與MCU的連接.KEYO和KEY1用作普通按鍵輸入,分別連接在PA13和PA15上,他們都連接在了JTAG相關(guān)的引腳上KEYO還連接在SWDIO±,KEYO和KEY1還和PS/2的DAT和CLK線共用,他們都通過JTAG的上拉電阻來提供上拉.WK_UP按鍵連接到PA0STf32的WKUP引

15、腳,它除了可以用作普通輸入按鍵外,還可以用作STM32的喚醒輸入.這個按鍵是高電平觸發(fā)的.5、SD卡SDCARDDATA2CDDATA3CMDVSSVDDCLKVSSDATAODATA19"TSDCS2SPHMOSI35SPHSCK67SPI1MISOTSDCSSPUMOSISPI1SCKSPI1KflSORlL罕3Ed"CDGNDWP10FGNDsdcard圖3.5SD卡局部原理圖插入SD卡可以外擴大容量存儲設(shè)備,可以用來記錄數(shù)據(jù).SD卡我們使用的是SPI模式通信,SD卡的SPI接口連接到STM32的SPI1上,SD_CS接在PA3上.3.2軟件設(shè)計圖片顯示系統(tǒng)需要有ST

16、M32開發(fā)板配合SD卡使用,因此其程序需要分為以下幾個文件夾,硬件組成文件HARDWARE系統(tǒng)文,可以用來顯示漢字的TEXT文件,用來識別圖片的JPEG文件用來讀取SD卡上的圖片文件的FAT文件以及存放主程序文件USER文件件,和STM32的系統(tǒng)文件SYSFILEo3.2.1主函數(shù)局部intmain(void)u8i;u8key;FilelnfoStruct*FileInfo;u16pic_cnt=O;u16index=O;u16time=0;Stm32_Clock_Init(9);delay_init(72);uart_init(72,9600);LCD_Init();KEYnit();LE

17、Dnit();SPI_Flashnit();if(Font_Init()POINT_COLOR=RED;LCD_ShowString(60,50,"MiniSTM32");LCD_ShowString(60,70,"FontERROR1');while(l);)whi!e(SysInfoGet(1)FAT_Init();SDnitialize();LEDO=!LEDO:LCD_Fill(60,130,240,170,WHITE);delay_ms(500);CurDirCluster=PICCLUSTER:while(l)pic_cnt=0;Get_Fil

18、e_Info(Cur_Dir_Cluster,Fileinfo,TPEGIT_JPGIT_BMP,&pic_cnt);if(pic_cnt=O)LCD_Clear(WHITE);while(l)if(time%2=0)elseLCD_CIear(WHITE);time+;de!ay_ms(300);FileInfo=&FJnfo0;.index=l;while(l)Get_Filenfo(Cur_Dir_Cluster,Fileinfo,TPEGIT_JPGIT_BMP,&index);LCD_Clear(WHITE);AI_LoadPicFile(FileInfo,0

19、,0,240,320);POINT_COLOR=RED;Show_Str(0,0,FileInfo->F_Name,16,1);while(l)key=KEY_Scan();if(key=l)break;elseif(key=2)if(index>l)index-=2;elseindex=pic_cnt-1;break;delay_ms(l);time+;if(time%100=0)LED0=!LED0;if(time>3000)time=0;break;)index+;if(index>pic_cnt)index=l;)3.2.2硬件局部程序voidKEYJnit(v

20、oid)/鍵盤相應(yīng)程序RCC->APB2ENRI=1«2;GPIOA->CRL&=OXFFFFFFFO;GPIOA->CRLI=0X00000008;GPIOA->CRH&=OXOFOFFFFF:GPIOA->CRHI=0X80800000;GPIOA->ODRI=1«13;GPIOA->ODRI=1«15;u8KEY_Scan(void)staticu8key_up=l;JTAG_Set(JTAG_SWD_DISABLE);if(key_up&&(KEYO=OIIKEY1=OIIKEY2=

21、1)delay_ms(10);key_up=O;if(KEYO=O)JTAG_Set(SWD_ENABLE);return1;elseif(KEYl=O)JTAG_Set(SWD_ENABLE);return2;)elseif(KEY2=l)JTAG_Set(SWD_ENABLE);return3;)elseif(KEYO=1&&KEY1=1&&KEY2=0)key_up=l;JTAG_Set(SWD_ENABLE);return0;voidLED_Init(void)/led相應(yīng)程序RCC->APB2ENRI=1«2;RCC->APB2E

22、NRI=1«5;GPIOA->CRH&=OXFFFFFFFO;GPIOA->CRHI=0X00000003;GPIOA->ODRI=1«8;GPIOD->CRL&=OXFFFFFOFF;GPIOD->CRLI=0X00000300;GPIOD->ODRI=1«2;voidSPIxJnit(void)/SD卡驅(qū)動程序RCC->APB2ENRI=1«2;RCC->APB2ENRI=1«12;GPIOA->CRL&=OXOOOFFFFF;GPIOA->CRLI=OXB

23、BBOOOOO;GPIOA->ODRI=OX7«5;SPI1->CR1I=O«1O;SPI1->CR1I=1«8;SPI1->CR1I=O«11;SPI1->CR1I=1«O:SPI1->CR1I=O«7;SPI1->CR1I=1«9;SPI1->CR1I=1«2;SPI1->CR1I=1«1;SPI1->CR1I=7«3;SPI1->CR1I=1«6;SPIx_ReadWriteByte(Oxff);voidSPIx_

24、SetSpeed(u8SpeedSet)SPIb>CRl&=0XFFC7;switch(SpeedSet)caseSPI_SPEED_2:caseSPI_SPEED_4:caseSPI_SPEED_8:caseSPI_SPEED6:caseSPI_SPEED_256:SPI1->CR1I=O«3;break;SPI1->CR11=1«3;break;SPI1->CRll=2«3;break;SPI1->CRll=3«3;break;SPI1->CRll=7«3;break;SPI1->CR1I=

25、1«6;)u8SPIx_ReadWriteByte(u8TxData)u8retry=O;while(SPIl->SR&1«1)=0)retry+;if(retry>200)return0;SPI1->DR=TxData;retry=O;while(SPIl->SR&l«0)=0)retry+;if(retry>200)return0;)returnSPI1->DR;3.2.3識別圖片F(xiàn)ilelnfoStruct*CurFile;當前解碼/操作的文件voidAI_Drow_Init(void)floattenip

26、jempl;temp=(float)PICINFO.S_WidtlVPICINFO.ImgWidth;tempi=(float)PICINFO.S_Height/PICINFO.ImgHeight;if(temp<temp1)templ=temp;取較小的那個if(temp1>1)temp1=1;使圖片處于所給區(qū)域的中間PICINFO.S_XOFF+=(PICINFO.S_Width-templ*PICINFO.ImgWidth)/2;PICINFO.S_YOFF+=(PICINFO.S_Height-temp1*PICINFO.ImgHeight)/2;temp1*=10000;

27、擴大10000倍PICINFO.Div_Fac=temp1;PICINFO.staticx=500;PICINFO.staticy=500;/放到一個不可能的值上面初始化量化表,全部清零voidInitTable(void)shorti,j;sizei=sizej=0;PICINFO.ImgWidth=PICINFO.ImgHeight=0;rrun=vvakie=0;BitPos=0;CurByte=0;IntervalFlag=FALSE;restart=0;for(i=0;i<3;i+)量化表for(j=0;j<64;j+)qt_tableij=O;comp_num=0;Hu

28、fTabIndex=0;將解出的字按RGB形式存儲voidStoreBuffer(void)shorti=0j=0;unsignedcharR,G,B;inty,u,v,rr,gg,bb;u16color;u16realx=sizej;u16realy=0;for(i=0;i<SampRate_Y_V*8;i+)if(sizei+i)<PICINFO.ImgHeight)realy=PICINFO.Div_Fac*(sizei+i)/10000;if(!IsElementOk(realxjeaIy,0)continue;for(j=0;j<SampRate_Y_H*8;j+)

29、if(sizej+j)<PICINFO.ImgWidth)realx=PICINFO.Div_Fac*(sizej+j)/10000;if(!IsElementOk(realx,realy,1)continue;y=Yi*8*SampRate_Y_H+j;u=U(i/V_YtoU)*8*SampRate_Y_H+j/H_YtoU;v=V(i/V_YtoV)*8*SampRate_Y_H+j/H_YtoV;rr=(y«8)+18*u+367*v)»8;gg=(y«8)-159*u-220*v)»8;bb=(y«8)+411*u-29*v)&

30、#187;8;R=(unsignedchar)rr;G=(unsignedchar)gg;B=(unsignedchar)bb;if(rr&OxffffffOO)if(rr>255)R=255;elseif(rr<0)R=0;if(gg&OxffffffOO)if(gg>255)G=255;elseif(gg<0)G=0;if(bb&OxffffffOO)if(bb>255)B=255;elseif(bb<0)B=0;co!or=R»3;color=color«6;colorl=(G»2);color=c

31、olor«5;colorl=(B»3);POINT_COLOR=color;LCD_DrawPoint(realx+PICINFO.S_XOFF,realy+PICINFO.S_YOFF);elsebreak;)elsebreak;)voidIQtIZzMCUComponent(shortflag)shortH,VV;shortij;short*pQtZzMCUBuffer;short*pMCUBuffer;switch(flag)case0:H=SampRate_Y_H;VV=SampRate_Y_V;pMCUBuffer=MCUBuffer;pQtZzMCUBuffer

32、=QtZzMCUBuffer;break;case 1: H=SampRate_U_H;VV=SampRate_U_V;pMCUBuffer=MCUBuffer+Y_in_MCU*64;PQtZzMCUBuffer=QtZzMCUBuffer+Y_in_MCU*64;break;case 2: H=SampRate_V_H;VV=SampRate_V_V;pMCUBuffer=MCUBuffer+(Y_in_MCU+U_in_MCU)*64;pQtZzMCUBuffer=QtZzMCUBuffer+(Y_in_MCU+U_in_MCU)*64;break;)for(i=O;i<VV;i+

33、)for(j=O;j<H;j+)IQtIZzBlock(pMCUBuffer+(i*H+j)*64,pQtZzMCUBuffer+(i*H+j)*64,flag);3.2.4FAT系統(tǒng)DWORDFirstDirClust;DWORDFirstDataSector;WORDBytesPerSector;DWORDFATsectors;WORDSectorsPerClust;DWORDFirstFATSector;DWORDFirstDirSector;fat32DWORDRootDirSectors;DWORDRootDirCount;BYTEFAT32_Enable;DWORDCurDi

34、rCluster;FATTABLEFATTAB;FilelnfoStructFJnfo3;u8fat_buffer512;u8LongNameBufferMAX_LONG_NAME_SIZE:BOOLLongNameFlag=0;constunsignedchar*filetype23="MP1","MP2","MP3'"MP4";'M4A","3GP","3G2,OGG","ACC","WMA";'WAV,“MIDY'FLA",“LRC;'TXTJC7H丫“JFON“JSYS“JBMPJJPG

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論