基于STM32的FM收發(fā)器的設(shè)計(jì)_第1頁(yè)
基于STM32的FM收發(fā)器的設(shè)計(jì)_第2頁(yè)
基于STM32的FM收發(fā)器的設(shè)計(jì)_第3頁(yè)
基于STM32的FM收發(fā)器的設(shè)計(jì)_第4頁(yè)
基于STM32的FM收發(fā)器的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩30頁(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、畢業(yè)設(shè)計(jì)說(shuō)明書(shū)2015屆基于STM32的FM收發(fā)器的設(shè)計(jì) 學(xué)生姓名 xxxxxx 學(xué) 號(hào) xxxxxx 院 系 數(shù)理信息學(xué)院 專(zhuān) 業(yè) 電子信息工程 指導(dǎo)教師 xxxxxx 完成日期 2015年5月25日 基于STM32的FM收發(fā)器的設(shè)計(jì)摘 要現(xiàn)今多媒體技術(shù)和通信技術(shù)高速發(fā)展,無(wú)線收發(fā)技術(shù)在現(xiàn)代的通信技術(shù)占據(jù)了越來(lái)越重要的位置,而無(wú)線通信技術(shù)依賴(lài)的是有效可靠的調(diào)制解調(diào)方式和穩(wěn)定的收發(fā)系統(tǒng)。FM調(diào)制方式成本不高,技術(shù)成熟,可靠性強(qiáng),因此FM收發(fā)器在通訊技術(shù)中得到了廣泛的使用。本文提出了一種基于STM32微控制器的FM收發(fā)系統(tǒng),其中包括STM32F103C8T6單片機(jī)控制、NOKIA5110液晶顯示

2、、4*4矩陣鍵盤(pán)、FM收發(fā)模塊、音頻輸入模塊、音頻濾波器、音頻功率放大器。本文對(duì)設(shè)計(jì)開(kāi)發(fā)全數(shù)字式控制的FM收發(fā)器的各個(gè)模塊作了詳細(xì)的硬件原理分析,軟件控制以及調(diào)試分析,實(shí)現(xiàn)了全數(shù)字式控制FM接收和發(fā)射的頻道選擇、音量控制、信號(hào)強(qiáng)度檢測(cè)的功能。本文實(shí)現(xiàn)的基于STM32的FM收發(fā)器為簡(jiǎn)易的音頻收發(fā)器,可實(shí)現(xiàn)收音機(jī)、小功率電臺(tái)以及半雙工對(duì)講機(jī)的功能。本系統(tǒng)實(shí)現(xiàn)的硬件功耗小,體積小,攜帶方便,穩(wěn)定性強(qiáng),操作方便,是一個(gè)實(shí)用的多功能FM收發(fā)器。關(guān)鍵詞 通信技術(shù);FM收發(fā)器;STM32微控制器;音頻THE DESIGN OF FM TRANSCEIVER BASED ON STM32ABSTRACTWit

3、h the rapid growth of modern multimedia and communication technology, wireless transceiver technology plays a rising significant role in the modern communication technology, wireless communications transceiver system is dependent on a modulation, demodulation measure efficacious, credible and stable

4、. FM modulation technology is mature, with low cost and strong reliability, thus the FM transceiver has been proverbially applied in radio communication technology.This paper presents a FM transceiver system based on STM32 MCU, including STM32F103C8T6 MCU control module, NOKIA5110 LCD, 4*4 matrix ke

5、yboard, FM transceiver module, audio input module, audio filter and power amplifier. In this paper, design and development of each module of the digital control FM transceiver is analyzed with the principle of hardware, program domination and debug, actualizes the channel selection, volume control a

6、nd signal strength detection function of digital control FM receiving and transmitting. The implementation of FM transceiver based on STM32 is a simple audio transceiver, which can realize radiogram, small power radio set and half duplex intercom function. The hardware implementation of the system i

7、s of low power consumption, tiny bulk, handy, high steadiness and easy manipulation, which is a practical multifunctional FM transceiver.KEY WORDS Communication Technology; FM Transceiver; STM32 MCU; AudioIII目 錄摘 要IABSTRACTII目 錄III引 言11基于STM32的FM收發(fā)器系統(tǒng)總體設(shè)計(jì)方案及論證21.1 FM收發(fā)器的工作原理21.2 基于STM32的FM收發(fā)器的總體結(jié)構(gòu)圖2

8、1.2.1 基于STM32的FM收發(fā)器硬件模塊劃分22. 基于STM32的FM收發(fā)器硬件電路設(shè)計(jì)22.1 電源模塊42.2 STM32F103C8T6單片機(jī)控制模塊42.3 液晶顯示模塊52.4 矩陣鍵盤(pán)模塊62.5 音頻輸入模塊72.6 音頻功放、輸出模塊72.7 FM收發(fā)模塊82.8 音頻濾波模塊93. 基于STM32的FM收發(fā)器軟件設(shè)計(jì)113.1 LCD液晶顯示屏的軟件開(kāi)發(fā)113.1.1 FM接收模式下LCD的顯示模式113.1.2 FM發(fā)射模式下LCD的顯示模式113.2 矩陣薄膜鍵盤(pán)的軟件開(kāi)發(fā)113.3 FM收發(fā)模塊的軟件開(kāi)發(fā)133.3.1 I2C總線控制133.3.2 RDA582

9、0收發(fā)芯片的驅(qū)動(dòng)143.4 信號(hào)指示燈的軟件開(kāi)發(fā)154. 基于STM32的FM收發(fā)器系統(tǒng)調(diào)試及結(jié)果分析164.1 FM收發(fā)器的接收模式調(diào)試及結(jié)果分析164.2 FM收發(fā)器的發(fā)射模式調(diào)試及結(jié)果分析16結(jié)論17參考文獻(xiàn)18附錄1 實(shí)物圖19附錄2 系統(tǒng)原理圖20附錄3 各模塊程序21致 謝31引 言隨著電子技術(shù)和通信技術(shù)的高速發(fā)展,無(wú)線電技術(shù)在如今的社會(huì)和工作中處于不可或缺的地位。FM調(diào)頻技術(shù)具有其他調(diào)幅廣播所不能及的優(yōu)點(diǎn):調(diào)頻廣播方式的頻帶較寬,可做高保真廣播,且抗干擾能力較強(qiáng),系統(tǒng)的信噪比較高1。調(diào)頻技術(shù)的投資和運(yùn)行維護(hù)的成本較低且容易實(shí)現(xiàn)立體聲的調(diào)頻廣播,因此很多發(fā)達(dá)國(guó)家很早就開(kāi)始了調(diào)頻廣播

10、的服務(wù)。目前調(diào)頻廣播技術(shù)已發(fā)展到調(diào)頻多工廣播,即除了傳輸立體聲節(jié)目外,還傳輸?shù)缆方煌ㄐ畔?、氣象信息、新聞等。FM廣播技術(shù)為生活信息的傳輸和交換提供了極大便利。FM收發(fā)一體機(jī)縮小了FM系統(tǒng)的體積,提高了FM系統(tǒng)的便攜性,降低了FM系統(tǒng)的維護(hù)成本,故需要利用電子技術(shù)設(shè)計(jì)一套功耗較低、穩(wěn)定性較強(qiáng)、功能較為完善的FM收發(fā)器系統(tǒng)。我國(guó)的FM廣播起步于五十年代,當(dāng)時(shí)調(diào)頻廣播只作為節(jié)目傳輸手段使用。八十年代中期,廣播電影電視部根據(jù)我國(guó)四化建設(shè)的需要,確定將調(diào)頻廣播作為播送高質(zhì)量節(jié)目的主要方式。這一決定立即有力推動(dòng)了我國(guó)調(diào)頻技術(shù)的飛速進(jìn)展。到1985年底許多廠家從國(guó)外引進(jìn)了高端調(diào)頻技術(shù)和高效率生產(chǎn)線。這些發(fā)射

11、機(jī)采用直接調(diào)頻數(shù)字頻率合成調(diào)制、動(dòng)態(tài)瞬時(shí)響應(yīng)濾波、自動(dòng)導(dǎo)頻相位控制技術(shù)和頻率合成技術(shù)等。除了引進(jìn)技術(shù)和生產(chǎn)線進(jìn)行調(diào)頻廣播發(fā)射機(jī)的研制生產(chǎn)外,國(guó)內(nèi)還有些廠家采用大量國(guó)產(chǎn)化元器件,生產(chǎn)出具有國(guó)際水平的立體聲調(diào)頻技術(shù)產(chǎn)品?,F(xiàn)今國(guó)內(nèi)外FM調(diào)頻技術(shù)已經(jīng)非常成熟穩(wěn)定2。本系統(tǒng)就是圍繞穩(wěn)定可靠的FM收發(fā)系統(tǒng)進(jìn)行研究的,通過(guò)將音頻處理技術(shù)和FM收發(fā)技術(shù)結(jié)合,開(kāi)發(fā)出一套低功耗、穩(wěn)定性強(qiáng)、人機(jī)接口友好的FM收發(fā)器系統(tǒng)。該FM收發(fā)器通過(guò)人機(jī)接口控制FM收發(fā)功能,完成對(duì)FM收發(fā)頻道、音量等的控制以及信號(hào)強(qiáng)度的檢測(cè)。FM音頻信號(hào)的發(fā)射通過(guò)麥克風(fēng)輸入語(yǔ)音信號(hào)或通過(guò)3.5mm耳機(jī)接口輸入音頻信號(hào),然后由帶通濾波器濾去多余頻

12、段的信號(hào),最后經(jīng)FM調(diào)制芯片調(diào)制,由天線將調(diào)制完成的信號(hào)發(fā)射。由天線接收到的FM音頻信號(hào)同樣通過(guò)帶通濾波器濾去雜波,由音頻功率放大器放大音頻信號(hào)的功率,通過(guò)喇叭播放音頻信號(hào)。本設(shè)計(jì)最終實(shí)現(xiàn)了FM信號(hào)的接收,即收音機(jī)和FM信號(hào)的發(fā)射功能,若利用未被占用的頻道則可實(shí)現(xiàn)半雙工對(duì)講機(jī)的功能。本系統(tǒng)功耗低、實(shí)時(shí)性強(qiáng),對(duì)于FM收發(fā)系統(tǒng)設(shè)計(jì)的多樣化和數(shù)字化具有重要意義。311基于STM32的FM收發(fā)器系統(tǒng)總體設(shè)計(jì)方案及論證1.1 FM收發(fā)器的工作原理FM收發(fā)器完成對(duì)輸入信號(hào)的發(fā)射和對(duì)接收到的FM信號(hào)的輸出功能。通過(guò)音頻輸入引腳輸入立體聲,通過(guò)帶通濾波器濾去多余頻帶的干擾,經(jīng)過(guò)可調(diào)增益放大器放大,由AD轉(zhuǎn)換器

13、將音頻模擬量轉(zhuǎn)換成數(shù)字量,F(xiàn)M合成器將AD轉(zhuǎn)換器輸出的數(shù)字量加到壓控振蕩器產(chǎn)生的載波上,完成對(duì)音頻信號(hào)的數(shù)字調(diào)制,最后經(jīng)過(guò)可編程音頻功放放大功率,經(jīng)由天線發(fā)射,完成對(duì)FM音頻信號(hào)的發(fā)射功能。從天線接收的FM信號(hào),經(jīng)LNA將其線性放大,正交混頻器將不同頻率下的高頻FM信號(hào)下變頻到固定頻率的低中頻FM信號(hào),AD轉(zhuǎn)換器將可調(diào)增益放大器放大的信號(hào)轉(zhuǎn)換為數(shù)字量,然后DSP處理器將得到的數(shù)字量解調(diào),最后經(jīng)過(guò)DA轉(zhuǎn)換器將其轉(zhuǎn)換為可用的音頻模擬信號(hào),完成了FM音頻信號(hào)的接收并輸出的功能。STM32單片機(jī)通過(guò)I2C總線讀寫(xiě)FM收發(fā)芯片的寄存器,可修改音頻輸出的音量大小、FM收發(fā)的頻道,讀取信號(hào)接收的信號(hào)強(qiáng)度等。

14、1.2 基于STM32的FM收發(fā)器的總體結(jié)構(gòu)圖1.2.1 基于STM32的FM收發(fā)器硬件模塊劃分FM收發(fā)器的硬件部分分為若干個(gè)模塊,主要包括電源模塊、LCD顯示模塊、矩陣鍵盤(pán)模塊、單片機(jī)控制模塊、音頻輸入模塊、音頻輸出模塊、音頻濾波模塊、FM收發(fā)模塊、音頻功放模塊。圖1-1是FM收發(fā)器的硬件系統(tǒng)總體框圖。圖1-1 FM收發(fā)器的硬件總體框圖2. 基于STM32的FM收發(fā)器硬件電路設(shè)計(jì)FM收發(fā)器的總原理圖如圖2-1所示。FM收發(fā)器的硬件電路主要包括:LCD顯示模塊、矩陣鍵盤(pán)模塊、STM32主控模塊、音頻輸入輸出模塊、音頻濾波模塊、FM收發(fā)模塊等。圖2-1 FM收發(fā)器的總電路原理圖2.1 電源模塊電

15、源模塊原理圖如圖2-2所示。電源模塊可以以220V市電作為輸入,經(jīng)過(guò)220V-9V/50Hz變壓器、全波整流橋、濾波電容、7805穩(wěn)壓片、LM1117穩(wěn)壓片得到+5V、+3.3V供電電源。+5V電源也可以通過(guò)USB接口輸入或者3節(jié)干電池得到+4.5V,然后經(jīng)過(guò)LM1117穩(wěn)壓芯片得到+3.3V。圖2-2 電源模塊原理圖其中+5V作為L(zhǎng)CD液晶顯示屏、麥克風(fēng)、FM收發(fā)芯片、運(yùn)算放大器、音頻功率放大器的供電電源,+3.3V作為主控芯片STM32的供電電源。7805是一種三端穩(wěn)壓集成電路,78/79系列的三端穩(wěn)壓IC所需的外圍元件極少,使用方便可靠,成本較低,電子制作中經(jīng)常采用。其電路內(nèi)部具有過(guò)流、

16、過(guò)熱的保護(hù)電路,可以輸出1.5A的電流,驅(qū)動(dòng)能力較強(qiáng)。LM1117是一種低壓差電壓調(diào)節(jié)器,可以輸出800mA的負(fù)載電流,且有不同可調(diào)電壓的版本。LM1117內(nèi)置過(guò)流和過(guò)熱限制功能,芯片內(nèi)置由齊納二極管穩(wěn)定的基準(zhǔn)源使得輸出電壓誤差在±1%以內(nèi)。STM32為低功耗單片機(jī),800mA的輸出電流足以驅(qū)動(dòng)多片STM32。2.2 STM32F103C8T6單片機(jī)控制模塊STM32F103C8T6微控制器及其所需的外圍元件如圖2-3所示。STM32F103C8T6是一款性價(jià)比較高的ARM系列低功耗單片機(jī),內(nèi)含F(xiàn)LASH、USB接口、定時(shí)器、ADC等外設(shè)。STM32F103C8T6的最高工作頻率為7

17、2MHz,具有64KB的FLASH和20KB的SRAM3。該單片機(jī)具有體積小、功耗低、高性能等優(yōu)點(diǎn),其電源電壓為2.0V-3.6V,本系統(tǒng)使用LM1117穩(wěn)壓芯片產(chǎn)生的+3.3V直流供電。圖2-3 STM32主控模塊原理圖單片機(jī)控制模塊的功能是驅(qū)動(dòng)各部分硬件能夠穩(wěn)定運(yùn)行。STM32F103C8T6單片機(jī)需要驅(qū)動(dòng)液晶顯示屏顯示FM收發(fā)模塊的收發(fā)狀態(tài)、所在的工作頻道、音量大小、檢測(cè)到的信號(hào)強(qiáng)度等信息,同時(shí)對(duì)4*4矩陣鍵盤(pán)模塊進(jìn)行掃描,檢測(cè)用戶的按鍵鍵入,完成人機(jī)接口的驅(qū)動(dòng)。其核心工作為通過(guò)I2C總線驅(qū)動(dòng)FM收發(fā)模塊RDA5820,完成FM音頻信號(hào)的接收功能和發(fā)射功能。對(duì)于FM收發(fā)芯片的工作頻道,S

18、TM32F103C8T6利用FLASH外設(shè)將頻道數(shù)值保存,使本系統(tǒng)再次開(kāi)機(jī)時(shí)無(wú)需重復(fù)鍵入頻道數(shù)值。單片機(jī)通過(guò)SWD接口即SWDAT和SWCLK兩個(gè)引腳使用串行數(shù)據(jù)的方式下載控制代碼。2.3 液晶顯示模塊液晶顯示模塊原理圖如圖2-4所示。本系統(tǒng)采用NOKIA5110作為液晶顯示模塊。NOKIA5110液晶顯示模塊的主要功能是為STM32F103C8T6的GPIO口所驅(qū)動(dòng)并作為人機(jī)接口顯示FM收發(fā)器的相關(guān)信息:FM收發(fā)器所在的工作頻道、音量大小、信號(hào)強(qiáng)度和FM收發(fā)狀態(tài)等。圖2-4 液晶顯示模塊原理圖NOKIA5110液晶顯示模塊使用了串行方式與MCU通信,因此所需的信號(hào)線較少,且支持多種串行方式通

19、信協(xié)議(例如SPI總線),數(shù)據(jù)傳送速度達(dá)到了4Mb/s,微控制器可無(wú)需等待時(shí)間寫(xiě)入數(shù)據(jù)。其驅(qū)動(dòng)芯片已與LCD晶片綁定,具有體積小的特點(diǎn)。NOKIA5110供電電壓較低,一般工作電流小于200uA,且分辨率較高,顯示清晰,驅(qū)動(dòng)簡(jiǎn)單。這些優(yōu)點(diǎn)使其適合于小型、功耗較低的便攜式測(cè)試設(shè)備和通信設(shè)備中4。2.4 矩陣鍵盤(pán)模塊矩陣鍵盤(pán)模塊原理圖如圖2-5所示。矩陣鍵盤(pán)模塊使用4*4薄膜矩陣鍵盤(pán),主要作為人機(jī)接口供用戶鍵入相關(guān)控制信息,例如調(diào)整音量大小、設(shè)置FM收發(fā)器工作頻道、設(shè)置接收或發(fā)射模式等。4*4薄膜矩陣鍵盤(pán)集成度高、重量輕,其上清晰標(biāo)注“09”數(shù)字鍵以及“AD”字母鍵,界面美觀清晰,使用方便,其接口

20、為8引腳驅(qū)動(dòng)模式,利用單片機(jī)GPIO口驅(qū)動(dòng)方便。圖2-5 矩陣鍵盤(pán)模塊原理圖矩陣鍵盤(pán)的驅(qū)動(dòng)方式比獨(dú)立按鍵的驅(qū)動(dòng)方式稍為復(fù)雜。矩陣鍵盤(pán)的驅(qū)動(dòng)方式:首先將四根行線全部置低,此時(shí)若有按鍵鍵入,則四根列線其中一根會(huì)出現(xiàn)低電平,根據(jù)低電平出現(xiàn)的列數(shù)可確定鍵入按鍵的列數(shù)。同理,在按鍵鍵入的時(shí)間段內(nèi)再將四根列線全部置低,此時(shí)若有按鍵鍵入,則四根行線的其中一根會(huì)出現(xiàn)低電平,然后根據(jù)低電平出現(xiàn)時(shí)的行數(shù)可以確定鍵入按鍵的行數(shù)。做一定軟件去抖工作之后,根據(jù)掃描程序得到的行數(shù)和列數(shù)即可完全確定被按下的按鍵。STM32時(shí)鐘頻率較高,因此做矩陣鍵盤(pán)掃描不會(huì)占用過(guò)多資源。2.5 音頻輸入模塊音頻輸入模塊原理圖如圖2-6所示

21、。音頻信號(hào)由兩個(gè)通道輸入:通過(guò)麥克風(fēng)輸入語(yǔ)音或3.5mm耳機(jī)接口輸入立體聲。當(dāng)由麥克風(fēng)輸入語(yǔ)音信號(hào)時(shí),麥克風(fēng)通過(guò)一個(gè)上拉電阻產(chǎn)生波形,波形同時(shí)輸入左聲道和右聲道。當(dāng)由3.5mm耳機(jī)接口輸入立體聲信號(hào)時(shí),左聲道波形和右聲道波形分別輸入。其中麥克風(fēng)使用的是結(jié)構(gòu)簡(jiǎn)單、電聲性能好的9*7mm電容式駐極體式麥克風(fēng),靈敏度高達(dá)52dB。圖2-6 音頻輸入模塊原理圖2.6 音頻功放、輸出模塊音頻功放、輸出模塊如圖2-7所示。FM收發(fā)模塊將接收到的FM信號(hào)解調(diào)后輸出,但其輸出功率無(wú)法驅(qū)動(dòng)一個(gè)25W/8的喇叭,因此使用該專(zhuān)用音頻功放對(duì)音頻信號(hào)進(jìn)行一定放大使其能夠驅(qū)動(dòng)喇叭播放聲音。圖2-7 音頻功率放大器原理圖L

22、M386是一款音頻專(zhuān)用功放,具有功率消耗較低、供電電壓范圍較寬、可調(diào)內(nèi)鏈增益、諧波失真小、成本較低和所需外圍器件較少等諸多優(yōu)點(diǎn),較多使用于例如MP3、收音機(jī)等播放設(shè)備之中5。如圖2-7為L(zhǎng)M386芯片的典型驅(qū)動(dòng)電路之一,其預(yù)設(shè)內(nèi)置功放增益為20??紤]到系統(tǒng)的功耗問(wèn)題和噪音問(wèn)題,此處增益選擇為20即可。喇叭選擇25W/8擴(kuò)音器。同時(shí)功率放大器的輸入端將音頻信號(hào)通過(guò)一個(gè)可調(diào)電阻器接入,可通過(guò)調(diào)節(jié)電位器改變音量大小,增加音量的可控性。2.7 FM收發(fā)模塊FM收發(fā)模塊原理圖如圖2-8所示。STM32單片機(jī)使用I2C總線串行方式寫(xiě)入并修改RDA5820內(nèi)部寄存器值,從而修改FM收發(fā)器所在的工作頻道、播放

23、音量大小以及FM收發(fā)器的工作模式(接收信號(hào)或發(fā)射信號(hào)),或讀取RDA5820的寄存器值,以獲取FM信號(hào)的信號(hào)強(qiáng)度等。圖2-8 FM收發(fā)模塊原理圖FM收發(fā)系統(tǒng)的核心電路為RDA5820調(diào)頻收發(fā)集成電路。RDA5820收發(fā)芯片是一款所需外接器件少、信噪比極小的FM收發(fā)芯片。該集成電路具有體積小、低功耗、低成本、應(yīng)用簡(jiǎn)單、使用范圍廣的優(yōu)點(diǎn),是一款使用簡(jiǎn)單且具有較高性價(jià)比的單片音頻收發(fā)集成電路。其應(yīng)用范圍主要有:便攜式MP4、MP3等無(wú)線調(diào)頻接收器,校園、企業(yè)等公共場(chǎng)所立體聲調(diào)頻廣播系統(tǒng),高檔游戲機(jī)及無(wú)線音頻電子玩具等6。FM收發(fā)集成電路RDA5820的電路模塊劃分如圖2-9。其中主要包括低噪聲放大器

24、、正交混頻器、可編程增益放大器、AD轉(zhuǎn)換器、DSP內(nèi)核、DA轉(zhuǎn)換器、壓控振蕩器、功率放大器等模塊。圖2-9 RDA5820內(nèi)部結(jié)構(gòu)圖FM音頻信號(hào)的發(fā)射過(guò)程如下:語(yǔ)音信號(hào)或立體聲信號(hào)從LIN、RIN引腳輸入,經(jīng)過(guò)可編程增益放大器放大(通過(guò)寫(xiě)入相關(guān)寄存器控制增益值),AD轉(zhuǎn)換器將音頻信號(hào)數(shù)字化,然后合成器將音頻數(shù)字信號(hào)加載到壓控振蕩器產(chǎn)生的高頻載波上(通過(guò)寫(xiě)入相關(guān)寄存器控制高頻載波的頻率),完成了音頻信號(hào)的FM調(diào)制,最后經(jīng)過(guò)功率放大器將信號(hào)功率放大(通過(guò)寫(xiě)入相關(guān)寄存器控制功率放大倍數(shù)),由天線發(fā)射出去,在一定距離范圍內(nèi)的收音機(jī)便可以接收到該FM信號(hào)并播放。FM音頻的發(fā)送功能分為以下幾個(gè)步驟,其過(guò)程

25、劃分如圖2-10所示。圖2-10 FM音頻信號(hào)的發(fā)射過(guò)程示意圖FM信號(hào)的接收過(guò)程如下所述:通過(guò)天線接收FM信號(hào),經(jīng)過(guò)低噪聲放大器放大,正交混頻器將多種頻率的高頻FM信號(hào)變頻到一定頻率的低中頻,降低了對(duì)ADC的信號(hào)帶寬的要求。然后經(jīng)可編程增益放大器放大,AD模數(shù)轉(zhuǎn)換器將該信號(hào)數(shù)字化,DSP核心將該數(shù)字量解調(diào),然后經(jīng)過(guò)DA數(shù)模轉(zhuǎn)換器將其轉(zhuǎn)換為可用的立體聲信號(hào),最后功率放大器將信號(hào)放大并輸出。FM音頻信號(hào)的接收過(guò)程如圖2-11所示。圖2-11 FM信號(hào)的接收過(guò)程示意圖2.8 音頻濾波模塊音頻濾波模塊原理圖如圖2-12所示。音頻信號(hào)的頻帶一般為50Hz10kHz,本設(shè)計(jì)根據(jù)此原則設(shè)計(jì)帶通濾波器。由于本

26、系統(tǒng)無(wú)負(fù)電源供電,音頻信號(hào)中的負(fù)值信號(hào)無(wú)法通過(guò)運(yùn)放,因此先利用一個(gè)同相加法器將音頻信號(hào)和+2.5V的基準(zhǔn)源信號(hào)相加,由此得到含有+2.5V直流分量的音頻信號(hào),可通過(guò)由正電源供電的濾波器。低通濾波器和高通濾波器以+2.5V基準(zhǔn)源作為“虛地”,以通過(guò)以+2.5V基準(zhǔn)源作為直流分量的音頻信號(hào)。經(jīng)過(guò)帶通濾波器濾除多余頻帶的信號(hào)之后,經(jīng)過(guò)一個(gè)RC高通濾波網(wǎng)絡(luò)濾除直流分量,得到音頻信號(hào)的交流分量。圖2-12 音頻濾波模塊原理圖本設(shè)計(jì)的帶通濾波電路使用MCP6002型號(hào)作為運(yùn)放。MCP6002是一種低功耗、高帶寬、穩(wěn)定性高、成本較低的通用運(yùn)放,它的供電電壓范圍是1.8V5.5V,對(duì)電源的要求比較低。MCP6

27、002的低功耗、高帶寬等優(yōu)點(diǎn)使其非常適合于FM收發(fā)器系統(tǒng)的設(shè)計(jì)。如圖2-13所示為典型的二階有源低通濾波電路7。圖2-13 二階有源低通濾波電路考慮到集成運(yùn)放的同相端輸入電壓為 (2-1)而與的關(guān)系為 (2-2)對(duì)于節(jié)點(diǎn)a,應(yīng)用KCL方程可得 (2-3)若將公式(2-1)公式(2-3)聯(lián)立,可以較容易得到該運(yùn)放網(wǎng)絡(luò)的傳遞函數(shù)是 (2-4)令 (2-5) (2-6)則有 (2-7)式(2-7)為二階有源低通濾波器傳遞函數(shù)的典型表達(dá)式。其中 (2-8)為該低通濾波器的特征頻率,即Q為0.707時(shí)的3dB截止頻率。根據(jù)以上結(jié)果同理推導(dǎo)可以得到二階有源高通濾波器的截止頻率為。根據(jù)式(2-8)可得本系統(tǒng)

28、設(shè)計(jì)的二階有源帶通濾波器的截止頻率分別為30Hz和16kHz,該通頻段可有效地保留音頻信號(hào)并濾除其他頻段的雜波。3. 基于STM32的FM收發(fā)器軟件設(shè)計(jì)本設(shè)計(jì)的軟件環(huán)境為Realview MDK。MDK-ARM是一款為Cortex-M、ARM7、ARM9等CPU提供的一個(gè)功能強(qiáng)大的開(kāi)發(fā)環(huán)境,是一款微控制器使用的開(kāi)發(fā)環(huán)境,可以滿足大多數(shù)嵌入式應(yīng)用的基本需要?;赟TM32的FM收發(fā)器的軟件部分大致有矩陣鍵盤(pán)、LCD、FM收發(fā)器的驅(qū)動(dòng)和信號(hào)指示燈的控制。3.1 LCD液晶顯示屏的軟件開(kāi)發(fā)本設(shè)計(jì)使用的LCD液晶型號(hào)為NOKIA5110。單片機(jī)與NOKIA5110使用串行方式進(jìn)行通信,只需占用5個(gè)GP

29、IO口即可完成驅(qū)動(dòng)。NOKIA5110的分辨率為84*48,可完成4行字符串的顯示。本設(shè)計(jì)使用STM32F103C8T6的PB6、PB5、PB4、PB3、PA15引腳分別控制NOKIA5110液晶顯示屏的CLK、DIN、DC、CE、RST引腳。3.1.1 FM接收模式下LCD的顯示模式當(dāng)FM收發(fā)器在接收狀態(tài),LCD的顯示內(nèi)容為:第1行:顯示“Receiver”模式。第2行:顯示FM接收器正在接收的頻道,例如“94.1 MHz”。第3行:顯示FM接收模式播放的音量。第4行:顯示所在FM頻道的信號(hào)強(qiáng)度。3.1.2 FM發(fā)射模式下LCD的顯示模式在FM收發(fā)器在發(fā)射狀態(tài),LCD的顯示內(nèi)容為:第1行:顯

30、示“Sender”模式。第2行:顯示FM發(fā)射器所在的頻道。3.2 矩陣薄膜鍵盤(pán)的軟件開(kāi)發(fā)矩陣鍵盤(pán)的驅(qū)動(dòng)方式:首先將四根行線全部置低,此時(shí)若有按鍵鍵入,則四根列線其中一根會(huì)出現(xiàn)低電平,根據(jù)低電平出現(xiàn)的列數(shù)可確定鍵入按鍵的列數(shù)。同理,在按鍵鍵入的時(shí)間段內(nèi)再將四根列線全部置低,此時(shí)若有按鍵鍵入,則四根行線的其中一根會(huì)出現(xiàn)低電平,然后根據(jù)低電平出現(xiàn)時(shí)的行數(shù)可以確定鍵入按鍵的行數(shù)。由于矩陣薄膜鍵盤(pán)沒(méi)有硬件去抖電路,因此采用軟件去抖方式,最后根據(jù)掃描程序得到的行數(shù)和列數(shù)即可確定按鍵的位置8。矩陣鍵盤(pán)的掃描流程圖如圖3-1所示。圖3-1 矩陣鍵盤(pán)掃描軟件流程圖根據(jù)按鍵位置-功能映射表可確定按鍵鍵入且矩陣鍵盤(pán)

31、掃描完成后需要執(zhí)行的具體功能。按鍵位置-功能映射表如表3-1所示。表3-1 鍵盤(pán)按鍵位置-功能映射表按鍵位置按鍵功能1數(shù)字“1”2數(shù)字“2”3數(shù)字“3”4字母“A”5數(shù)字“4”6數(shù)字“5”7數(shù)字“6”8字母“B”9數(shù)字“7”10數(shù)字“8”11數(shù)字“9”12字母“C”13“-”鍵14數(shù)字“0”15“+”鍵16模式切換鍵3.3 FM收發(fā)模塊的軟件開(kāi)發(fā)FM收發(fā)模塊采用了功能豐富且驅(qū)動(dòng)方式簡(jiǎn)單的RDA5820集成電路,單片機(jī)與其交換數(shù)據(jù)使用串行方式且采用了I2C總線。由于STM32F103C8T6沒(méi)有硬件I2C總線,且I2C總線的時(shí)序控制較為嚴(yán)格,因此采用GPIO口驅(qū)動(dòng)I2C總線。STM32通過(guò)I2C

32、總線讀寫(xiě)RDA5820內(nèi)部寄存器,以完成對(duì)FM收發(fā)器工作頻道、收發(fā)模式、音量調(diào)節(jié)等參數(shù)的控制。3.3.1 I2C總線控制I2C總線的協(xié)議格式如圖3-2所示。I2C是PHILIPS公司設(shè)計(jì)的雙線式串行總線,具有引腳少、元件封裝方式較小、協(xié)議簡(jiǎn)單和數(shù)據(jù)傳送速度快等特點(diǎn)。I2C總線下的每個(gè)器件都有唯一的識(shí)別地址。當(dāng)I2C總線處于閑置狀態(tài)時(shí),SDA和SCL都為高電平。因?yàn)槁?lián)接到I2C接口上的器件接口必須是開(kāi)漏或者開(kāi)集,因此任一器件接口電平若置低,都會(huì)拉低引腳,也就是總線上各個(gè)設(shè)備的引腳之間都是“與”的邏輯。因?yàn)楦鱾€(gè)器件的輸出均為OC門(mén)或OD門(mén),所以各個(gè)引腳必須上拉,從而使SDA和SCL在該總線閑置時(shí)被

33、置為高電平狀態(tài)。該總線的開(kāi)始、停止和數(shù)據(jù)傳遞均取決于SCL引腳。圖3-2 I2C總線的數(shù)據(jù)傳輸格式(1) 起始信號(hào)。SCL保持高電平,若SDA線產(chǎn)生一個(gè)由高到低的電平變化,則代表起始信號(hào)。其它I2C指令在起始信號(hào)發(fā)生之后且能有效地運(yùn)行。(2) 終止信號(hào)。SCL保持高電平,若SDA線產(chǎn)生一個(gè)由低到高的電平變化,則代表終止信號(hào)。終止信號(hào)出現(xiàn)后,所有其它指令操作都無(wú)效。(3) 數(shù)據(jù)傳送。利用I2C總線傳輸數(shù)據(jù)的數(shù)據(jù)量沒(méi)有限制,并且必須以8位作為每個(gè)字節(jié)的長(zhǎng)度。數(shù)據(jù)傳遞時(shí),從MSB位開(kāi)始發(fā),并且需要有一位應(yīng)答位跟隨在每個(gè)字節(jié)后面??偩€的應(yīng)答在SCL的第九個(gè)時(shí)鐘上產(chǎn)生,且該時(shí)鐘是由總線的主機(jī)方來(lái)控制。此

34、時(shí)發(fā)送方必須將SDA置高,使接收方可以產(chǎn)生應(yīng)答信號(hào)9。3.3.2 RDA5820收發(fā)芯片的驅(qū)動(dòng)(1) 接收模式。控制RDA5820的工作方式為FM接收模式,可以通過(guò)寫(xiě)入40H內(nèi)部寄存器的CHIP_FUNC3:0=0。設(shè)置FM接收器所在的工作頻道則可以通過(guò)改變地址為03H的內(nèi)部寄存器的值。通過(guò)修改SPACE寄存器來(lái)設(shè)置自動(dòng)搜臺(tái)的步進(jìn)值(50kHz,100kHz,200kHz),頻道由寄存器CHAN9:0來(lái)選擇,頻率范圍(87MHz108MHz,76MHz108MHz,76MHz91MHz)通過(guò)寄存器BAND1:0設(shè)置。當(dāng)用戶修改03H的調(diào)諧位1時(shí),RDA5820會(huì)啟動(dòng)調(diào)諧。在調(diào)諧完成時(shí),STC位

35、會(huì)自動(dòng)置為1,用戶可以讀取寄存器0AH和寄存器0BH來(lái)獲取該頻道的狀態(tài)值(FM_READY,RSSI等)。設(shè)置為接收模式時(shí)調(diào)諧過(guò)程要持續(xù)10ms。(2) 發(fā)射模式。控制RDA5820的工作方式為FM發(fā)射模式,可以通過(guò)寫(xiě)入40H內(nèi)部寄存器的CHIP_FUNC3:0=1。設(shè)置FM發(fā)射器所在的工作頻道則可以通過(guò)改變地址為03H的內(nèi)部寄存器的值。通過(guò)修改SPACE寄存器來(lái)設(shè)置自動(dòng)搜臺(tái)的步進(jìn)值(50kHz,100kHz,200kHz),頻道由寄存器CHAN9:0來(lái)選擇,頻率范圍(87MHz108MHz,76MHz108MHz,76MHz91MHz)通過(guò)寄存器BAND1:0設(shè)置。當(dāng)用戶修改03H的調(diào)諧位1

36、時(shí),RDA5820會(huì)啟動(dòng)調(diào)諧。在調(diào)諧完成時(shí),STC位會(huì)自動(dòng)置為1,用戶可以讀取寄存器0AH和寄存器0BH來(lái)獲取該頻道的狀態(tài)值(FM_READY,RSSI等)。設(shè)置為發(fā)射模式時(shí)調(diào)諧過(guò)程要持續(xù)100ms10。其中每次修改FM收發(fā)器的發(fā)射/接收模式、頻道、音量大小時(shí),STM32會(huì)將上述數(shù)據(jù)保存在STM32自帶的FLASH中,使每次開(kāi)機(jī)時(shí)FM收發(fā)器為上次關(guān)機(jī)前的狀態(tài)和模式,用戶無(wú)需重新設(shè)置。STM32控制其穩(wěn)定工作的流程如圖3-3所示。圖3-3 RDA5820控制流程圖3.4 信號(hào)指示燈的軟件開(kāi)發(fā)本系統(tǒng)使用一個(gè)綠色貼片LED指示接收信號(hào)強(qiáng)度。根據(jù)實(shí)踐,當(dāng)FM接收模塊可以接收到FM音頻信號(hào)并播放時(shí),從R

37、DA5820寄存器中讀取的信號(hào)強(qiáng)度值(RSSI)一般為20以上,當(dāng)FM接收模塊在該頻道無(wú)法接收信號(hào)時(shí),信號(hào)強(qiáng)度值一般小于5。由此可以根據(jù)RSSI的值判斷FM接收模塊所在的工作頻道是否有可用的FM信號(hào)覆蓋,若有可用的FM信號(hào)覆蓋,則使LED亮,否則LED滅。本設(shè)計(jì)以1s為周期檢測(cè)本地該頻道的FM信號(hào)強(qiáng)度。其中1s的周期更新中斷采用STM32外設(shè)中的16位定時(shí)器(TIM2)。STM32F103C8T6的TIM2使用的是PCLK1,即TIM2的最高時(shí)鐘頻率為72MHz。TIM2的外設(shè)時(shí)鐘使用TIM2預(yù)分頻器分頻為相應(yīng)的計(jì)數(shù)時(shí)鐘后使用。通過(guò)賦值語(yǔ)句設(shè)置定時(shí)器的預(yù)分頻寄存器為7199,然后得到10kHz

38、的計(jì)數(shù)頻率。設(shè)置TIM的周期寄存器(TIM_Period)值為9999,得到1s的更新中斷。指定TIM2的周期中斷優(yōu)先級(jí)為高,在TIM2的更新中斷服務(wù)程序中檢查RSSI的值并控制LED的亮滅,完成了信號(hào)指示燈的驅(qū)動(dòng)。4. 基于STM32的FM收發(fā)器系統(tǒng)調(diào)試及結(jié)果分析4.1 FM收發(fā)器的接收模式調(diào)試及結(jié)果分析FM收發(fā)器的接收模式調(diào)試過(guò)程如下:(1) 利用USB的+5V電源或三節(jié)干電池為FM收發(fā)系統(tǒng)電路板供電。LCD顯示“Receiver”接收模式。若液晶顯示屏顯示“Sender”發(fā)送模式,則按下“切換”鍵,將FM收發(fā)器切換到FM接收模式。(2) 使用數(shù)字鍵鍵入頻道。例如“94.10 MHz (紹

39、興交通廣播)”,依次鍵入“9”、“4”、“1”、“0”,液晶顯示屏顯示“FM: 94.10 MHz”,此時(shí)喇叭將播放該電臺(tái)的節(jié)目。同時(shí)液晶顯示屏顯示信號(hào)強(qiáng)度值,若有信號(hào)則一般為大于20的值,此時(shí)信號(hào)指示燈亮,指示該頻道有可播放的FM信號(hào)。若信號(hào)強(qiáng)度值較小且信號(hào)指示燈不亮,表示該地區(qū)該頻道沒(méi)有可用FM信號(hào)覆蓋,此時(shí)喇叭無(wú)聲音或播放噪音。(3) 使用“+”、“-”鍵調(diào)節(jié)播放音量的大小,或者通過(guò)調(diào)節(jié)電位器調(diào)節(jié)音量。結(jié)果分析:經(jīng)過(guò)一系列簡(jiǎn)單調(diào)試,F(xiàn)M收發(fā)系統(tǒng)的接收模式功能已經(jīng)基本實(shí)現(xiàn)。利用信號(hào)指示燈LED的亮滅指示是否有FM信號(hào)覆蓋,使用戶體驗(yàn)更加直觀。4.2 FM收發(fā)器的發(fā)射模式調(diào)試及結(jié)果分析FM收

40、發(fā)器的發(fā)射模式調(diào)試過(guò)程如下:(1) 利用USB的+5V電源或三節(jié)干電池為FM收發(fā)系統(tǒng)電路板供電。LCD顯示“Receiver”接收模式。若液晶顯示屏顯示“Sender”發(fā)送模式,則按下“切換”鍵,將FM收發(fā)器切換到FM接收模式。(2) 使用數(shù)字鍵鍵入頻道。例如“95.90 MHz”,依次鍵入“9”、“5”、“9”、“0”,液晶顯示屏顯示“FM: 95.90 MHz”,此時(shí)液晶顯示屏顯示的信號(hào)強(qiáng)度值很小,且信號(hào)指示燈滅,喇叭無(wú)聲音或播放噪音,則指示該頻道沒(méi)有可用的FM信號(hào)覆蓋。若該頻道的信號(hào)強(qiáng)度較強(qiáng)且喇叭播放節(jié)目,則輸入其他頻道,直至該頻道沒(méi)有可用的FM信號(hào)覆蓋。(3) 查找到?jīng)]有可用FM信號(hào)覆

41、蓋的頻道后,按下“切換”鍵,將FM收發(fā)器從接收模式切換到發(fā)射模式,液晶顯示屏顯示“Sender”發(fā)射模式。(4) 使用數(shù)字鍵鍵入沒(méi)有FM信號(hào)覆蓋的頻道,例如“95.90 MHz”,依次鍵入“9”、“5”、“9”、“0”,液晶顯示屏顯示“FM: 95.90 MHz”。(5) 靠近并使用麥克風(fēng)錄入語(yǔ)音或使用3.5mm耳機(jī)接口輸入音頻。輸入信號(hào)的通道通過(guò)一個(gè)雙刀雙擲開(kāi)關(guān)切換。(6) 在一定距離范圍使用另一臺(tái)收音機(jī)或“基于STM32的FM收發(fā)器”,如果使用FM收發(fā)器則需要按“切換”鍵將其切換到FM接收模式。將收音機(jī)或處于接收模式的FM收發(fā)器的工作頻道調(diào)整到FM發(fā)射器所在的頻道,此時(shí)收音機(jī)可播放從FM發(fā)

42、射器輸入的語(yǔ)音信號(hào)或音頻信號(hào)。結(jié)果分析:經(jīng)過(guò)一系列簡(jiǎn)單調(diào)試,F(xiàn)M收發(fā)系統(tǒng)的發(fā)射模式功能已經(jīng)基本實(shí)現(xiàn)。FM收發(fā)器的發(fā)射功能可以將從麥克風(fēng)輸入的語(yǔ)音信號(hào)或從3.5mm耳機(jī)接口輸入的音頻信號(hào)通過(guò)未被占用的FM頻道較好地發(fā)射出去,且噪音和失真很小。結(jié)論本文詳細(xì)介紹并闡述了基于STM32的FM收發(fā)器的硬件設(shè)計(jì)和軟件開(kāi)發(fā)過(guò)程。其中主要包括單片機(jī)控制模塊、液晶顯示模塊、矩陣鍵盤(pán)輸入模塊、音頻輸入模塊、音頻功放模塊、FM收發(fā)模塊和音頻濾波模塊。單片機(jī)控制模塊使用STM32F103C8T6單片機(jī)執(zhí)行每個(gè)硬件模塊的驅(qū)動(dòng)和協(xié)調(diào)工作。LCD顯示模塊使用NOKIA5110液晶顯示屏,完成FM頻道、信號(hào)強(qiáng)度、收發(fā)模式和音

43、量大小的顯示功能。鍵盤(pán)輸入模塊采用4*4矩陣薄膜鍵盤(pán),通過(guò)鍵盤(pán)按鍵輸入修改FM收發(fā)器的收發(fā)模式、音量大小、FM工作頻道等。音頻輸入模塊通過(guò)麥克風(fēng)錄入語(yǔ)音或者使用3.5mm耳機(jī)接口輸入音頻。音頻濾波模塊使用一個(gè)二階有源帶通濾波器濾除多余頻帶的信號(hào),在信號(hào)輸入FM發(fā)射模塊或FM接收模塊輸出音頻信號(hào)時(shí)均采用該帶通濾波器濾波。FM收發(fā)器繼而完成音頻的低噪放大、調(diào)制、解調(diào)等處理功能。應(yīng)用Realview MDK軟件開(kāi)發(fā)環(huán)境生成的代碼控制STM32的運(yùn)行,使硬件部分的各個(gè)模塊協(xié)調(diào)運(yùn)行。根據(jù)實(shí)測(cè)結(jié)果,基于STM32的FM收發(fā)器調(diào)試較為成功,實(shí)現(xiàn)了基本功能,人機(jī)接口友好,將FM調(diào)頻的發(fā)射和接收功能相結(jié)合,且為

44、全數(shù)字式控制,具有一定應(yīng)用意義。參考文獻(xiàn)1 姜?jiǎng)贊?FM廣播天線原理、測(cè)試與維護(hù)J.遼寧廣播電視技術(shù),2007,1:39402 吳瓊瑤.FM廣播發(fā)射技術(shù)的現(xiàn)狀及展望J.電視設(shè)備通訊,1993,1:24263 張旭,李世光等.基于STM32電力數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)J.電子測(cè)量技術(shù),2010,33(11):90934 successzsj.Nokia5110 LCD應(yīng)用資料EB/OL. sOFCUn3lsrJ_fEcn-ve8UUoLRPf4Lv76kbYZ5tzL4BVaO2PdS4jNZnlPhL2BUh1ODUwqrw0tbWAP1yPPu3EhFDDO,2015-05-05/2015-05-

45、085 杜蕓強(qiáng),畢淑娥.LM386在小功率主動(dòng)聲吶發(fā)射及接收電路中的應(yīng)用J.電聲技術(shù),2010,34(07):37406 王曉峰,王素香,武曉威等.基于STC12LE5A16S2和RDA5820的校園調(diào)頻無(wú)線廣播系統(tǒng)的設(shè)計(jì)J.電力學(xué)報(bào),2013,28(05):4344357 康華光.電子技術(shù)基礎(chǔ)M.北京:高等教育出版社,2006:4174198 黃忠良.線反轉(zhuǎn)法矩陣鍵盤(pán)程序設(shè)計(jì)J.電腦學(xué)習(xí),2011,1:61629 張毅剛,彭喜元,彭宇.單片機(jī)原理及應(yīng)用M.北京:高等教育出版社,2010:27427910 lh569965.RDA5820系列編程指南V3.0EB/OL. MIOhjUHeSQt

46、ZpwrUMcD-cYsk8wj_lC5GyJkcQ3zU8NNkTd8Ahoql7mMCHbL5L6q51h0AuBUh_PfBqeQ2euJKBEIvdrMTu, 2015-05-05/2015-05-08附錄1 實(shí)物圖附錄2 系統(tǒng)原理圖附錄3 各模塊程序(1) 主程序main.c代碼如下:#include "stm32f10x.h"#include "nokia5110.h"#include "kbd.h"#include "i2c.h"#include "rda5820.h"#inclu

47、de "interface.h"#include "indicator.h"/*dec*/void RCC_Config(void);void FLASH_Save(void);u32 FLASH_Read(u8 addr);int main()RCC_Config();/*Disable JTAG Debug EnbaleSWD*/GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);/*flash init*/ FLASH_ClearFlag(FLASH_FLAG_BSY | FLASH_FL

48、AG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR);vol = FLASH_Read(0);freq = FLASH_Read(1);freq2 = FLASH_Read(2);state = FLASH_Read(3);if(!(vol<16 && vol) vol = 5; /修正音量if(!(freq>7000 && freq<10000) freq = 9410; /修正接收頻率if(!(freq2>7000 && freq2<10000) freq2 = 959

49、0; /修正發(fā)送頻率if(state!=1 && state!=0) state = 0; /修正狀態(tài)/*液晶屏*/LCD5110_Init();LCD_clear();/*init rda5820*/Rda5820Init(); /initializationRda5820VolSet(vol); /volume 5 默認(rèn)音量:5Rda5820SpaceSet(2); /step 50KHz(0.05MHz)Rda5820BandSet(2); /band 76108MHzRda5820TxPgaSet(5); /輸入增益:6Rda5820TxPagSet(63); /最大發(fā)

50、射功率if(state)Rda5820TxMode();Rda5820FreqSet(freq2);TxShow();elseRda5820RxMode();Rda5820FreqSet(freq);RxShow();Indicator_Init(); /信號(hào)指示燈while(1)kbdHandler(kbdScan();/* check oneSecond Flag*/if(OneSec)OneSec = 0; rssi = Rda5820RssiGet();if(rssi>15) LED_ON;else LED_OFF;if(state) TxShow();else RxShow()

51、; /*ClockInitialization*/void RCC_Config()RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO , ENABLE); /Enable GPIOA,GPIOB ClockRCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2 , ENABLE);#define StartAddr (u32)0x08008000)void FLASH_Save()u8 i;u32 dat4;dat0 = vol;dat1=

52、freq;dat2=freq2;dat3=state;FLASH_Unlock();FLASH_ClearFlag(FLASH_FLAG_BSY | FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR);for(i=0;i<4;i+)FLASH_ErasePage(StartAddr+i*4 );for(i=0;i<4;i+)FLASH_ProgramWord(StartAddr+i*4 , dati);FLASH_Lock();u32 FLASH_Read(u8 addr)return (u32)(*(vu32*)(St

53、artAddr+4*addr);(2) FM收發(fā)模塊驅(qū)動(dòng)程序RDA5820.c代碼如下:#include "stm32f10x.h"/#include "ioremap.h"/#include "delay.h"#include "i2c.h" #include "rda5820.h"void DelayMs(u16 tCount) unsigned char a,b,c;for(;tCount;tCount-) for(c=1;c>0;c-) for(b=56;b>0;b-) fo

54、r(a=137;a>0;a-);/初始化/0,初始化成功;/其他,初始化失敗.u8 Rda5820Init(void) u16 id; IIcInit(); /初始化IIC口 id=Rda5820ReadReg(RDA5820_R00); /讀取ID =0X5805 if(id=0X5805) /讀取ID正確 Rda5820WriteReg(RDA5820_R02,0x0002); /芯片軟復(fù)位 DelayMs(400);/等待復(fù)位結(jié)束Rda5820WriteReg(RDA5820_R02,0x0001);/芯片上電DelayMs(600); Rda5820WriteReg(RDA5820_R02,0xD201); /芯片上

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論