基于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 ...
随机推荐
- MongoDB初学者的配置环境和基础设施的使用
一个.mongoDB安装 1.第一MongoDB官方网站下载安装包http://www.mongodb.org/. 依照自己的操作系统进行下载. 2.在硬盘上建立两个文件夹分辨存放mongoDB安装文 ...
- Flex列在一个表格式的数字值
1.问题背景 一般的.表格中展示的比率.对照率的处理是:保留两位小数,并向上保留 2.实现实例 <? xml version="1.0" encoding="utf ...
- Entity Framework执行Sql语句返回DataTable
Entity Framework中对外开放了数据库连接字符串,使用的时候可以直接得到这个连接字符串,然后进行相关的操作.如果在使用的过程中,发现Entity Framework中有一些满足不了的需求的 ...
- 10分钟学会Linux
10分钟学会Linux有点夸张,可是能够让一个新手初步熟悉Linux中最重要最主要的知识,本文翻译的英文网页在众多Linux入门学习的资料中还是很不错的. 英文地址:http://freeengine ...
- .NET中IDisposable接口的基本使用
首先来看MSDN中关于这个接口的说明: [ComVisible(true)] public interface IDisposable { // Methods void Dispose(); } 1 ...
- 使用ArcGIS API for Silverlight 进行复合多条件空间查询
原文:使用ArcGIS API for Silverlight 进行复合多条件空间查询 这两天帮网上认识的一个兄弟做了一个查询的示例,多多少少总结一下,在此和大家分享. 为什么说是复合多条件呢?因为进 ...
- UML之轻松入门(2)-掌握Junit,让我们的开发更高效
使用UML不仅能够形象化的表达我们的程序思想,并且能够帮助我们提高程序的质量.一个杂乱无章的程序让维护者望而生畏,其成本也可想而知.在面向程序设计(OOD)中有5条原则是帮助我们设计一个高效 ...
- oracle删除重复记录,只保留rowid最小的记录
初探oracle删除重复记录,只保留rowid最小的记录 如题,初探oracle删除重复记录,只保留rowid最小的记录(rowid可以反映数据插入到数据库中的顺序) 一.删除重复记录可以使用多种 ...
- JavaScript重载解读
在JavaScript有一个特殊的数据类型---Function种类,JavaScript每个功能Function的类型,例如可以.由于函数是对象.指针,不会与某个函数绑定. <pre name ...
- Robotium源码分析之Instrumentation进阶
在分析Robotium的运行原理之前,我们有必要先搞清楚Instrumentation的一些相关知识点,因为Robotium就是基于Instrumentation而开发出来的一套自动化测试框架.鉴于之 ...