基于STM32的PWM音乐播放器应用设计_马志强

基于STM32的PWM音乐播放器应用设计_马志强

ID:43000140

大小:147.25 KB

页数:3页

时间:2019-09-23

基于STM32的PWM音乐播放器应用设计_马志强_第1页
基于STM32的PWM音乐播放器应用设计_马志强_第2页
基于STM32的PWM音乐播放器应用设计_马志强_第3页
资源描述:

《基于STM32的PWM音乐播放器应用设计_马志强》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、基于STM32的PWM音乐播放器应用设计马志强,王建刚,孙少林,胡明(总参谋部通信训练基地,宣化075100)摘要:基于32位的STM32F103,利用PWM产生的音频信号驱动蜂鸣器演奏乐曲,实现了音乐播放器的应用设计。该播放器能实现从低音到高音的21个音阶,并能根据乐谱演奏完整的曲目。测试结果表明,PWM的输出信号与各音阶对应的声音频率基本一致,方案切实可行。这一方法也可用于电机控制、电子琴设计等方面,具有较好的实用性。关键词:STM32;PWM;蜂鸣器;定时器;音乐中图分类号:TP273文献标识码:AAppli

2、cationDesignofPWMMusicPlayerBasedonSTM32MaZhiqiang,WangJiangang,SunShaolin,HuMing(CommunicationTrainingBaseofPLAGeneralStaffHeadquarters,Xuanhua075100,China)Abstract:Basedon32-bitSTM32F103,usingaudiosignalsproducedbyPWMtodriveabuzzertoplaymusic,amusicplayerisd

3、e-signed.Theplayercanrealize21scalesfrombasstotrebleandplaycompletesongsaccordingtomusicscores.TestresultsshowthattheoutputsignalsofPWMareconsistentwiththecorrespondingvoicefrequencyofthescales,andtheschemeisfeasible.Thismethodcanalsobeusedinmotorcontrol,keybo

4、arddesignandsoon,showinggoodpracticality.Keywords:STM32;PWM;buzzer;timer;music在科研项目开发中,有时会遇到需要播放电话铃声、音乐等情况。简单的做法是购买专用音乐芯片,但该方法的缺点是播放的内容不可变,不能很好地满足项目需求。一般地,可采用89C51等单片机实现音乐播放[1-3],其播放内容及歌曲数量都可以随时修改,使用上相对方便。随着STM32系列微处理器的出现,其基于ARMCortex-M内核的32位闪存微控制器,高达72MHz的主频,

5、高集成度、实时性、数字信号处理、低功耗、低电压操作等众多特点,使得其应用越来越广泛。本文基于STM32处理器,根据乐曲简谱制作供程序识别的乐谱,并利用内部定时器产生PWM输出信号,驱动蜂鸣器完成自定义乐谱的播放。经测试,播放效果良好。1乐谱简析1.1音阶音阶是音乐必不可少的要素,主要由声音的频率决定。通过给蜂鸣器不同频率的音频脉冲,可以产生不同的音阶,而要产生某频率的音频脉冲,最简单的办法是算出该音频的周期,然后将此周期除以2即为半周期的时间。通过程序控制单片机某引脚半周期为“高”、半周期为“低”,不断交替变换,即

6、可产生该频率的矩形波,接到蜂鸣器上就可发出该频率的声音。若想改变音阶,只需要改变半周期时间即可。表1为C调时音符频率对照表,据此可产生不同音阶的音符。“#”表示半音,用于上升或下降半个音,乘以2就提升该声音一个8度音阶,减半则降一个8度。表1C调时音符频率对照表音符低音/Hz中音/Hz高音/Hz126252310462294578117533306591318434969813975392784156864408801760749498819761.2节拍若要构成音乐,光有音阶是不够的,还需要节拍,也就是音符持续

7、时间的长短,一般用拍数表示。至于1拍是多少秒,没有严格的规定,只要节拍适宜,声音悦耳即可。假如某首歌曲的节奏是每分钟120拍,那么1拍为0.5s,1/4拍为0.125s,以此类推可得到其他节拍对应的时长。这样,利用不同的频率,加上与拍数对应的延时,就构成了敬请登录网站在线投稿2012年第11期63乐曲。2STM32中的定时器[4]音阶的产生与声音频率有关,为了实现不同音阶,必须能为蜂鸣器提供不同频率的脉冲。为此,选择STM32芯片,利用其自带的定时器,通过PWM产生脉冲信号。STM32中一共有11个定时器,包含2个

8、高级控制定时器、4个普通定时器、2个基本定时器,以及2个看门狗定时器和1个系统滴答定时器SysTick。其中,TIM1和TIM8是高级定时器,时钟由APB2的输出产生。TIM2~TIM5是普通定时器,TIM6和TIM7是基本定时器,这6个定时器的时钟由APB1的输出产生。2.1定时时长的计算定时器的一个主要功能就是到指定时间就会产生一个溢出事件,这个时间的设

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。