新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于STM32的PWM音樂播放器應(yīng)用設(shè)計

基于STM32的PWM音樂播放器應(yīng)用設(shè)計

作者: 時間:2012-12-08 來源:網(wǎng)絡(luò) 收藏

2.1.1 系統(tǒng)時鐘設(shè)置
要保證定時的準(zhǔn)確性,必須先確保系統(tǒng)時鐘的設(shè)置是我們所預(yù)期的。時鐘分配如圖1所示。通過編程使SYSCLK為72 MHz,APB1預(yù)分頻后得到PCLK1為36 MHz,再經(jīng)TIM2~TIM7倍頻器得到TIM2~TIM7時鐘72 MHz。時鐘源多采用HSE(外部時鐘源),對于F103,其外部時鐘為8 MHz,而F107外部時鐘為25 MHz,因此,在使用HSE做時鐘源時,這兩種器件產(chǎn)生SYSCLK的分頻和倍頻方式不同,需要使用者引起注意。


j.JPG

3 用控制播放音樂
3.1 硬件電路設(shè)計
電路如圖2所示。需要注意的是,有源是以固定頻率工作,加電即可鳴叫,無源蜂鳴器可以用不同頻率輸入信號來控制發(fā)聲,因此,需要選擇無源蜂鳴器。核心控制器件選擇F103VET6,其引腳PB5連接到BEEP。由電路可知,當(dāng)PB5為高電平時,蜂鳴器可工作,只要控制PB5高低電平輸出形成的矩形波的頻率就可以控制蜂鳴器演奏音樂。

a.JPG


3.2 程序設(shè)計
3.2.1 制作樂譜
音階的產(chǎn)生依賴于輸出信號的頻率。為了簡化設(shè)計,我們令的TIM_Period為1 999,且占空比始終為50%,根據(jù)式(1)則TIM_ Pulse為1000。此時,輸出信號頻率僅與預(yù)分頻系數(shù)TIM_Prescaler有關(guān),只需要調(diào)整該系數(shù),即可得到所需信號頻率。
TIM_Prescaler由下式得到:
d.JPG
式(2)中,fsound為音階對應(yīng)的頻率,如低音Do頻率為262 Hz。要產(chǎn)生該音頻,TIM_Prescaler應(yīng)為136。
樂譜由音階和節(jié)拍組成,每兩個元素為一組,前者表示音階,后者表示節(jié)拍。節(jié)拍以1/4拍為基準(zhǔn),存放的數(shù)值為1/4拍的倍數(shù)。相關(guān)代碼如下:

a.JPG

pwm相關(guān)文章:pwm是什么


pwm相關(guān)文章:pwm原理


蜂鳴器相關(guān)文章:蜂鳴器原理


關(guān)鍵詞: STM32 PWM 蜂鳴器 定時器

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉