基于Stm32的MP3播放器设计与实现
原创博文,转载请注明出处
这是我高级电子技术试验课做的作业,拿来共享一下。项目在安福莱例程基础之上进行的功能完善,里面的部分内容可参考安福莱mp3例程。当然用的板子也是安福莱的板子,因为算起来总共做了也没几天,技术含量嘛,一般般,大家不喜勿喷。如果你正在学习stm32,希望能帮助到你。
项目代码已提交到我的github,点击进入。
下面是一些简单的介绍。
摘 要
Cortex-M3是ARM公司为要求高性能(1.25 Dhrystone MIPS/MHz)、低成本、低功耗的嵌入式应用专门设计的内核。STM32系列产品得益于Cortex-M3在架构上进行的多项改进,包括提升性能的同时又提高了代码密度的Thumb-2指令集和大幅度提高中断响应的紧耦合嵌套向量中断控制器,所有新功能都同时具有业界最优的功耗水平。
本报告给出一个由STM32、普通SD卡、VS1003B硬件解码芯片以及其他外围器件构成的MP3播放器。系统采用ARM Cortex-M3内核的STM32F103ZE作为微控制器,结合VS1003B音频解码芯片,SD卡存储器,TFT液晶显示屏等外围设备,以及FAT文件操作,设计并实现了可以控制暂停、播放、静音、删除、选择歌曲和调整音量的MP3播放器。本报告从硬件设计和软件设计两个方面对该MP3播放器的工作过程做了详尽分析。
关键词:STM32F103ZE、VS1003、FAT、Fonts、SD卡、MP3播放器
1、设计目的
MP3是MPEG Audio Layer3的简称,其实就是一种音频压缩技术。通过这个技术,MP3可以把音乐以1:10甚至1:12的压缩率压缩,从而大大降低了音乐文体的体积。由于MP3体积小,音质高的特征,所以MP3格式的音乐被广泛传播。
本次实验的目的是通过制作一个MP3播放器有助于我们更加了解对STM32、SPI接口、SD卡、TIMER、中断、FAT文件系统、VS1003B解码器的应用。
2、设计任务与性能指标
整个系统的功能实现包括:
1、SD卡读写
2、FAT文件系统
3、LCD人界界面
4、MP3文件播放
对于播放器的歌曲控制功能则包括暂停、播放、静音、删除、选择歌曲和调整音量。
3、系统总体设计与工作原理
STM32嵌入式MP3播放器由微处理器STM32F103ZE、SD卡、I2S音频DAC、VS1003B音频解码芯片、电源电路、晶振电路、复位电路、SPI总线、RS232串口、功能按键、指示灯、JTAG接口及各种扩展接口组成。
整个系统模块分为四个模块:MCU主芯片、CPU外围电路、VS1003B音频解码芯片、TFT液晶显示。MCU是STM32主芯片的最小板,上面有芯片工作需要的最小资源:时钟控制电路、复位电路、JTAG控制口以及与外围电路的接口。CPU外围电路上集成了稳压电源、滤波电路、SD卡、与液晶及音频解码芯片的连接电路。VS1003B和液晶分别是单独的音频解码芯片、控制显示部分。
整个系统的工作原理:STM32F103ZE微控制器首先对硬件设备进行初始化,然后读取SD卡中的音乐文件,并将数据送入VS1003B进行音频解码,得到模拟的音乐流,从而实现MP3的播放功能,同时结合TFT显示屏和功能按键实现了人机交互。
系统框图如下:
基于Stm32的MP3播放器设计与实现的更多相关文章
- 基于GStreamer编写Mp3播放器
一.简介 作者系统为CentOS6,本文在此基础上对Mp3播放器进行开发,需要使用mp3解码库libmad和gstreamer0.10-plugins-ugly,详细步骤如下. 二.操作步骤 1) ...
- 你用java的swing可以做出这么炫的mp3播放器吗?
这个mp3播放器是基于java的swing编写的,我认为界面还是可以拿出来和大家看一看评一评. 先说说创作的初衷,由于前段时间工作不是很忙,与其闲着,还不如找一些东西来给自己捣腾捣腾,在 之前写的 j ...
- MP3播放器团队项目
一.设计思路 程序要求能播放MP3文件,因此需调用库中的播放方法:右键工具箱选择项,添加com组件,选择window media player后工具箱就会多一个控件,然后拖到窗体中就OK了.另在窗体中 ...
- 基于ffmpeg的C++播放器1
基于ffmpeg的C++播放器 (1) 2011年12月份的时候发了这篇博客 http://blog.csdn.net/qq316293804/article/details/7107049 ,博文最 ...
- x宝23大洋包邮的老式大朝华MP3播放器简单评测
(纯兴趣测评,非广告) 最近逛X宝,看到了这个古董级MP3播放器居然还在售,于是脑抽+情怀泛滥买了一个. 然后呢,从遥远的深圳跨越好几千公里邮过来了这个玩意: 那节南孚5号电池是我自己的,是为了对比一 ...
- 从零开始学习PYTHON3讲义(十四)写一个mp3播放器
<从零开始PYTHON3>第十四讲 通常来说,Python解释执行,运行速度慢,并不适合完整的开发游戏.随着电脑速度的快速提高,这种情况有所好转,但开发游戏仍然不是Python的重点工作. ...
- 基于jQuery虾米音乐播放器样式代码
分享一款基于jQuery虾米音乐播放器样式代码.这是一款基于jquery+html5实现的虾米音乐播放器源码下载.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div c ...
- 团队编程--MP3播放器
设计思路: 这次的作业是一个MP3播放器,它是一个团队项目.由于我们都没接触过这类的编程.刚开始的时候我们是不知道从什么地方着手的.经过我们的商量我们决定从现在市场主流的音乐播放器上找到几个主要的功能 ...
- 你也可以用java的swing可以做出这么炫的mp3播放器_源码下载
I had published the blog : 你用java的swing可以做出这么炫的mp3播放器吗? and to display some screenshots about this M ...
随机推荐
- Web采矿技术
一.数据挖掘 数据挖掘是运用计算机及信息技术,从大量的.不全然的数据集中获取隐含在当中的实用知识的高级过程.Web 数据挖掘是从数据挖掘发展而来,是数据挖掘技术在Web 技术中的应用.Web 数据 ...
- bigdata_hive_Issue of Vectorization on Parquet table
When Vectorization is turned on in Hive:set hive.vectorized.execution.enabled=true;If the involved t ...
- PHP连接Access数据库代码
使用php的odbc函数,不创建数据源. $connstr="DRIVER=Microsoft Access Driver (*.mdb);DBQ=".realpath(" ...
- 每日算法37:Rotate Image (图像旋转)
You are given an n x n 2D matrix representing an image. Rotate the image by 90 degrees (clockwise). ...
- JavaWeb显示器
本文研究的总结.欢迎转载,但请注明出处:http://blog.csdn.net/pistolove/article/details/44310967 A:监听器的定义 专门用于其它对象身上 ...
- 【Java编码准则】の #12不要使用不安全或者强度弱的加密算法
安全性要求高的应用程序必须避免使用不安全的或者强度弱的加密算法,现代计算机的计算能力使得攻击者通过暴力破解能够攻破强度弱的算法.比如,数据加密标准算法DES是极度不安全的,使用类似EFF(Electr ...
- SharePoint 2013 搜索SharePoint 特定列和特定文档(自己定义搜索)
SharePoint 2013 搜索SharePoint 特定列和特定文档 1,操作步骤和图例,因语言和版本号的不同 我尽量使用抓图方式. 2. In Central Administration, ...
- linux 虚拟文件系统
转自:https://www.ibm.com/developerworks/cn/linux/l-cn-vfs/ Linux 允许众多不同的文件系统共存,并支持跨文件系统的文件操作,这是因为有虚拟文件 ...
- C++语言笔记系列之十二——C++的继承
C++的继承 1.继承方式 public(公有继承) 派生类中的成员能够訪问基类的public成员和protected成员,但不能訪问基类的private成员. 派生类的对象仅仅能訪问基类的publi ...
- MVC验证03-自定义验证规则、禁止输入某些值
原文:MVC验证03-自定义验证规则.禁止输入某些值 本文继续体验自定义验证规则,需求是禁止输入某些值.本文与前2篇相关,请参考:MVC验证01-基础.远程验证 MVC验证02-自定义验证规则.邮 ...