基于STM32的PWM音乐播放器应用设计t

时间:2012-12-07来源:网络

2.1.1 系统时钟设置
要保证定时的准确性,必须先确保系统时钟的设置是我们所预期的。定时器时钟分配如图1所示。通过编程使SYSCLK为72 MHz,APB1预分频后得到PCLK1为36 MHz,再经TIM2~TIM7倍频器得到TIM2~TIM7时钟72 MHz。时钟源多采用HSE(外部时钟源),对于STM32F103,其外部时钟为8 MHz,而STM32F107外部时钟为25 MHz,因此,在使用HSE做时钟源时,这两种器件产生SYSCLK的分频和倍频方式不同,需要使用者引起注意。


j.JPG

3 用PWM控制蜂鸣器播放音乐
3.1 硬件电路设计
蜂鸣器电路如图2所示。需要注意的是,有源蜂鸣器是以固定频率工作,加电即可鸣叫,无源蜂鸣器可以用不同频率输入信号来控制发声,因此,需要选择无源蜂鸣器。核心控制器件选择STM32F103VET6,其引脚PB5连接到BEEP。由电路可知,当PB5为高电平时,蜂鸣器可工作,只要控制PB5高低电平输出形成的矩形波的频率就可以控制蜂鸣器演奏音乐。

a.JPG


3.2 程序设计
3.2.1 制作乐谱
音阶的产生依赖于PWM输出信号的频率。为了简化设计,我们令定时器的TIM_Period为1 999,且占空比始终为50%,根据式(1)则TIM_ Pulse为1000。此时,PWM输出信号频率仅与定时器预分频系数TIM_Prescaler有关,只需要调整该系数,即可得到所需信号频率。
TIM_Prescaler由下式得到:
d.JPG
式(2)中,fsound为音阶对应的频率,如低音Do频率为262 Hz。要产生该音频,TIM_Prescaler应为136。
乐谱由音阶和节拍组成,每两个元素为一组,前者表示音阶,后者表示节拍。节拍以1/4拍为基准,存放的数值为1/4拍的倍数。相关代码如下:
a.JPG

1 2 3

关键词: STM PWM 32 音乐播放器

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版