![基于STM32在LCD上顯示SD卡中BMP圖片的設(shè)計(jì)_第1頁](http://file4.renrendoc.com/view/d6ffcbdd6e2549b0c51d90b497a2407e/d6ffcbdd6e2549b0c51d90b497a2407e1.gif)
![基于STM32在LCD上顯示SD卡中BMP圖片的設(shè)計(jì)_第2頁](http://file4.renrendoc.com/view/d6ffcbdd6e2549b0c51d90b497a2407e/d6ffcbdd6e2549b0c51d90b497a2407e2.gif)
![基于STM32在LCD上顯示SD卡中BMP圖片的設(shè)計(jì)_第3頁](http://file4.renrendoc.com/view/d6ffcbdd6e2549b0c51d90b497a2407e/d6ffcbdd6e2549b0c51d90b497a2407e3.gif)
![基于STM32在LCD上顯示SD卡中BMP圖片的設(shè)計(jì)_第4頁](http://file4.renrendoc.com/view/d6ffcbdd6e2549b0c51d90b497a2407e/d6ffcbdd6e2549b0c51d90b497a2407e4.gif)
![基于STM32在LCD上顯示SD卡中BMP圖片的設(shè)計(jì)_第5頁](http://file4.renrendoc.com/view/d6ffcbdd6e2549b0c51d90b497a2407e/d6ffcbdd6e2549b0c51d90b497a2407e5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、.1 第二工業(yè)大學(xué)實(shí) 訓(xùn) 報(bào) 告課程名稱: 電信專業(yè)綜合實(shí)踐 學(xué)生:*:201*4820* 201*4820* 201*4820*學(xué)院名稱: 工學(xué)部 專業(yè)班級: *電信A1 目錄 TOC o 1-3 h z u HYPERLINK l _Toc456112296摘要:1HYPERLINK l _Toc456112298第一章 緒 論1HYPERLINK l _Toc4561122991.2本課題設(shè)計(jì)的背景1HYPERLINK l _Toc4561123001.2 本課題設(shè)計(jì)容2HYPERLINK l _Toc456112301第二章 實(shí)驗(yàn)方案的總體設(shè)計(jì)3HYPERLINK l _Toc4561
2、123022.1詳細(xì)設(shè)計(jì)組成框圖:3HYPERLINK l _Toc4561123032.2相關(guān)硬件簡介3HYPERLINK l _Toc4561123042.3相關(guān)硬件原理圖12HYPERLINK l _Toc456112305第三章 設(shè)計(jì)流程圖19HYPERLINK l _Toc456112306第四章 硬件設(shè)計(jì)20HYPERLINK l _Toc4561123074.1中英文顯示局部設(shè)計(jì)20HYPERLINK l _Toc4561123084.2 BMP圖片局部設(shè)計(jì)21HYPERLINK l _Toc4561123094.3 SD卡讀取的容22HYPERLINK l _Toc456112
3、310第五章 軟件設(shè)計(jì)23HYPERLINK l _Toc4561123115.1主函數(shù)局部程序設(shè)計(jì)23HYPERLINK l _Toc4561123125.2按鍵程序設(shè)計(jì)27HYPERLINK l _Toc4561123135.3 LED燈程序設(shè)計(jì)33HYPERLINK l _Toc456112314第六章 系統(tǒng)調(diào)試結(jié)果及問題分析3 PAGEREF _Toc456112314 h 5HYPERLINK l _Toc4561123156.1 系統(tǒng)調(diào)試后的實(shí)驗(yàn)現(xiàn)象3 PAGEREF _Toc456112315 h 5HYPERLINK l _Toc4561123166.2 遇到的問題及解決方法3
4、8HYPERLINK l _Toc456112317第七章 總結(jié)39HYPERLINK l _Toc4561123187.1思考與總結(jié)39HYPERLINK l _Toc4561123197.2參考文獻(xiàn):40基于STM32在LCD上顯示SD卡中BMP圖片的設(shè)計(jì)摘要:設(shè)計(jì)了一種基于STM32的處理器的按鍵式控制的BMP圖片切換系統(tǒng)。在設(shè)計(jì)過程中采用了SD卡中讀取BMP格式圖片及漢字字庫,使LCD屏幕顯示相關(guān)提示容及設(shè)定格式的BMP圖片。完成了基于ARM最新Corte*-M3核的處理器STM32的BMP圖片切換系統(tǒng)的硬件電路和軟件程序的設(shè)計(jì),實(shí)現(xiàn)了一個能在存有限的片上系統(tǒng)中進(jìn)展BMP圖片切換的系統(tǒng)
5、。關(guān)鍵詞:BMP圖片;SD卡;ARM微控制器;STM32;片上系統(tǒng)第一章 緒 論1.1本課題設(shè)計(jì)的背景 隨著國民經(jīng)濟(jì)的起飛,現(xiàn)代社會的不斷進(jìn)步,廣告的在新時期又有了新的開展。 進(jìn)入新世紀(jì)LCD顯示屏的技術(shù)和產(chǎn)業(yè)都取得了長足的開展,作為重要的現(xiàn)代信息發(fā)布媒體之一,LCD顯示屏在證券交易、金融、交通、體育、廣告等領(lǐng)域被廣泛的應(yīng)用。伴隨社會信息化進(jìn)程的推進(jìn),LCD顯示屏技術(shù)也在不斷的推出新,應(yīng)用領(lǐng)域愈加廣闊。基于STM32的LCD顯示可以更好的滿足各種需求,也更便于操作和實(shí)現(xiàn)?,F(xiàn)基于STM32在液晶顯示屏幕上顯示文本及圖形。 目前,顯示技術(shù)和顯示工業(yè)的開展迅速。顯示技術(shù)是傳遞視覺的信息技術(shù)。液晶顯示
6、器件LCD是當(dāng)今最有開展前途的一種平板顯示器件,它具有很多獨(dú)到的優(yōu)異特性。它具有顯示信息多、易于多彩化、體積小、重量輕、功耗低、壽命長、價格低、無輻射、無污染、接口控制方便等優(yōu)點(diǎn)。截至目前,我國在液晶顯示取得較大進(jìn)步,我國LCD產(chǎn)業(yè)已經(jīng)走過了近30年的歷程.經(jīng)歷幾次大的投資浪潮之后,我國地已經(jīng)成為世界最大的TN-LCD(扭曲液晶顯示器)生產(chǎn)基地和主要的STN-LCD(超扭曲液晶顯示器)生產(chǎn)基地,并且從2003年開場,涉足TFT-LCD(薄膜晶體管液晶顯示器)領(lǐng)域.1.2 本課題設(shè)計(jì)容本次設(shè)計(jì)采用STM32ISO開發(fā)板,實(shí)現(xiàn)一個從SD卡讀取圖片容及漢子庫在LCD顯示屏上顯示由按鍵控制圖片切換的功
7、能。本實(shí)驗(yàn)用到的硬件局部主要有STM32開發(fā)板、USB線、LCD液晶模塊、SD卡、J-Link仿真器等主要局部組成。STM32開法板涉及Keil5程序的讀取,SD卡讀取裁剪過的圖片,最后通過J-Link仿真器加載后,在LCD顯示屏上顯示相關(guān)容,中英文容提示通過設(shè)置延時銜接,圖片通過按鍵直接控制。第二章 實(shí)驗(yàn)方案總體設(shè)計(jì)2.1詳細(xì)設(shè)計(jì)Key2STM32開發(fā)板SD卡蜂鳴器LED燈 LCD液晶模塊Key1按鍵區(qū)組成框圖:2.2相關(guān)硬件簡介 本節(jié)實(shí)驗(yàn)功能簡介:開機(jī)的時候先初始化SD卡,如果SD卡初始化完成,則讀取扇區(qū)0的數(shù)據(jù),然后通過串口打印到電腦上。如果沒初始化通過,則在LCD上提示初始化失敗。 同
8、樣用DS0來指示程序正在運(yùn)行。 所要用到的硬件資源如下:STM32開發(fā)板USB線LCD液晶模塊SD卡J-Link仿真器2.2.1 STM32開發(fā)板 STM32F103系列屬于中低端的32位ARM微控制器,該系列芯片是意法半導(dǎo)體ST公司出品,其核是Corte*-M3。該系列芯片按片F(xiàn)lash的大小可分為三大類:小容量16K和32K、中容量64K和128K、大容量256K、384K和512K。芯片集成定時器,CAN,ADC,SPI,I2C,USB,UART,等多種功能。分為三大類:LD(小于64K),MD小于256K,HD大于256K,STM32F103VET6類屬第三類。STM32F103ZET
9、6芯片介紹基于ARM Corte*-M3核心的32位微控制器,LQFP-144封裝.512K片F(xiàn)LASH相當(dāng)于硬盤,64K片RAM相當(dāng)于存,片F(xiàn)LASH支持在線編程(IAP).高達(dá)72M的頻率,數(shù)據(jù),指令分別走不同的流水線,以確保CPU運(yùn)行速度到達(dá)最大化.通過片BOOT區(qū),可實(shí)現(xiàn)串口下載程序(ISP).片雙RC晶振,提供8M和32K的頻率.支持片外高速晶振(8M),和片外低速晶振(32K).其中片外低速晶振可用于CPU的實(shí)時時鐘,帶后備電源引腳,用于掉電后的時鐘行走.42個16位的后備存放器(可以理解為電池保存的RAM),利用外置的紐扣電池,和實(shí)現(xiàn)掉電數(shù)據(jù)保存功能.支持JTAG,SWD調(diào)試.配
10、合廉價的J-LINK,實(shí)現(xiàn)高速低本錢的開發(fā)調(diào)試方案.多達(dá)80個IO(大局部兼容5V邏輯),4個通用定時器,2個高級定時器,2個根本定時器,3路SPI接口,2路I2S接口,2路I2C接口,5路USART,一個USB從設(shè)備接口,一個CAN接口,SDIO接口,可兼容SRAM,NOR和NAND Flash接口的16位總線-FSMC.3路共16通道的12位AD輸入,2路共2通道的12位DA輸出.支持片外獨(dú)立電壓基準(zhǔn).STM32開發(fā)板引腳圖2.2.2 USB線 USB開發(fā)涉及主機(jī)和設(shè)備,為了防止開發(fā)驅(qū)動程序,使用Windows自帶的驅(qū)動程序。所以設(shè)備枚舉成HID類設(shè)備。USB鼠標(biāo)就是標(biāo)準(zhǔn)的USB-HID設(shè)
11、備。不過操作系統(tǒng)阻止了應(yīng)用程序直接USB鼠標(biāo)返回的報(bào)告。所以本例使用自定義HID設(shè)備。一來免去了開發(fā)驅(qū)動程序,二來自定義的HID設(shè)備應(yīng)用程序和設(shè)備可以自由收發(fā)數(shù)據(jù)僅指數(shù)據(jù)容。 USB是一個外部總線標(biāo)準(zhǔn),用于規(guī)電腦與外部設(shè)備的連接和通訊。USB接口即插即用和熱插拔功能。USB接口可連接127種外設(shè),如鼠標(biāo)和鍵盤等。USB是在1994年底由英特爾等多家公司聯(lián)合在1996年推出后,已成功替代串口和并口,已成為當(dāng)今電腦與大量智能設(shè)備的必配接口。USB版本經(jīng)歷了多年的開展,到如今已經(jīng)開展為3.0版本.對于大多數(shù)工程師來說,開發(fā)USB2.0 接口產(chǎn)品主要障礙在于:要面對復(fù)雜的USB2.0協(xié)議、自己編寫US
12、B設(shè)備的驅(qū)動程序、熟悉單片機(jī)的編程。這不僅要求有相當(dāng)?shù)腣C編程經(jīng)歷、還能夠編寫USB接口的硬件固件程序。所以大多數(shù)人放棄了自己開發(fā)USB產(chǎn)品。為了將復(fù)雜的問題簡單化,達(dá)泰電子特別設(shè)計(jì)了USB2.0協(xié)議轉(zhuǎn)換模塊。USB20D模塊可以被看作是一個USB2.0協(xié)議的轉(zhuǎn)換器,將電腦的USB2.0接口轉(zhuǎn)換為一個透明的并行總線,就象單片機(jī)總線一樣。從而幾天之就可以完成USB2.0產(chǎn)品的設(shè)計(jì)。本實(shí)驗(yàn)用到的USB線 液晶顯示器LCD 控制器簡介 液晶顯示器(Liquid Crystal Display: LCD)的構(gòu)造是在兩片平行的玻璃當(dāng)中放置液態(tài)的晶體,兩片玻璃中間有許多垂直和水平的細(xì)小電線,透過通電與否來
13、控制桿狀水晶分子改變方向,將光線折射出來產(chǎn)生畫面。LCM(LCD Module)即LCD顯示模組、液晶模塊,是指將液晶顯示器件,連接件,控制與驅(qū)動等外圍電路,PCB電路板,背光源,構(gòu)造件等裝配在一起的組件。LCD,由于液晶顯示屏功耗低、體積小,承載的信息量大,因而被廣泛用于信息輸出、與用戶進(jìn)展交互。由于 STM32 部沒有集成專用的液晶屏和觸摸屏的控制接口,所以在顯示面板中應(yīng)自帶含有驅(qū)動芯片的驅(qū)動電路(液晶屏和觸摸屏的驅(qū)動電路是獨(dú)立的),STM32 芯片通過驅(qū)動芯片來控制液晶屏和觸摸屏。以本實(shí)驗(yàn)3.2 寸液晶屏(240*320)為例,它使用 ILI9341 芯片控制液晶屏,通過 *PT2046
14、 芯片控制觸摸屏。LCD 為非發(fā)光性的顯示裝置,它需要借助背光源才能到達(dá)顯示功能,LED 控制器就是用來控制液晶屏中的 LED 背光源。液晶顯示器在部電路構(gòu)造上主要有以下幾個局部構(gòu)成:1、驅(qū)動板也叫主板:主要是用以接收、處理從外部送進(jìn)來的模擬VGA或者數(shù)字DVI視頻信號,并通過屏線送出信號去控制液晶屏PANEL正常工作。驅(qū)動板上含有MCU單元,它是液晶顯示器的檢測控制中心和大腦。2、電源板:用于將90240V的交流電壓轉(zhuǎn)變?yōu)?2V、5V、3V等的直流電供給顯示器工作。本實(shí)驗(yàn)用的STM32開發(fā)板3、背光板也叫高壓板:用于將主板或電源板輸出的12V的直流電壓轉(zhuǎn)變?yōu)镻ANEL需要的高頻的150018
15、00V的高壓交流電,用于點(diǎn)亮PANEL的背光燈。電源板和背光板有時會做在一起也就是所謂的電源背光二合一板。4、液晶屏:液晶顯示用模塊,它是液晶顯示器的核心部件,其包含液晶板和驅(qū)動電路。其中,液晶屏是液晶顯示器部最為關(guān)鍵的部件,它對液晶顯示器的性能和價格具有決定性的作用。 本實(shí)驗(yàn)對應(yīng)的背光板程序程序很多不一一列舉,僅取局部1 ILI9341控制器構(gòu)造 液晶屏的控制芯片部構(gòu)造非常復(fù)雜 ,最主要的是位于中間GRAM(Graphics RAM),可以理解為顯存。GRAM 中每個存儲單元都對應(yīng)著液晶面板的一個像素點(diǎn)。它右側(cè)的各種模塊共同作用把 GRAM 存儲單元的數(shù)據(jù)轉(zhuǎn)化成液晶面板的控制信號,使像素點(diǎn)呈
16、現(xiàn)特定的顏色,而像素點(diǎn)組合起來則成為一幅完整的圖像。接口與 MCU 進(jìn)展通訊,MUC 通過 8080 接口與 ILI9341進(jìn)展通訊,從而它的控制存放器(CR)、地址計(jì)數(shù)器(AC)、及 GRAM。2像素點(diǎn)的數(shù)據(jù)格式 圖像數(shù)據(jù)的像素點(diǎn)由紅(R)、綠(G)、藍(lán)(B)三原色組成,三原色根據(jù)其深淺程度被分為0255 個級別,它們按不同比例的混合可以得出各種色彩。ILI9341 最高能夠控制 18 位的 LCD,但為了數(shù)據(jù)傳輸簡便,我們采用它的 16 位控制模式,以 16 位描述的像素點(diǎn)。按照標(biāo)準(zhǔn)格式,16 位的像素點(diǎn)的三原色描述的位數(shù)為 R:G:B =5:6:5,描述綠色的位數(shù)較多是因?yàn)槿搜蹖G色更為
17、敏感。3ILI9341的通訊時序目前,大多數(shù)的液晶控制器都使用 8080 或 6800 接口與 MCU 進(jìn)展通訊,它們的時序十分相似,本實(shí)驗(yàn)以 ILI9341 使用的 8080 通訊時序進(jìn)展分析.ILI9341 的 8080 接口有 5 條根本的控制信號線:用于片選的 CS* 信號線;用于寫使能的 WR* 信號線;用于讀使能的 RD* 信號線;用于區(qū)分?jǐn)?shù)據(jù)和命令的 D/C* 信號線;(用于復(fù)位的 RES* 信號線。見圖 23-2。使用18條數(shù)據(jù)線的8080接口寫命令時序 由圖可知,寫命令時序由 CS* 信號線拉低開場,D/C* 信號線也置低電平表示寫入的是命令地址(可理解為命令編碼,如軟件復(fù)位
18、命令:0*01),以 WR* 信號線為低,RD* 信號為高表示數(shù)據(jù)傳輸方向?yàn)閷懭?,同時,在數(shù)據(jù)線17:0輸出命令地址,在第二個傳輸階段傳送的為命令的參數(shù),所以 D/C* 要置高電平,表示寫入的是命令數(shù)據(jù)。 當(dāng)我們需要向 GRAM 寫入數(shù)據(jù)的時候,把 CS* 信號線拉低后,把 D/C* 信號線置為高電平,這時由 D17:0傳輸?shù)臄?shù)據(jù)則會被 ILI9341 保存至它的 GRAM 中。4給整個屏幕上色 再次回到 ILI9341_Init 函數(shù),它調(diào)用完 ILI9341_REG_Config()初始化了液晶屏后,向ILI9341 發(fā)送了一個命令寫 GRAM 容,即后面發(fā)送的數(shù)據(jù)都被解析為顯示到屏幕像素
19、點(diǎn)的數(shù)據(jù)。代碼中使用 for 循環(huán)把語句 ILI9341_Write_Data(GBLUE)執(zhí)行了 320*240 次,即把所有像素點(diǎn)都顯示為 GBLUE 顏色。5液晶屏畫點(diǎn)函數(shù) LCD_Init ()初始化了液晶屏后,可以控制液晶上每個像素點(diǎn)的顏色。如果能夠?qū)崿F(xiàn)一個畫點(diǎn)函數(shù),在指定的(*,y)坐標(biāo)像素點(diǎn)上顯示指定的顏色,則就能夠?qū)崿F(xiàn)一切液晶屏最復(fù)雜的顯示功能,如在液晶屏指定位置顯示形狀、文字、圖像,都可以通過調(diào)用畫點(diǎn)函數(shù)或以類似 的 方 式 控 制 液 晶 的 像 素 點(diǎn) 。 本 實(shí) 驗(yàn) 中 的 畫 點(diǎn) 函 數(shù) ILI9341_SetPointPi*el() 在bsp_ili9341_lcd
20、.c 文件中定義,見代碼清單 5。代碼清單5: ILI9341_SetPointPi*el()函數(shù) 代碼清單52.2.4 J-Link ARM主要特點(diǎn) J-Link是SEGGER公司為支持仿真ARM核芯片推出的JTAG仿真器。配合IAREWAR,ADS,KEIL,WINARM,RealView等集成開發(fā)環(huán)境支持所有ARM7/ARM9/ARM11,Corte*M0/M1/M3/M4,Corte*A5/A8/A9等核芯片的仿真,與IAR,Keil等編譯環(huán)境無縫連接,操作方便、連接方便、簡單易學(xué),是學(xué)習(xí)開發(fā)ARM最好最實(shí)用的開發(fā)工具。產(chǎn)品規(guī)格:電源USB供電,整機(jī)電流50mA支持的目標(biāo)板電壓1.23
21、.3V,5V兼容目標(biāo)板供電電壓4.55V(由USB提供5V)目標(biāo)板供電電流最大300mA,具有過流保護(hù)功能工作環(huán)境溫度+5+60存儲溫度-20+65濕度13) i=13; /按key1鍵,圖片按順序顯示下一 圖片,直到i=13 if( Key_Scan(macKEY2_GPIO_PORT,macKEY2_GPIO_PIN) = KEY_ON ) i-; if(i0) i=0; /按key2鍵,圖片按順序顯示上一圖片,直到i=0 switch(i) / 用于多分支選擇的switch語句 switch(表達(dá)式) case常量表達(dá)式1:語句1; case常量表達(dá)式2:語句2; case常量表達(dá)式n:
22、語句n; default:語句n+1; case0:Lcd_show_bmp(0,0,/wildfire_1.bmp); break; /顯示wildfire_1.bmp圖片case 1:Lcd_show_bmp(0, 0,/logo1_1.bmp);break; /顯示logo1_1.bmp圖片 case 2:LED1( OFF );Lcd_show_bmp( 0,0,/pic1_1.bmp);break;/燈滅,顯示pic1_1.bmp圖片case3:LED1( ON );Lcd_show_bmp( 0,0,/pic2_1.bmp);break;/燈亮,顯示pic2_1.bmp圖片case
23、 4:LED1( OFF );Lcd_show_bmp( 0,0,/pic3_1.bmp);break;/燈滅,顯示pic3_1.bmp 圖片case5:LED1( ON );Lcd_show_bmp( 0,0,/pic4_1.bmp);break; /燈亮,顯示 pic4_1.bmp圖片case 6:LED1( OFF );Lcd_show_bmp( 0,0,/pic5_1.bmp);break;/燈滅,顯示pic5_1.bmp圖片case7:LED1( ON );Lcd_show_bmp( 0,0,/pic6_1.bmp);break;/燈亮,顯示pic6_1.bmp圖片case8:LED
24、1( OFF );Lcd_show_bmp( 0,0,/pic7_1.bmp);break;/燈滅,顯示pic7_1.bmp圖片case 9:LED1( ON );Lcd_show_bmp( 0,0,/pic8_1.bmp);break;/燈亮,顯示pic6_1.bmp圖片case10:LED1( OFF );Lcd_show_bmp( 0,0,/pic9_1.bmp);break;/燈滅,顯示pic9_1.bmp圖片case11:LED1( ON );Lcd_show_bmp( 0,0,/pic10_1.bmp);break;/燈亮,顯示pic10_1.bmp圖片case 12:LED1(
25、OFF );Lcd_show_bmp( 0,0,/pic11_1.bmp);break; default:;/燈滅,顯示pic10_1.bmp圖片 /* end of file */主程序這里用到了switch語句,以到達(dá)按鍵key1和key2控制BMP圖片頁數(shù)上翻下翻的目的,switch語句后面圓括號中表達(dá)式的值,然后用此值依次與各個case語句的表達(dá)式比較,即執(zhí)行其后的語句,然后不斷進(jìn)展判斷,繼續(xù)執(zhí)行后面所有的case后的語句。假設(shè)圓括號中表達(dá)式都不等,則執(zhí)行default后面的語句,然后退出switch語句,程序流程轉(zhuǎn)向開關(guān)語句的下一個語句。在實(shí)驗(yàn)操作的過程中,由于要按下按鍵,每按一次由
26、上面程序可以看出i會對應(yīng)不同的數(shù),從而會對應(yīng)switchi中不同的情況,從而對應(yīng)不同的BMP圖片,由i的不同控制本實(shí)驗(yàn)圖片的切換。下面是不同的BMP圖片在i變化時對應(yīng)出現(xiàn)的情況:5.2按鍵程序設(shè)計(jì) 這里由于USER文件里沒有bsp_key.c,為了能使按鍵被調(diào)用,需要重建路徑,在USER文件里參加bsp_key.c文件,以到達(dá)兼容的目的,當(dāng)USER中出現(xiàn)bsp_key.c時,重新加載后便可正常使用按鍵,這里由于設(shè)計(jì)需要KEY1和KEY2兩個鍵,則需對相關(guān)程序進(jìn)展修改。注:源程序key.c中只有key1鍵發(fā)揮作用,這里由于實(shí)驗(yàn)設(shè)計(jì)需要,進(jìn)展了相應(yīng)的程序修改、添加,使得key1和key2都可以在程
27、序下載后發(fā)揮作用,從而控制實(shí)驗(yàn)現(xiàn)象。USER/bsp_key.c路徑創(chuàng)立過程如下:USER文件下參加bsp_key.c后,按鍵程序才可以真正意義上被調(diào)用,程序加載后,按鍵才可以發(fā)揮作用,否則對應(yīng)庫函數(shù)無法被調(diào)用。Key 路徑的生成bep_key.c正常參加后USER文件下顯示 由于本實(shí)驗(yàn)在設(shè)計(jì)是用到了LED燈及蜂鳴器,由于USER文件下無相應(yīng)文件,均按照此處路徑創(chuàng)立添加,以實(shí)現(xiàn)相應(yīng)的功能,最終添加完成的USER文件下顯示 由于本實(shí)驗(yàn)要用到key1和key2兩個鍵,以控制圖片的切換,則需對原有程序進(jìn)展相應(yīng)的修改,這里對應(yīng)更改后的key.c程序如下:*include bsp_key.h / 不準(zhǔn)確
28、的延時static void Key_Delay(_IO u32 nCount)for(; nCount != 0; nCount-); /* * brief 配置按鍵用到的I/O口 * param 無 * retval無 */void Key_GPIO_Config(void) /按鍵配置GPIO_InitTypeDef GPIO_InitStructure;/*開啟按鍵端口PA的時鐘 */RCC_APB2PeriphClockCmd(macKEY1_GPIO_CLK,ENABLE);GPIO_InitStructure.GPIO_Pin = macKEY1_GPIO_PIN; / IO 口
29、做輸入口時,不用設(shè)置輸出頻率/GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; GPIO_Init(macKEY1_GPIO_PORT, &GPIO_InitStructure); /* * 函數(shù)名:key _Scan * 描述:檢測是否有按鍵按下 * 輸入: GPIO*:*可以使A,B,C,D或者E * GPIO_Pin:待讀取的端口位 * 輸出:KEY_OFF沒按下按鍵、KEY_ON按下按鍵 */uint8_t Key_Scan(GPIO_TypeD
30、ef* GPIO*,uint16_t GPIO_Pin)/*檢測是否有按鍵按下 */if(GPIO_ReadInputDataBit(GPIO*,GPIO_Pin) = KEY_ON ) /*等待按鍵釋放 */while(GPIO_ReadInputDataBit(GPIO*,GPIO_Pin) = KEY_ON); return KEY_ON; elsereturn KEY_OFF;/*END OF FILE*/使用KEY1和KEY2鍵的程序*ifndef _KEY_H*define_KEY_H*include stm32f10*.h*define KEYI_PA0*define macKE
31、Y1_GPIO_CLK RCC_APB2Periph_GPIOA*define macKEY1_GPIO_PORT GPIOA *define macKEY1_GPIO_PIN GPIO_Pin_0*define KEY2_PC13*define macKEY2_GPIO_CLK RCC_APB2Periph_GPIOC*define macKEY2_GPIO_PORT GPIOC *define macKEY2_GPIO_PIN GPIO_Pin_13/*按鍵按下標(biāo)置,按鍵k1和k2默認(rèn)是低電平,按鍵按下的時候是高電平KEY_ON 0KEY_OFF 1*/*define KEY_ON1*de
32、fine KEY_OFF0void Key_GPIO_Config(void);uint8_t Key_Scan(GPIO_TypeDef* GPIO*,uint16_t GPIO_Pin);*endif /* _LED_H */5.3 LED燈程序設(shè)計(jì)由于本實(shí)驗(yàn)在圖片頁數(shù)為奇數(shù)時LED燈點(diǎn)亮,而原程序無相應(yīng)的配置程序,按照上述按鍵程序的方式參加相應(yīng)的程序,這里L(fēng)ED燈配置程序如下:void LED_GPIO_Config(void)/*定義一個GPIO_InitTypeDef類型的構(gòu)造體*/GPIO_InitTypeDef GPIO_InitStructure;/*開啟GPIOB和GPIOF
33、的外設(shè)時鐘*/RCC_APB2PeriphClockCmd( macLED1_GPIO_CLK|macLED2_GPIO_CLK|macLED3_GPIO_CLK, ENABLE); /*選擇要控制的GPIOB引腳*/GPIO_InitStructure.GPIO_Pin = macLED1_GPIO_PIN;/*設(shè)置引腳模式為通用推挽式輸出*/GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; /*設(shè)置引腳速率為50MHz */ GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; /*調(diào)用庫函數(shù),初
34、始化GPIOB0*/GPIO_Init(macLED1_GPIO_PORT, &GPIO_InitStructure);/*選擇要控制的GPIOF引腳*/ GPIO_InitStructure.GPIO_Pin = macLED2_GPIO_PIN;/*調(diào)用庫函數(shù),初始化GPIOF7*/GPIO_Init(macLED2_GPIO_PORT, &GPIO_InitStructure);/*選擇要控制的GPIOF引腳*/GPIO_InitStructure.GPIO_Pin = macLED3_GPIO_PIN;/*調(diào)用庫函數(shù),初始化GPIOF7*/GPIO_Init(macLED3_GPIO_
35、PORT, &GPIO_InitStructure); /* 關(guān)閉所有LED燈*/GPIO_SetBits(macLED1_GPIO_PORT, macLED1_GPIO_PIN);/* 關(guān)閉所有LED燈*/GPIO_SetBits(macLED2_GPIO_PORT, macLED2_GPIO_PIN); /* 關(guān)閉所有LED燈*/GPIO_SetBits(macLED3_GPIO_PORT, macLED3_GPIO_PIN); 第六章 系統(tǒng)調(diào)試結(jié)果及問題分析6.1 系統(tǒng)調(diào)試后的實(shí)驗(yàn)現(xiàn)象 將STM32開發(fā)板供電,把文件 HZLIB.bin與BMP格式圖片wildfire_1.bmp、log
36、o1_1.bmp、pic1_1.bmp、pic2_1.bmp、pic3_1.bmp、pic4_1.bmp、pic5_1.bmp、pic6_1.bmp、pic7_1.bmp、pic8_1.bmp、pic9_1.bmp、pic10_1.bmp、pic11_1.bmp保存到 SD 卡中,再把該SD 卡插入開發(fā)板的 SD 卡接口,然后將 STM32 開發(fā)板供電(DC5V),插上 JLINK,插上串口線(兩頭都是母的穿插線),接上液晶屏,將編譯好的程序下載到開發(fā)板。程序運(yùn)行之后中英文逐行添加顯示,每行都對應(yīng)于一個時間延時,蜂鳴器發(fā)出聲響后提示第一圖片出現(xiàn),當(dāng)?shù)谝粓D片顯示時,按下k1鍵,圖片順序顯示可順序
37、序顯示到第13圖片,按下K2鍵時圖片逆序顯示可逆序顯示到第一圖片,且圖片頁腳的頁數(shù)為奇數(shù)時LED燈亮,圖片頁數(shù)為偶數(shù)時LED燈熄滅。本實(shí)驗(yàn)的中英文的顯示和 BMP 圖片的顯示和截圖如以下圖所示:中英文逐行顯示局部,這里由時間延時控制按鍵切換時所涉及到的所有BMP格式圖片由以上兩圖涵蓋6.2 遇到的問題及解決方法問題原因解決方法1軟件與硬件無常連接,用keil5翻開相關(guān)程序時閃退只安裝了局部庫文件,本實(shí)驗(yàn)用到的相關(guān)庫文件沒有安裝上,另外沒有安裝JLinkARM_V458a連接器。在原有庫文件的根底上繼續(xù)添加所需要的庫文件,并把Corte* JLink/JTrace Target Driver s
38、etup/ Programming Algorithm設(shè)置STM32F10* High-density Flash 521K on-chip Flash Device Family Package;并且為計(jì)算機(jī)設(shè)備安裝JLink連接器。2延時函數(shù)調(diào)用不了。將延時放在主函數(shù)中的while語句中里了。把延時函數(shù)以一個單獨(dú)的形式放在主函數(shù)上面且獨(dú)立存在,延時函數(shù)被調(diào)用,顯示屏上中英文按照預(yù)先設(shè)定的時間間隔顯示,中英文顯示完畢后按照預(yù)定延時時間設(shè)置的蜂鳴器發(fā)出聲響。3圖片在顯示屏上無法顯示。仔細(xì)檢查后發(fā)現(xiàn)圖片格式為JPEG擱置,實(shí)驗(yàn)過程中忽略了圖片的格式為BMP格式以及圖片的顯示為豎屏導(dǎo)致顯示屏空白及顯示凌亂的條紋。用Photoshop將圖片格式設(shè)置為BMP格式,并且將圖片旋轉(zhuǎn)為豎屏的形式,將改為BMP格式的圖片再次放在SD卡里。重新加載后,圖片正常顯示。4按鍵無法控制圖片的切換,在工程USER下參加bsp_key.c后,在頭文件處有一個紅色*。只是在主程序里加了按鍵相關(guān)的代碼,在工程USER下參加USER/bsp_key.c文件后沒有創(chuàng)立新的路徑在Options for Target/C/C+/Include Paths下重新為工程USER/bsp_key.c創(chuàng)立新的路徑,路徑創(chuàng)立成功后,頭文件出紅色*消失,重新加載后
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 國際海運(yùn)合同環(huán)境保護(hù)要求
- 戶外運(yùn)動中心裝修合同
- 快速響應(yīng)運(yùn)輸合同模板設(shè)計(jì)
- 展覽館裝修大包合同樣本
- 文化中心裝修班組合作協(xié)議
- 滑雪場土石方合同樣本
- 旅游導(dǎo)游人才獵頭協(xié)議
- 冷藏乳制品分銷協(xié)議
- 會展中心別墅裝修合同樣本
- 影視制作公司裝修合同
- 生姜高產(chǎn)種植技術(shù)專題培訓(xùn)課件
- 《社會主義市場經(jīng)濟(jì)理論(第三版)》第八章社會主義市場經(jīng)濟(jì)調(diào)控論
- 交流伺服系統(tǒng)常見故障及處理分解課件
- 水土保持單元工程質(zhì)量評定表
- 圣三國蜀漢傳攻略
- 2021屆高考英語887核心詞(打印、詞頻、出處、例句、背誦)
- 天津市鄉(xiāng)鎮(zhèn)衛(wèi)生院街道社區(qū)衛(wèi)生服務(wù)中心地址醫(yī)療機(jī)構(gòu)名單
- 公司機(jī)關(guān)管理類責(zé)任矩陣
- 山東省青島市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會明細(xì)及行政區(qū)劃代碼
- 《鉆井液用磺甲基酚醛樹脂技術(shù)要求》
- 數(shù)學(xué)-九宮數(shù)獨(dú)100題(附答案)
評論
0/150
提交評論