ARM體系結(jié)構(gòu)實(shí)驗(yàn)報(bào)告_第1頁(yè)
ARM體系結(jié)構(gòu)實(shí)驗(yàn)報(bào)告_第2頁(yè)
ARM體系結(jié)構(gòu)實(shí)驗(yàn)報(bào)告_第3頁(yè)
ARM體系結(jié)構(gòu)實(shí)驗(yàn)報(bào)告_第4頁(yè)
ARM體系結(jié)構(gòu)實(shí)驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上 目 錄-1-2-22334 5.3 液晶顯示模塊設(shè)計(jì)-5 6.1 VS1003 的初始化-5 6.2 MP3文件數(shù)據(jù)寫(xiě)入- 779 7.1 SD模塊-9 7.2 VS1003模塊-14 7.3 圖形人機(jī)交互模塊-168 -16緒論 隨著消費(fèi)類(lèi)電子產(chǎn)業(yè)的蓬勃發(fā)展,越來(lái)越多的嵌入式電子產(chǎn)品走進(jìn)了千家萬(wàn)戶(hù)。電腦的形態(tài)也不再局限于以前的PC機(jī),各式各樣的嵌入式系統(tǒng)出現(xiàn)在了眾多的行業(yè)和應(yīng)用中,其中ARM和Linux結(jié)合的產(chǎn)品在市場(chǎng)上最受青睞。ARM由于其低功耗、高性能、小體積、低成本受到了越來(lái)越廣泛的重視,成為眾多公司產(chǎn)品開(kāi)發(fā)的主流硬件。而Linux則因其開(kāi)放的源代碼,可裁剪

2、的內(nèi)核,便利的開(kāi)發(fā)環(huán)境,各硬件平臺(tái)的通用性,逐漸成為嵌入式開(kāi)發(fā)的主流操作系統(tǒng)。本課題的嵌入式MP3設(shè)計(jì)就是基于ARM和linux平臺(tái)的。本課題實(shí)現(xiàn)了一個(gè)完整的嵌入式系統(tǒng),選用zq2410開(kāi)發(fā)板為目標(biāo)平臺(tái),linux作為目標(biāo)操作系統(tǒng),在這樣的軟硬件環(huán)境下研究實(shí)現(xiàn)MP3播放器。文章首先綜述了嵌入式系統(tǒng)開(kāi)發(fā)方法,介紹了ARM處理器及其特點(diǎn),Linux操作系統(tǒng),嵌入式系統(tǒng)的開(kāi)發(fā)模式以及如何搭建交叉開(kāi)發(fā)環(huán)境,然后介紹了所選硬件平臺(tái)zq2410目標(biāo)板的各種資源,在系統(tǒng)軟件開(kāi)發(fā)中,介紹Uboot、Linux的裁剪和移植,根文件系統(tǒng)的制作以及核心驅(qū)動(dòng)程序的開(kāi)發(fā),應(yīng)用程序開(kāi)發(fā)中,介紹了MP3的原理,移植Madp

3、lay MP3播放器,最后成功對(duì)Madplay播放器實(shí)現(xiàn)了綜合控制。 關(guān)鍵詞:嵌入式ARM Linux驅(qū)動(dòng)程序MP3第1章 課程設(shè)計(jì)的目標(biāo) 1.通過(guò)鍵盤(pán)輸入,進(jìn)入MP3播放器相應(yīng)的功能選項(xiàng)。 2.MP3播放器具備的功能選項(xiàng)為:播放、暫停、停止、音量控制、音樂(lè)下載。 3.MP3播放器響應(yīng)進(jìn)入各功能狀態(tài)時(shí),蜂鳴器蜂鳴。 4.流水燈表示MP3播放器當(dāng)前所處的功能狀態(tài)。 5.蜂鳴器蜂鳴聲音的大小代表音量的大小,音量控制狀態(tài)和音樂(lè)下載狀態(tài)可分別與其他3種狀態(tài)同事存在。 6.數(shù)碼管數(shù)字大小表示執(zhí)行MP3各功能狀態(tài)的時(shí)間。第2章 課程設(shè)計(jì)的意義 1.熟悉ARM & ADS V1.2 的環(huán)境。 2.理

4、解LPC2131芯片引腳功能的選。 3.理解GPIO的使用設(shè)置、輸入驅(qū)動(dòng)方法。 4.理解PWM的通信原理,學(xué)習(xí)ARM PWM資源的通信編程。 5.學(xué)習(xí)在LPC2131上移植ucos系統(tǒng)。第3章 需求分析采用STM32系列微控制器, 結(jié)合解碼芯片VS1003、SD卡、LCD等外圍設(shè)備設(shè)計(jì)并實(shí)現(xiàn)了MP3播放器。其主要功能有:播放VS1003支持的所有音頻文件,如MP3、WMA、WAV文件,且音質(zhì)非常好;通過(guò)觸摸屏實(shí)現(xiàn)按鍵功能,控制播放上一首/下一首、音量增減等;通過(guò)LCD顯示歌曲名字和播放狀態(tài);本系統(tǒng)還實(shí)現(xiàn)了讀卡器功能,PC機(jī)可通過(guò)USB接口直接對(duì)開(kāi)發(fā)板上的SD卡進(jìn)行讀寫(xiě)操作, 以方便拷貝音頻文件

5、。MP3播放過(guò)程是STM32通過(guò)SPI1接口將數(shù)據(jù)從SD卡中取出,然后通過(guò)SPI2接口送至解碼芯VS1003解碼播放。這里解碼模塊單獨(dú)使用一個(gè)SPI接口,以減小干擾和噪聲、提高音質(zhì)。第4章 概要設(shè)計(jì)本系統(tǒng)在硬件上分為6個(gè)模塊: 微控制器STM32F103、解碼模塊VS1003、存儲(chǔ)模塊SD卡、觸摸屏、USB接口和顯示屏LCD。系統(tǒng)硬件框架如圖5所示。 系統(tǒng)硬件框架圖4.1 存儲(chǔ)模塊設(shè)計(jì)SD卡在現(xiàn)在的日常生活與工作中使用非常廣泛,時(shí)下已經(jīng)成為最為通用的數(shù)據(jù)存儲(chǔ)卡。在諸如MP3、數(shù)碼相機(jī)等設(shè)備上也都采用SD卡作為其存儲(chǔ)設(shè)備。SD卡之所以得到如此廣泛的使用,是因?yàn)樗鼉r(jià)格低廉、存儲(chǔ)容量大、使用方便、通

6、用性與安全性強(qiáng)等優(yōu)點(diǎn)。SD卡支持兩種總線(xiàn)方式: SD方式與SPI方式。其中SD方式采用6線(xiàn)制,而SPI方式采用4線(xiàn)制,采用單片機(jī)對(duì)SD卡進(jìn)行讀寫(xiě)時(shí)一般都采用SPI模式??捎貌煌某跏蓟绞绞筍D卡工作于SD方式或SPI方式。在本設(shè)計(jì)中,音頻數(shù)據(jù)MP3文件是以SD卡為載體。所以在電路設(shè)計(jì)中必須含有讀取SD卡模塊。該系統(tǒng)使用STM32內(nèi)部接口SPI1與SD卡進(jìn)行通信,下面介紹其引腳連接情況。PE3:低電平有效,連接到SD卡的片選引腳CD/DAT3。SPI在和SD卡進(jìn)行通信時(shí),需要將PE3拉低才能對(duì)SD卡進(jìn)行操作。PA7:映射為STM32內(nèi)部接口SPI1的主輸出從輸入(MOSI)信號(hào)線(xiàn)。這里STM3

7、2是主設(shè)備,SD卡是設(shè)備。數(shù)據(jù)流的傳輸方向是從STM32傳輸給SD卡。該信號(hào)線(xiàn)用于傳輸一些控制命令來(lái)完成SD卡的操作,如讀、寫(xiě)等。PA5: 已連接到STM32內(nèi)部接口SPI1的時(shí)鐘(SCL K)信號(hào)線(xiàn)??稍O(shè)置SPI的時(shí)鐘頻率來(lái)調(diào)整讀取SD卡數(shù)據(jù)的快慢。PA6 :已連接到STM32內(nèi)部接口SPI1的主輸入從輸出(MISO)信號(hào)線(xiàn)。數(shù)據(jù)的傳輸方向是從SD卡傳輸給STM32 ,主要返回SD卡的一些狀態(tài)、內(nèi)部寄存器值等。PC12 :用于檢測(cè)SD卡是否完全插入。當(dāng)SD卡完全插入時(shí),PC12為低電平,否則為高電平。4.2 音頻解碼模塊設(shè)計(jì)音頻解碼模塊完成MCU從SD卡里讀取的數(shù)字MP3音頻數(shù)據(jù)流進(jìn)行解析、

8、并轉(zhuǎn)化成模擬信號(hào)進(jìn)行輸出。在這里,系統(tǒng)使用VS1003音頻解碼芯片來(lái)實(shí)現(xiàn)音樂(lè)數(shù)據(jù)流的解析。VS1003是由芬蘭VLSI公司出品的一款單芯片的MP3/WMA音頻解碼芯片,其擁有一個(gè)高性能低功耗的DSP處理器核VS_DSP, 5K的指令ROM, 0.5K的數(shù)據(jù)RAM,串行的控制和數(shù)據(jù)輸入接口, 4個(gè)通用I/O口,一個(gè)UART口,同時(shí)片內(nèi)帶有一個(gè)可變采樣速率的ADC、一個(gè)立體聲DAC以及音頻耳機(jī)放大器接口。VS1003與核心控制器MSP430F149的數(shù)據(jù)通信是通過(guò)SPI總線(xiàn)方式進(jìn)行的。VS1003主要通過(guò)串行命令接口(SCI)和串行數(shù)據(jù)接口(SDI)來(lái)接收MSP430F149控制器的控制命令和MP

9、3的數(shù)據(jù)。通過(guò)XCS、XDCS引腳的置高、置低來(lái)確認(rèn)是哪一個(gè)接口處于傳送狀態(tài)。對(duì)于VS1003芯片的功能控制,如初始化、軟復(fù)位、暫停、音量控制、播放時(shí)間的讀取等,均是通過(guò)SCI寫(xiě)入到特定寄存器的內(nèi)容來(lái)實(shí)現(xiàn)的。兩條SCI指令之間要通過(guò)DREQ引腳信號(hào)判斷上次處理是否完成。該系統(tǒng)使用STM32 內(nèi)部接口SPI2 與VS1003 進(jìn)行通信,下面介紹其引腳連接情況。PA3 :VS1003 的中斷請(qǐng)求引腳。當(dāng)VS1003 內(nèi)部數(shù)據(jù)已處理完畢,需要新的數(shù)據(jù)時(shí),將DREQ 拉高。STM32根據(jù)這個(gè)信號(hào)來(lái)給VS1003 發(fā)送新的數(shù)據(jù)流。PB13 : 已連接到STM32 內(nèi)部接口SPI2 的時(shí)鐘(SCL K)

10、信號(hào)線(xiàn)。PB14 :已連接到STM32 內(nèi)部接口SPI2 的主輸入從輸出(MISO) 信號(hào)線(xiàn)。這里STM32 是主設(shè)備,VS1003 是從設(shè)備。數(shù)據(jù)流的傳輸方向是從VS1003 傳輸給STM32 。主要用于讀取VS1003 的一些狀態(tài)和內(nèi)部寄存器值,比如寄存器測(cè)試返回的內(nèi)部寄存器的值。PB15 :已連接到STM32 內(nèi)部接口SPI2 的主輸出從輸入(MOSI) 信號(hào)線(xiàn)。這里STM32 是主設(shè)備,VS1003 是從設(shè)備。數(shù)據(jù)流方向是從STM32 傳輸給VS1003 ,主要傳輸給VS1003 一些控制命令、MP3/ WMA 數(shù)據(jù)流等。PA1 :低電平有效,如果拉低該引腳,那么通過(guò)SPI 傳輸?shù)氖强?/p>

11、制信號(hào)??刂菩盘?hào)包括讀寫(xiě)VS1003 的內(nèi)部寄存器、對(duì)VS1003 進(jìn)行初始化、設(shè)置左右聲道音量等。PA2 :低電平有效,如果拉低該引腳,那么通過(guò)SPI 傳輸?shù)氖菙?shù)據(jù)信號(hào)。比如在向VS1003 傳輸MP3/ WMA 的數(shù)據(jù)流時(shí)需要拉低該引腳。PA0 :低電平有效,拉低該引腳則硬件復(fù)位VS1003 。4.3 液晶顯示模塊設(shè)計(jì) LCD3310芯片是一個(gè)48行84列的液晶顯示器主要模塊。其內(nèi)存帶有低功耗PCD8544的CMOSLCD控制驅(qū)動(dòng)器,串行輸入速度最高可達(dá)4. 0Mbits/S,而且所有必須的顯示功能集成在一塊芯片上,包括LCD電壓及偏置電壓發(fā)生器,所以L(fǎng)CD3310是一款低功耗的液晶顯示器

12、。為了讓LCD3310液晶能夠顯示4行12* 12的漢字,系統(tǒng)開(kāi)辟了一個(gè)6* 84字節(jié)的緩沖區(qū),要寫(xiě)液晶時(shí),就不用直接寫(xiě)LCD3310的靜態(tài)DDRAM了,可以先寫(xiě)系統(tǒng)為它開(kāi)辟的數(shù)據(jù)緩沖區(qū),最后再刷新修改的部分就可以顯示出要顯示的內(nèi)容,LCD3310與主控制器是SPI接口方式。第5章 相關(guān)技術(shù)說(shuō)明5.1 VS1003 的初始化如其它芯片一樣,初始化對(duì)于VS1003 來(lái)說(shuō)同樣是極其重要的。初始化的過(guò)程大致是這樣的: 1.硬件復(fù)位:接X(jué)RESET 拉低。 2.延時(shí),將XDCS、XCS、XRESET 置高。 3.向MODE 中寫(xiě)入0X0804。 4.等待DREQ 為高。 5.設(shè)置VS1003 的時(shí)鐘:

13、SCI_CLOCKF=0x9800,3 倍頻。 6.設(shè)置VS1003 的采樣率:SPI_AUDATA=0xbb81,采樣率48k,立體聲。 7.設(shè)置重音:SPI_BASS=0x0055。 8.設(shè)置音量:SCI_VOL=0x2020。9. 這一步被很多人忽視,向VS1003 發(fā)送4 個(gè)字節(jié)的無(wú)效數(shù)據(jù),用以啟動(dòng)SPI發(fā)送。實(shí)現(xiàn)代碼如下:void Mp3Reset(void)XRESET=0delay(100)XDCS=XCS=XRESET=1wr_commad(0x00,0x08,0x04)delay(10)DREQ=1while(!DREQ)wr_commad(0x03,0x98,0x00)de

14、lay(10)wr_commad(0x05,0xbb,0x81)delay(10)wr_commad(0x02,0x00,0x55)delay(10)wr_commad(0x0b,VOL_VALUE,VOL_VALUE) / 音量delay(10)spi_write(0)spi_write(0)spi_write(0)spi_write(0)在進(jìn)行了正確的初始化后,還要著重檢查一下VS1003 的模擬部分是否正常將VS1003 的所有DVDD、AVDD 管腳以及XRESET、TEST(第32 個(gè)引腳)接+3.0V,然后測(cè)量RCAP 引腳,它應(yīng)該是1.3V 左右,否則芯片模擬部分未正常工作。5.

15、2 MP3 文件數(shù)據(jù)寫(xiě)入 以上的對(duì)VS1003 的初始化與測(cè)試都通過(guò)后,現(xiàn)在就可以給它發(fā)送MP3 文件了。但是這時(shí)就又出現(xiàn)一個(gè)新的問(wèn)題。MP3 文件通常是比較大的,小的也要1M2M,如果使單片機(jī)內(nèi)部的Flash Rom 的話(huà),容量是遠(yuǎn)遠(yuǎn)不夠的。需要有一種大容量的存儲(chǔ)器來(lái)作為MP3 文件的載體。在筆者的調(diào)試系統(tǒng)中采用了SD 卡(256M)、U 盤(pán)(1G)與移動(dòng)硬盤(pán)(40G)來(lái)存儲(chǔ)MP3 文件。關(guān)于SD 卡與U盤(pán)的讀寫(xiě)方法可以參看相關(guān)章節(jié)。這些大容量的存儲(chǔ)設(shè)備通常也是按照扇區(qū)來(lái)進(jìn)行讀寫(xiě)的,但在實(shí)際的應(yīng)用中更多的是結(jié)合FAT32 等文件系統(tǒng)來(lái)進(jìn)行文件讀寫(xiě)。文件系統(tǒng)部分可以參照FAT32 的存儲(chǔ)機(jī)制及

16、其在單片機(jī)中的實(shí)現(xiàn)。這里拋開(kāi)存儲(chǔ)介質(zhì)不談,只談數(shù)據(jù)的寫(xiě)入方法。其實(shí)寫(xiě)入數(shù)據(jù)的方法十分簡(jiǎn)單。主要就是看DREQ 信號(hào),在VS1003 的FIFO 能夠接受數(shù)據(jù)的時(shí)候輸出高電平。每次可以寫(xiě)入32 個(gè)字節(jié)的數(shù)據(jù)。而DREQ 變低時(shí),單片機(jī)就要停止數(shù)據(jù)的發(fā)送。具體的寫(xiě)數(shù)據(jù)的方法如下: 1.將XDCS 拉低。 2.等待DREQ 為高。 3.通過(guò)SPI 寫(xiě)入數(shù)據(jù)。 4.在文件沒(méi)有結(jié)束前不斷重復(fù)2 與3 操作。 5.在所有的數(shù)據(jù)都發(fā)送完畢后,最后發(fā)送2048 個(gè)無(wú)效字節(jié),用以清除VS1003 的數(shù)據(jù)緩沖區(qū)。6.將XDCS 置高。實(shí)現(xiàn)代碼如下:XDCS=0for(j=621j<2783j+)for(k=

17、0k<8k+)MMC_get_data_LBA(j,64,get)for(i=0i<64i+)DREQ=1while(!DREQ)spi_write(geti)/delay(60000)for(temp=0temp<2048temp+)DREQ=1while(!DREQ)spi_write(0)XDCS=1第6章 詳細(xì)設(shè)計(jì)6.1 MP3播放器軟件系統(tǒng)流程原理系統(tǒng)啟動(dòng)后,先初始化硬件模塊。由MCU通過(guò)FAT32文件系統(tǒng)接口讀取SD卡的一些基本信息,如容量、扇區(qū)大小、FAT表及根目錄所在的啟始扇區(qū)等。通過(guò)獲得這些信息后,就可以找出SD卡是否有我們可以播放的音樂(lè)文件。若有音樂(lè)文件,

18、微處理器將通過(guò)SPI總線(xiàn)方式讀出該文件的音頻信息,并將歌曲的碼流信息送入到VS1003芯片中,通過(guò)VS1003芯片解碼以及其內(nèi)含的高質(zhì)量的立體DAC和耳機(jī)驅(qū)動(dòng)電路,實(shí)現(xiàn)MP3歌曲的播放功能。在觸摸鍵的控制下,通過(guò)LCD3310中菜單選項(xiàng)的選擇,實(shí)現(xiàn)對(duì)歌曲選擇及音量控制等功能;在播放的同時(shí), LCD3310上顯示的信息除歌曲名稱(chēng)信息外,還包括進(jìn)度和音量等信息。由于SPI1 讀取SD 卡文件的速度遠(yuǎn)超過(guò)VS1003 播放數(shù)據(jù)流的速度,因此VS1003 在播放來(lái)自SPI2 的數(shù)據(jù)流期間,SPI1 能從SD 卡中讀取下次播放所需的數(shù)據(jù),不會(huì)產(chǎn)生聲音不連續(xù)的情況。由于使用了2 個(gè)SPI 接口,相互之間無(wú)

19、干擾,且提高了文件系統(tǒng)的效率,因此本系統(tǒng)能得到非常高品質(zhì)的音樂(lè)。6.2 SD模塊SD 模塊主要提供SD 卡驅(qū)動(dòng)以及對(duì)FAT 文件系統(tǒng)操作的函數(shù),F(xiàn)AT 文件系統(tǒng)支持長(zhǎng)文件名。該模塊主要含有2 個(gè)文件msd.c 和fat16.c 。下面分別介紹其主要函數(shù)的功能。(1) msd.c該文件用于提供SD 卡的驅(qū)動(dòng),主要包括以下函數(shù)。SPI_ Config : 配置與SD 卡相連接的SPI1 及相關(guān)GPIO。MSD_Init :初始化SD 卡通信。Get_Medium_Characteristics :獲取SD 卡的容量和塊大小等相關(guān)信息。MSD_GoIdleState :令SD 卡處于空閑態(tài)。MSD_

20、SendCmd :向SD 卡發(fā)送命令。MSD_GetResponse :從SD 卡獲取響應(yīng)。MSD_GetStatus :獲取SD 卡的狀態(tài)。MSD_WriteBlock :向SD 卡寫(xiě)入1 個(gè)塊的數(shù)據(jù)。MSD_ReadBlock :從SD 卡讀取1 個(gè)塊的數(shù)據(jù)。以下是函數(shù)MSD_ReadBlock 的實(shí)現(xiàn): u8 MSD_ ReadBlock ( u8 * pBuffer , u32 ReadAddr , u16 NumByte ToRead) u32 i = 0 ;u8 rvalue = MSD_RESPONSE_FAILURE;MSD_CS_LOW() ; / / 拉低片選信號(hào),選中SD

21、 卡MSD_SendCmd (MSD_READ_ SIN GL E_BLOCK, ReadAddr ,0xFF) ; / / 發(fā)送讀取塊命令/ / 檢測(cè)SD 卡是否有返回信息,若是則返回0x00if ( !MSD_GetResponse (MSD_RESPONSE_NO_ERROR) ) if ( !MSD_ GetResponse (MSD_ START_DA TA_ SIN GL E_BLOCK_READ) ) / / 等待數(shù)據(jù)令牌,標(biāo)志數(shù)據(jù)傳輸開(kāi)始for (i = 0 ; i < NumByte ToRead ; i + + ) / / 讀取數(shù)據(jù)* pBuffer = MSD_Re

22、adByte() ; / / 緩存收到的數(shù)據(jù)pBuffer + + ; / / 緩存指針后移rvalue = MSD_RESPONSE_NO_ERROR ;/ / 修改rvalue 的值為成功MSD_CS_HIGH() ; / / 拉高片選信號(hào),禁用SD 卡MSD_WriteByte(DUMMY) ; / / 寫(xiě)無(wú)效字節(jié),傳輸結(jié)束return rvalue ; / / 返回(2)fat16. c該文件提供對(duì)FAT16 文件系統(tǒng)的支持,主要包含以下函數(shù)。ReadMBR :讀取MBR 數(shù)據(jù)結(jié)構(gòu)。ReadBPB :讀取BPB 數(shù)據(jù)結(jié)構(gòu)。ReadFAT :讀取文件分配表指定項(xiàng)。ReadBlock :讀

23、取SD 卡的一個(gè)扇區(qū)。FAT_Init :獲取FAT16 文件系統(tǒng)的基本信息。DirStartSec :獲取根目錄的開(kāi)始扇區(qū)號(hào)。DataStartSec :獲取數(shù)據(jù)區(qū)的開(kāi)始扇區(qū)號(hào)。ClusConvLBA :獲取一個(gè)簇的開(kāi)始扇區(qū)號(hào)。LBAConvClus :轉(zhuǎn)換扇區(qū)號(hào)與簇號(hào)之間的關(guān)系。Get FileName :獲取指定文件的首扇區(qū)號(hào)。ListDate Time :列出文件或子目錄創(chuàng)建的時(shí)間日期。SearchFoler :在指定范圍內(nèi)查找文件或子目錄。ListDir :列出指定范圍內(nèi)的文件或子目錄及相關(guān)信息。FAT_FileOpen :打開(kāi)指定文件。FAT_FileRead :讀取文件數(shù)據(jù)。6.

24、3 VS1003模塊VS1003 模塊主要提供對(duì)解碼芯片VS1003 的驅(qū)動(dòng),為應(yīng)用層播放音頻數(shù)據(jù)、控制音量聲道等提供基本接口。該模塊主要含文件vs1003. c 。其主要函數(shù)的功能如下。vs1003. c 文件主要提供VS1003 芯片的驅(qū)動(dòng),包含以下幾個(gè)主要函數(shù)。VS1003_Config :配置STM32 與VS1003 連接的相關(guān)引腳,包括SPI2 、PA0 、PA1 、PA2 、PA3 。SPIGetChar :通過(guò)SPI 從VS1003 讀取1 個(gè)字節(jié)。SPIPutChar :通過(guò)SPI 向VS1003 寫(xiě)入1 個(gè)字節(jié)。如果是MP3/ WMA 數(shù)據(jù)流,則VS1003 將開(kāi)始解碼并播

25、放。Mp3ReadRegister :讀取VS1003 寄存器的值。Mp3WriteRegister :寫(xiě)VS1003 寄存器。Mp3Reset :VS1003 復(fù)位,包括軟件復(fù)位和硬件復(fù)位。Mp3SoftReset :VS1003 軟件復(fù)位,設(shè)置時(shí)鐘、采樣率、重音、音量、立體聲等參數(shù),一般在2 首樂(lè)曲之間需要一次軟件復(fù)位。VsSine Test : 播放正弦聲波, 用于測(cè)試VS1003 和STM32 的連接是否完好。以下是VS1003音頻解碼芯片初始化的部分代碼:void init_vs1003()vs1003_dir|=0X2C;VS1003_xResetDIR |=BIT5;printf

26、s(“n-hard_reset-n”);hard_reset; /硬件復(fù)位delay_ms(10);sotf_send_bit2(0XFF);hard_set;sotf_send_bit2(0XFF);Wait_Vs1003_DREQ();printfs(“n-soft_reset_vs1003-n”);soft_reset_vs1003();printfs(“n -vs1003initok-n”);6.4 圖形人機(jī)交互模塊(觸摸屏支持庫(kù)的安裝)網(wǎng)絡(luò)MP3播放器搭載了一塊觸摸屏作為系統(tǒng)硬件的控制模塊,有了觸摸屏的支持,用戶(hù)就可以通過(guò)點(diǎn)擊圖形人機(jī)交互界面中的窗體控件對(duì)播放器進(jìn)行管理。在設(shè)計(jì)播放器的圖形人機(jī)交互界面之前,還需要一層應(yīng)用程序庫(kù)封裝系統(tǒng)對(duì)底層觸摸屏驅(qū)動(dòng)的操作,將觸摸控制以一個(gè)統(tǒng)一的接口提供給上層GUI應(yīng)用程序使用。該設(shè)計(jì)使用了tslib應(yīng)用程序庫(kù)來(lái)封裝圖形用戶(hù)界面對(duì)底層觸摸屏的操作。tslib是一個(gè)開(kāi)源的觸摸屏支持庫(kù),它

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論