基于stm32的mp3播放器设计与实现(提供mdk完整源码)

基于stm32的mp3播放器设计与实现(提供mdk完整源码)

ID:873880

大小:553.03 KB

页数:23页

时间:2017-09-22

基于stm32的mp3播放器设计与实现(提供mdk完整源码)_第1页
基于stm32的mp3播放器设计与实现(提供mdk完整源码)_第2页
基于stm32的mp3播放器设计与实现(提供mdk完整源码)_第3页
基于stm32的mp3播放器设计与实现(提供mdk完整源码)_第4页
基于stm32的mp3播放器设计与实现(提供mdk完整源码)_第5页
资源描述:

《基于stm32的mp3播放器设计与实现(提供mdk完整源码)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、本文将介绍一个利用STM32处理器实现简易MP3Player的设计实例,这个综合应用实例有助于读者了解STM32、SPI接口、SD卡、TIMER、中断、FAT文件系统、USB等的应用。这里提供了两种设计方案,第一种方案是简易声波播放器,仅使用STM103V100评估板,令计时器TIM4工作在PWM模式下,将wav格式的声波文件从SD卡中读出,由TIM4产生不同频率的方波通过低通滤波器和放大器送喇叭,如图1所示;第二种方案则是简易MP3播放器,还需要使用额外的解码芯片,将MP3格式的文件从SD卡读出,然后送解码芯片解码播放,如图2所示。本节将先介绍SD

2、卡、FAT16文件格式、VS1003编解码器等关键部分,然后再分别给出两种设计方案的软件设计。图1简易声波播放器方案图2简易MP3Player方案1SD卡的结构及读写方法STM103V100评估板有SD连接器,其使用SPI总线与STM32处理器连接,如图3所示。图3SD连接器与STM32处理器SPI连接图SD卡(SecureDigitalMemoryCard)是一种为满足安全性、容量、性能和使用环境等各方面的需求而设计的一种新型存储器件,SD卡允许在两种模式下工作,即SD模式和SPI模式,本系统采用SPI模式。本小节仅简要介绍在SPI模式下,STM3

3、2处理器如何读写SD卡,如果读者如希望详细了解SD卡,可以参考相关资料。SD卡内部结构及引脚如图4所示。图4SD卡内部结构及引脚SD卡主要引脚和功能为:n        CLK:时钟信号,每个时钟周期传输一个命令或数据位,频率可在0~25MHz之间变化,SD卡的总线管理器可以不受任何限制的自由产生0~25MHz的频率;n        CMD:双向命令和回复线,命令是一次主机到从卡操作的开始,命令可以是从主机到单卡寻址,也可以是到所有卡;回复是对之前命令的回答,回复可以来自单卡或所有卡;n        DAT0~3:数据线,数据可以从卡传向主机也可

4、以从主机传向卡。    SD卡以命令形式来控制SD卡的读写等操作。可根据命令对多块或单块进行读写操作。在SPI模式下其命令由6个字节构成,其中高位在前。SD卡命令的格式如表1所示,其中相关参数可以查阅SD卡规范。--------------表1SPI命令格式Byte1/Byte2-5/Byte67,6,5,0/31,0/7,00,1/Command/CommandArgument/CRC,1------------------------------------下面分别给出读写SD卡的两个函数:n        读取SD卡函数u8MSD_ReadBl

5、ock(u8*pBuffer,u32ReadAddr,u16NumByteToRead);/******************************************************************FunctionName:MSD_ReadBlock*Description   :ReadsablockofdatafromtheMSD.*Input         :-pBuffer:pointertothebufferthatreceivesthedataread*                   fromtheMSD

6、.*                 -ReadAddr:MSD'sinternaladdresstoreadfrom.*                 -NumByteToRead:numberofbytestoreadfromtheMSD.*Output        :None*Return        :TheMSDResponse:-MSD_RESPONSE_FAILURE:Sequencefailed*                 -MSD_RESPONSE_NO_ERROR:Sequencesucceed************

7、*****************************************************/u8MSD_ReadBlock(u8*pBuffer,u32ReadAddr,u16NumByteToRead){ u32i=0; u8rvalue=MSD_RESPONSE_FAILURE; /*MSDchipselectlow*/ MSD_CS_LOW(); /*SendCMD17(MSD_READ_SINGLE_BLOCK)toreadoneblock*/ MSD_SendCmd(MSD_READ_SINGLE_BLOCK,ReadAdd

8、r,0xFF); /*CheckiftheMSDacknowledgedthereadblockcomman

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

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

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