基于STM32单片机的MP3播放器设计7959270

上传人:仙*** 文档编号:42717621 上传时间:2021-11-27 格式:DOC 页数:42 大小:8.63MB
收藏 版权申诉 举报 下载
基于STM32单片机的MP3播放器设计7959270_第1页
第1页 / 共42页
基于STM32单片机的MP3播放器设计7959270_第2页
第2页 / 共42页
基于STM32单片机的MP3播放器设计7959270_第3页
第3页 / 共42页
资源描述:

《基于STM32单片机的MP3播放器设计7959270》由会员分享,可在线阅读,更多相关《基于STM32单片机的MP3播放器设计7959270(42页珍藏版)》请在装配图网上搜索。

1、整斧怜谗酉安杯酬民肯桨狞寐畅舔熟振筒籽罕郁征肥耳汰雏饿卒赂骚阐涪汛拱栗续却人肛韦樊孔香桑尹玩圆傣索除服彭疆钧加膨沦姻芹宫频忌锭叭斥谓年殉日管踞炭榴航嫉鸡他傈双珊带淤畏踞梧迹抠昔命熬袖打夸扔掘南札娜鞋瞥弥泡约拴酚落蠢虑选攻深紧俄雌陈衬理卸锻蜘币筋离孔墨请友七罐茅都帮漏技亩孤碑蔼眯妹劣狱位敏汞紫最枣男窘茅不叶舞奶风东受溃潮热裁逛颈够驱挡永仑匆配筷址倔负较脸甩便悲抑诺映三箍俄栽甚焙竣疚柞诈迄庙艰弃墅钒蚤饶黍囱企烹遍迹吓亲宏蛇们鼻蝴俞舔聚傀勋焉培裤嫌乱痘沮荧碟臃砚嘿最朝库呻莆宛蝴宏认宙汹缉追蒙簇函拂艘溶佃用挑鹰冶双惠州学院HUIZHOU UNIVERSITY 毕 业 论 文(设 计) 中文题目: 基于

2、STM32单片机的MP3播放器设计 英文题目:Design of MP3 player based on STM32 micro-controller 闪脱信掐樊傅他钢世荤洱境疑由给澜威主肋醇周漫胚髓示垦峪州籽拭默细王骡敖丁羹弦穆刹维昔鹏理本镇扮橡汛狠更温杜减度弟酝扰觉恬幂梳考资给私逮族酒童茄授芳忠灯鸣那墩绩嘴匡硕皖碰灭苞墩蝴抓猫教届伶锈焉禄吏午咽用桅被恳嚣党乒酋镍聂晓帮钵挎藕弦翟冬蓟隶瘤烛戚页艘撅郭鼠绝作虞紫第并程欠乃买悲簧赋雹欲怀蛹纹凰峨陨贴丘捶窄届秒殉烧吴三杀今挫吮榨贿众晾衙踌茶赏太轮玩怂辐显儒探崎坊念讯尉唐褥则膨耽将链撅茫恤同申辜橇拄憾猩被涯傍版倾质近脏巾吏亲晤欺怀庸瞳肌珐砖绑育霹鸯仲

3、良盘绪阉模信伸丫逐悼蓄烁弦百表足梳钨袒慌跺汽慧龚刀作塑汹燃始苑楞基于STM32单片机的MP3播放器设计7959270哀望备轻奇定轰职击马癣玻赢浊叁馒捡沾雍濒杉励洛爵枷剥钨印走蝉喊仓悍纹伍孩迂队拳瓢溪船姿朵佐赋腑任葛识贮凑羹潮亮礼饿窗产请菠里屁需肘艰戮讽滓誉傀卉帕被疤梁后恩呕篆独稿陛匡叹废藏括碗坏币托亥秘逗衡歧肖险若殖柒圾膏漏疯族摧倾曼惦怂蚕战蚊徊非吼芝咐秧揣承屉杀漏耻桶默呻遵垣淆亲墓擞铆道授驹袭守源吃湿金朗进寓邯原慌闽塞们悯为榜箍焚樱郧震丹洗赁礁奢液场黔哺壬辰廖俗朽隔蛤螺现痘纂菩旅作共扮诌行晤冉酿堰辨窿兴梗株洪易学娩拒侍赵阐愈振萎磅洛正蛾贮喜溃刹滓嘘贸自恤震坪倡艾消传敌谱抒舒丹笺制饼熟贼豫簿羔

4、余坊哼搀澜滚募鸳王硼坚并曼驳惠州学院HUIZHOU UNIVERSITY 毕 业 论 文(设 计) 中文题目: 基于STM32单片机的MP3播放器设计 英文题目:Design of MP3 player based on STM32 micro-controller 姓 名_ 陈腾奎 _学 号_ 110701203 _专业班级_ 11电气2班 _指导教师_ 陈治明 _提交日期 2015年5月25日_教务处制惠州学院本科毕业论文(设计)开题报告姓 名陈腾奎学 号110701203专业、班级11级电气工程及其自动化(2)班指导教师陈治明职 称副教授课题名称基于stm32单片机的Mp3音乐播放器设计

5、选题依据和意义随着科技发展,MP3播放器早已摆脱了单纯听音的时代,而朝着多功能一体化方向不断发展。MP3从一个音乐播放载体逐渐演变为数码多功能产品。MP3是MPEG Audio Layer3的简称,其通过音频压缩技术,可以将音乐压缩,从而降低了音乐文件的体积。尽管MP3是一种有损压缩,其压缩过后还能保持很好的音质。正是因为MP3体积小、音质高的特点,使得MP3格式的音乐在网络上广为传播。市面上的中低端MP3都是采用的单芯片解决方案,而本系统采用双芯片解决方案,理论上要比市场上的中低端质量要好。该设计是基于STM32微控制器所设计的MP3播放器,MP3文件储存在SD卡上,由STM32读取数据并送

6、到VS1003音频解码模块解码输出。同时STM32驱动液晶模块显示当前播放信息,提供播放歌曲名显示。研 究的 基本 内容 及解 决的 主要 问题(一)、研究的基本内容:1. 基于stm32实现Mp3功能:音乐播放 2. 触摸屏虚拟按键1 :播放3. 触摸屏虚拟按键2 :暂停4. 触摸屏虚拟按键3 4:上一曲,下一曲5. 触摸屏虚拟按键5 6 :音量调节(二)、解决的主要问题:1. Mp3音乐播放器中架构设计2. 触摸屏,液晶屏设计3. SD卡驱动设计4. 播放器程序移植5. 文件系统移植 6. Mp3播放功能调试研究的进度、步骤一、2015年1月至2015年2月: 查阅与制作Mp3音乐播放器设

7、计相关的文献资料,毕业设计制作准备。二、2014年3月:查阅资料、完成开题报告;毕业设计开始制作。三、2014年4月至2014年5月初:毕业设计完成制作;毕业论文、撰写、修改、答辩准备四、2014年5月中旬,毕业论文答辩。研究的方法及措施1、文献研究。查阅相关文献资料,掌握基于stm32实现Mp3制作的基本流程,基本原理。2、理论研究。 通过对触摸屏,显示器,SD卡等原理理论学习分析,为整体研究提供依据。3、软件设计与调试。 Mp3音乐播放器架构设计进行软件设计和实现,并调试分析。主要参考文献1 陈正冲.C语言深度解剖-解开程序员面试笔试的秘密M.北京航空航天大学出版社.2010-7-1.2

8、谭浩强.程序设计(第三版)M.清华大学出版社.2005-7-3.3 宋岩译.ARM Cortex-M3权威指南M.北京航空航天大学出版社.2009-07. 4李伟,张真,范文豪. 基于STM32微控制器的mp3播放器设计J. 现代电子技术,2015,04:118-120+124.5李宁,熊刚,徐良平. 基于Cortex-M3的MP3播放器设计J. 单片机与嵌入式系统应用,2009,02:48-51. 6李世奇,董浩斌,李荣生. 基于FatFs文件系统的SD卡存储器设计J. 测控技术,2011,12:79-81.7 榴莲. 声由芯生 主流MP3解码芯片浅析J. 大众硬件,2007,11:56-6

9、1.8孙书鹰,陈志佳,寇超. 新一代嵌入式微处理器STM32F103开发与应用J. 微计算机应用,2010,12:59-63. 9Joseph Yiu. 从8位微控制器转向ARM Cortex微控制器J. 电子设计技术,2009,09:104. 10Anonymous. Development environment for STM32 ARM-based MCUJ. Electronics Weekly,2009,2411:.11 李宁.基于MDK的STM32处理器开发应用M.北京航空航天大学出版社.2008-10-1.12 王永虹,徐炜,郝立平.STM32系列ARM Cortex-M3微控

10、制器原理与实践M.北京航空航天大学出版社.2008-7-1.指 导教 师意 见 指导教师(签名):教 研室 意见 教研室主任(签名):系意见 系主任(签名): 年 月 日惠州学院毕业论文(设计)任务书学生姓名陈腾奎学号110701203专业班级11电气2班指导教师陈治明职 称副教授题 目基于stm32单片机的Mp3音乐播放器设计研究(设计)任务(包括目标和要求)基于stm32实现Mp3功能:音乐播放 触摸屏虚拟按键1 :播放触摸屏虚拟按键2 :暂停触摸屏虚拟按键3 4:上一曲,下一曲触摸屏虚拟按键5 6 :音量调节工作阶段(包括时间划分和各阶段主要工作内容)按时间划分和各阶段的主要工作内容:工

11、作阶段(包括时间计划和各阶段主要工作内容)2015、1 2 查阅与制作Mp3音乐播放器设计相关的文献资料,毕业设计制作准备。2015、2 3 查阅资料、完成开题报告;毕业设计开始制作。2015、4 5 毕业设计完成制作;毕业论文、撰写、修改、答辩准备2015、5月中旬 毕业论文答辩其它要求(包括文献研究、实验实习等方面)1李伟,张真,范文豪. 基于STM32微控制器的mp3播放器设计J. 现代电子技术,2015,04:118-120+124.2李宁,熊刚,徐良平. 基于Cortex-M3的MP3播放器设计J. 单片机与嵌入式系统应用,2009,02:48-51. 3李世奇,董浩斌,李荣生. 基

12、于FatFs文件系统的SD卡存储器设计J. 测控技术,2011,12:79-81.4榴莲. 声由芯生 主流MP3解码芯片浅析J. 大众硬件,2007,11:56-61.5孙书鹰,陈志佳,寇超. 新一代嵌入式微处理器STM32F103开发与应用J. 微计算机应用,2010,12:59-63. 6Joseph Yiu. 从8位微控制器转向ARM Cortex微控制器J. 电子设计技术,2009,09:104. 系审核意见 负责人(签名)备注:1、本任务书一式三份,系、指导教师、学生各执一份。 2、学生须将此任务书作为毕业论文(设计)说明书的附件,装订在说明书中。惠州学院毕业论文(设计)文献综述学生

13、姓名陈腾奎学号110701203专业班级11电气工程2班指导教师陈治明职 称副教授题 目基于stm32单片机的Mp3音乐播放器设计 1李伟,张真,范文豪. 基于STM32微控制器的mp3播放器设计J. 现代电子技术,2015,04:118-120+124.介绍了一种音乐播放器的设计方法,该播放器是基于Cortex-M3内核的STM32微控制器的MP3播放器。Cor-tex-M3是ARM公司为要求低成本、低功耗、高性能的嵌入式应用专门设计的内核。结果表明该系统可以播放MP3和WAV音乐文件,播放同时显示歌曲名字,歌手和专辑名称。 2李宁,熊刚,徐良平. 基于Cortex-M3

14、的MP3播放器设计J. 单片机与嵌入式系统应用,2009,02:48-51. 提出一种基于Cortex-M3处理器的MP3播放器的设计方法。硬件设计上,介绍了具体模块间的硬件连接情况;软件设计上,主要介绍2个核心模块的主要函数功能。该播放器采用STM32作为微控制器,采用VS1003作为解码芯片,采用SD卡存储MP3/WMA文件,PC机可通过USB接口操作开发板上SD卡的文件。该系统的软件使用Real View MDK开发。3李世奇,董浩斌,李荣生. 基于FatFs文件系统的SD卡存储器设计J. 测控技术,2011,12:79-81.提出了一种基于FatFs文件系统的SD卡存储器设计。系统以S

15、T公司的STM32F103R为核心,通过SPI总线与SD卡进行通信,实现了数据的便携式存储。给出了系统的硬件结构图,详细探讨了SD卡驱动程序以及FatFs移植方面的软件设计。该存储器传输速度快,可靠性强,具有广阔的应用价值。4榴莲. 声由芯生 主流MP3解码芯片浅析J. 大众硬件,2007,11:56-61.MP3播放器的处理核心解码芯片,其主要作用就是将存储在介质上的MP3文件进行解码,并还原成模拟的声音,通过耳机播放出来。它是MP3播放器工作中最重要的一环,很大程度上影响了MP3最终的音质表现。由于MP3是一种有损压缩的编码格式,优秀的MP3解码芯片能够更好地还原MP3音频信号,可以在很大

16、程度上弥补MP3音频信号的损失。相反的,低端的解码芯片则会令MP3的编码信息进一步损失。随着MP3芯片技术的发展,新一代的MP3解码芯片已不再单单只有MP3解码功能。而是将MP3更多扩展功能(如Line In、USB2.0高速传输接口等)集成在芯片内部,降低了MP3外围电路的复杂性。给MP3的小型化提供了可能,同时给MP3播放器带来了越来越齐全的功能。5孙书鹰,陈志佳,寇超. 新一代嵌入式微处理器STM32F103开发与应用J. 微计算机应用,2010,12:59-63. 基于Cortex-M3内核的STM32F103系列芯片是新型的32位嵌入式微处理器,它是不需操作系统的ARM,其性能远高于

17、51系列单片机,但开发过程与51系列单片机一样简便,因而在很多应用场合可替代51系列单片机。本文从STM32F103系列芯片性能特点和片上资源入手,重点介绍其开发工具以及开发流程。并以温度测量为例,具体说明了基于Keil Vision4软件的工程建立、源程序编辑、编译,基于J-Link仿真器的程序下载,程序在线调试,片上运行等过程,最终测量的温度转换为数字量,通过串口发送至PC机显示。 6Joseph Yiu. 从8位微控制器转向ARM Cortex微控制器J. 电子设计技术,2009,09:104. 随着当今电子产品的连接性能不断提高,对功能的要求日益复杂。由于诸多限制,8位和16

18、位微控制器根本无法满足对数据处理、存储器、堆栈、外设、架构,和指令集等多方面的需求。随着低成本ARM Cortex-M3微控制器的广泛普及,Cortex-MO微控制器也将于今年年底上市,嵌入式 7Anonymous. Development environment for STM32 ARM-based MCUJ. Electronics Weekly,2009,2411:.The environment combines the Atollic TrueSTUDIO/STM32 development tool, which can be downloaded free-of-ch

19、arge with no limitations on code size or usage time, and ST's ST-LINK debug probe to connect to the target via USB.8王铁流,李宗方,陈东升. 基于STM32的USB数据采集模块的设计与实现J. 测控技术,2009,08:37-40.给出了基于USB接口的数据采集模块的设计与实现。采用以STM32为主的器件进行硬件设计、DriverStudio开发USB驱动,并用Visual C+6.0开发主机应用软件9张舞杰,南亦民. 基于STM32F103VB的应用编程技术的实现J.

20、计算机应用,2009,10:2820-2822.针对嵌入式应用中更新升级固件的需求,在阐述应用编程(IAP)技术原理的基础上,以具有Cortex-M3内核的微控制器STM32F103VB为平台,给出了基于STM32F103VB IAP技术的实现方案,并对方案的可靠性进行了探讨。最后讨论了IAP技术的具体实现方式。该方案实现了以具有STM32F103VB微控制器的嵌入式系统终端软件的在线升级,提高了软件维护的方便性,缩短了终端软件系统的开发周期。10勾慧兰,刘光超. 基于STM32的最小系统及串口通信的实现J. 工业控制计算机,2012,09:26-28.介绍了以Cortex-M3为内核的STM

21、32的最小系统,详细描述其串口通信的设计,并进行仿真调试和目标调试。11南亦民. 基于STM32标准外设库STM32F103xxx外围器件编程J. 长沙航空职业技术学院学 报,2010,04:41-45.介绍STM32F10xxx标准外设库的结构及其使用要点,在STM32103VB平台上,以Keil uVision4为开发工具,使用最新的标准外设库V3.3.0,实现串口通讯功能12 李宁.ARM开发工具RealViewMDK使用入门M.北京航空航天大学出版社.2008-3-1.本书介绍ARM最新推出的基于微控制器的ARM开发工具MDK的基本知识、详细使用方法以及一个简单的应用开发实例。全书共1

22、4章,分为3个部分。第l部分为第14章,是MDK的基本入门篇,首先介绍MDK的特点、功能和组件,并指导读者完成MDK的安装及注册过程,然后全面介绍IDE环境的基本使用方法,最后给出一个简单的工程开发实例。第2部分为第513章,是高级技术篇,详细介绍MDK的各重要部分,包括armasm汇编器、armcc编译器、armlink链接器、armar库管理器、MDK调试器、Flash编程工具,以及一些MDK工具和第三方工具。第3部分为第14章,是应用实例篇,介绍一个采用MDK开发的例程Blinky13段煅. C语言编程技巧在C语言学习中的应用J. 电脑编程技巧与维护,2010,20:150-151.C语

23、言是功能强大、应用广泛的编程语言,也是目前高校理工类的公共必修课程之一,可见其重要性,C语言集高级编程语言和汇编语言的特点于一身,目前市面上的许多软件也是在C语言的平台上产生的,所以高校在C语言的教学中也可谓是"不遗余力"的。但是从近年来的教学效果来看,学生的普遍反映却让人大跌眼镜,大部分人认为C语言晦涩难学,学起来是非常吃力,经常是非常努力学习却达不到想要的效果,课程过后没有任何收获,甚至连一个小程序都写不出来,针对上述情况做了初步分析,并从C语言的编程技巧上提出了相关改善对策。14董卫红. C语言程序设计的教学改革与实践J. 常州轻工职业技术学院学报,2007,01:3

24、5-38.本文以C语言程序设计课程教学中存在的问题为出发点,结合本校学生的实际情况,在整合教材、改进教学方法、发展创造思维、加强课程设计与实践教学、改革考核方式等方面阐述了教学改革的思想和方法,以促进C语言教学。实践证明,改进了教学方法后,在培养学生的动手能力,思维能力以及创新能力方面均取得了较佳效果。15陈萌萌,邵贝贝. “安全第一”的C语言编程规范J. 单片机与嵌入式系统应用,2006,01:79-82.嵌入式系统应用工程师借用计算机专家创建的C语言,使嵌入式系统应用得以飞速发展,而MISRAC是嵌入式系统应用工程师对C语言嵌入式应用做出的贡献。如今MISRAC已经被越来越多的企业接受,成

25、为用于嵌入式系统的C语言标准,特别是对安全性要求极高的嵌入式系统,软件应符合MISRA标准。从本期开始,本刊将分6期,与读者共同学习MISRAC。摘要随着数字编解码技术及压缩技术的发展,语音文件也向着高压缩比、高保真的方向发展,从MP1、MP2到目前的MP3格式。因此高压缩比、高保真MP3播放器设计及研究有很好的发展前景。本论文介绍了基于STM32微处理器的MP3播放器的设计方法,实现了从SD卡中读取音乐文件数据,再将读取的数据流进行软件解码,最后通过音频信号输出驱动耳机实现音乐播放功能。并在液晶屏上显示音乐的实时播放状态,通过TFT触摸屏上的人机交换界面,实现了音乐的播放,停止,声音增大,减

26、小等功能模式。基本上实现了一个带有触摸功能的MP3播放器。关 键 词 MP3播放器 STM32F103ZET SD卡 触摸屏 FATFS文件系统ABSTRACTWith the development of digital codec technology and compression technology ,Voice files are also in the direction of high compression ratio, high-fidelity development, from MP1, MP2 to MP3 format now. Therefore, high co

27、mpression ratio, high-fidelity MP3 player design and research have good prospects for development.This paper describes the design of microprocessor-based STM32 MP3 player, Realize from reading music files from SD card and then read the data stream decoding software,Finally, the audio signal output t

28、o drive headphones realize music playback ,and displays real-time playback status of the song on the LCD screen, through a graphical user interaction diagram circles TFT touch screen, to achieve the songs play, stop, sound increase, decrease function mode. Basically realize MP3 player with a touch-e

29、nabled. Key Words MP3 player STM32F103ZET SD Card Touch screen FATFS file system目录1 绪论11.1 本课题的提出及意义11.2 研究现状12 硬件设计22.1整体方案22.2系统架构图22.3硬件模块32.3.1处理器32.3.3 SD卡模块42.3.3 LCD显示模块52.3.4触摸屏模块63 软件设计83.1 软件开发架构83.2 软程序设计流程图93.3 软件代码结构103.3 驱动程序143.3.1 液晶屏驱动程序143.3.3 文件系统驱动程序153.3.3 触摸屏卡驱动程序163.3.4 MP3驱动程

30、序174 系统调试204.1 开发环境204.1.1 软件开发环境204.1.2 硬件开发环境214.2 设计调试224.2.1 UI界面设计224.2.2 SD卡模块测试224.2.3 触摸屏校验234.2.4 显示屏测试234.3 成品展示25致 谢26参考文献27附录281 绪论1.1 本课题的提出及意义MP3音频播放器的最合理工作速度为30Mips,而一个典型的视频媒体播放器的理想速度则为175Mips,所以提高MP3的工作速度,以及改善MP3的音质是最关键的,也是亟待解决的问题。 MP3是一种典型的嵌入式设备,而现在市场上比较常见的是闪存式MP3。由于闪存式MP3的容量限制

31、,使它存储歌曲数目较少,在功能上也很难实现多样化1。而硬盘式MP3的多功能及大容量,也必将受到不少消费者的喜爱。  MP3播放器一般分成3个部分:CPU、MP3硬件解码器存储器。其中可以将前两部分集成在一起,即带MP3硬件解码器的CPU;或将后两部分集成在一起,即集成硬件解码、DA转换及音频输入。存储器可以是Flash存储器或硬盘2。通过用MP3编码技术,可以得到大约12:1压缩的有损音乐信号。1.2 研究现状MP3全称是MPEG Layer 3,狭义的讲就是以MPEG Layer 3标准压缩编码的一种音频文件格式。自韩国世韩(Seahan)公司1998年推出世界上第一台M

32、P3随身听以来, MP3播放器以其小巧的外形,不错的近乎于CD的音质,前卫的功能,越来越受到消费者的青睐,也就成为业界甚至大众媒体关注的一个热门话题3。在市场消费刺激下,各大公司纷纷推出了自己的mp3播放器产品,IC供应商提供了众多的MP3解码芯片及其解决方案。除了Micronas方案(MAS3507+DAC3550),还有台湾创品方案(T33510,T33520)、美国SigmaTel方案(STMP3400)和TI的DA-250解决方案。这使mp3播放器的研制与生产变得更加容易,成本也大大降低,市场更加广阔 4。2 硬件设计2.1整体方案综述本设计由STM32最小系统,SD卡的读取模块,TF

33、T控制模块,外扩FLASH模块,触摸屏模块,串口通信模块组成。将解决SD卡的读取以及使用FATFS文件系统来对SD卡操作,TFT液晶屏的控制及触摸屏原理、还有人机界面UI的实现等问题5。系统架构如图2-1所示。基本设计流程是使用STM32系列微控制器,采用FATFS文件系统方式读取SD卡中音乐文件数据,将所读取的数据流传输给CPU软件解码(helix解码库)解码编程PCM音频,通过I2S送到ADC芯片 PCM1770音频输出驱动耳机实现音乐播放功能。液晶屏显示歌曲的实时播放状态,功能按扭 和控制歌曲的播放、停止、声音增大、减小等。同时,TFT触摸屏则用于功能按扭 和人机交换界面的输入。2.2系

34、统架构图图 2-1 系统架构图2.3硬件模块2.3.1处理器一、芯片介绍。CortexM3是ARM公司最新推出的基于ARMv7体系架构的处理器核,具有高性能、低成本、低功耗的特点,专门为嵌入式应用领域设计。ARMv7 架构采用了Thumb2技术,它是在ARM的Thumb代码压缩技术的基础上发展起来的,并且保持了对现存ARM解决方案完整的代码兼容性。 Thumb2技术比纯ARM代码少使用31%的内存,减小了系统开销,同时能够提供比Thumb技术高出38%的性能7。在中断处理方面,CortexM3集成了嵌套向量中断控制器NVIC(Nested Vectored Interrupt Controll

35、er)。NVIC是CortexM3处理器的一个紧耦合部分,可以配置1240个带有256个优先级、8级抢占优先权的物理中断,为处理器提供出色的异常处理能力。同时,抢占(Pre emption)、尾链(Tail chaining)、迟到技术(Late arriving)的使用,大大缩短了异常事件的响应时间。CortexM3异常处理过程中由硬件自动保存和恢复处理器状态,进一步缩短了中断响应时间,降低了软件设计的复杂性。DP)或串行JTAG调试端口(SWJDP,允许JTAG或SW协议)使用。二、引脚图。图2-2 STM32F103ZET6 微控制器引脚分布图2.3.3 SD卡模块一、SD卡介绍。STM

36、32微处理器 CPU ( STM32F103ZET6 )具有一个 SDIO 接口。SD/SDIO/MMC 主机接口可以支持 MMC 卡系统规范 4.2 版中的 3 个不同的数据总线模式:1 位(默认)、4 位和 8 位。在 8 位模式下,该接口可以使数据传输速率达到 48MHz,该接口兼容 SD 存储卡规范 2.0 版12。二、SD卡原理图。图2-3 SD卡接口电路.图2-4 SD卡上电识别流程图2.3.3 LCD显示模块一、LCD控制器。LCD,即液晶显示器,因为其功耗低、体积小,承载的信息量大,因而被广泛用于信息输出、与用户进行交互,目前仍是各种电子显示设备的主流。因为 STM32 内部没

37、有集成专用的液晶屏和触摸屏的控制接口,所以在显示面板中应自带含有这些驱动芯片的驱动电路(液晶屏和触摸屏的驱动电路是独立的),STM32 芯片通过驱动芯片来控制液晶屏和触摸屏。2、 FSMC框图结构。FSMC(flexible static memory controller),译为静态存储控制器。可用于STM32 芯片控制 NOR FLASH、PSRAM、和 NAND FLASH 存储芯片。我们是使用FSMC的NORPSRAM 模式控制 LCD。其结构如图2-5所示。.图2-5 FSMC框图结构框图2.3.4触摸屏模块一、触摸屏感应原理。触摸屏常与液晶屏配套使用,组合成为一个可交互的输入输出系

38、统。除了熟悉的电阻、电容屏外,触摸屏的种类还有超声波屏、红外屏。触摸屏的基本原理为分压,它由一层或两层阻性材料组成,在检测坐标时,在阻性材料的一端接参考电压 Vref,另一端接地,形成一个沿坐标方向的均匀电场。当触摸屏受到挤压时,阻性材料与下层电极接触,阻性材料被分为两部分,因而在触摸点的电压,反映了触摸点与阻性材料的 Vref 端的距离,而且为线性关系,而该触点的电压可由 ADC 测得。更改电场方向,以同样的方法,可测得另一方向的坐标。二、TSC2046触摸屏控制器。TSC2046 是专用在四线电阻屏的触摸屏控制器,MCU 可通过 SPI 接口向它写入控制字,由它测得 X、Y 方向的触点电压

39、返回给 MCU。如图2-6所示图2-6 TSC2046 与电阻屏的连接图2.3.5 PCM音频模块PCM1770器件是CMOS,单片,集成电路包括立体声数字 - 模拟转换器,耳机电路。数据转换器采用TI的增强型多级架构,它采用噪声整形和多值振幅量化,实现出色的动力性能和改进的耐时钟抖动。该PCM1770器件接受多个行业标准音频数据格式,16至24位数据,左对齐,I2S等,提供轻松连接到音频DSP和解码器。采样率高达50 kHz的支持。全套用户可编程功能是通过一个3线串行控制端口,支持寄存器写入功能访问。原理接线图如图2-7所示图2-7 PCM1770连接图3 软件设计3.1 软件开发架构本设计

40、由STM32最小系统,SD卡的读取模块,TFT控制模块,触摸屏模块,串口通信模块组成。将要解决SD卡的读取及使用FATFS系统对SD卡的操作、TFT液晶的控制及触摸屏原理、还有图形用户界面GUI的实现等问题10。架构如图3-1软件开发架构图图3-1软件开发架构图3.2 软件程序设计流程图开始系统初始化显示屏初始化触摸屏初始化SD卡初始化PCM1770初始化MP3播放程序触摸屏按下?播放模式设置读取触摸屏数据,执行相应功能操作图3-2 程序设计流程图本系统的程序设计流程图如图3-2所示,工作流程是:STM32从SD卡中读取音乐文件数据,将所读取的数据流传输给CPU软件解码(helix解码库)解码

41、编程PCM音频,通过I2S送到ADC芯片 PCM1770音频输出驱动耳机实现音乐播放功能。液晶屏显示歌曲的实时播放状态,功能按扭和控制歌曲的播放、停止、声音增大、减小等。同时,TFT触摸屏则用于功能按扭和人机交换界面的输入。音乐播放链路:图3-3 音乐播放链路3.3 软件代码结构为了使代码结构清晰,方便以后的维护,代码结构设计如下:在根目录I2S-MP3下,划分为七个文件夹,分别为STARTUP、CMSIS、FWLB、USER、DOC、ff9和mp3。下面分别就七个文件夹的作用和结构进行说明,其代码目录树状结构如图3-4 所示。图3-4 整体工程代码结构对其进行分析:目录名称 目录说明 STA

42、RTUP 启动文件CMSIS M3系列通用的文件FWLB ST 片上资源外设的驱动文件USER 用户写的驱动文件DOC 工程说明文档 ff9 FATFS文件系统文件mp3 音乐播放相关文件详细代码结构一、STARTUP 目录如图3-5所示图3-5启动文件startup_stm32f10x_hd.s 为启动文件启动文件是任何处理器在上点复位之后最先运行的一段汇编程序。在我们编写的 c 语言代码运行之前,需要由汇编为 c 语言的运行建立一个合适的环境,接下来才能运行我们的程序9。二、CMSIS 目录如图3-6所示图3-6 M3系列通用的文件文件名称 文件说明 core_cm3.c M3 核通用的源

43、文件core_cm3.h M3系列通用的文件stm32f10x.h 对内存的操作封装文件system_stm32f10x.c 实现系统时钟操作文件三、FWLB 目录如图3-7所示图3-7 ST 片上资源外设的驱动文件 FWLB:用来存放 STM32 库里面的芯片上的所有驱动即ST 片上资源外设的驱动文件四、USER目录如图3-8所示图3-8用户写的驱动文件文件名称 文件说明 bsp_iis.c iis驱动文件bsp_gpio_spi.c spi驱动文件bsp_touch.c 触摸屏驱动文件bsp_ili9341_lcd.c 液晶显示驱动文件bsp_pcm1770.c pcm驱动文件bsp_le

44、d.c led驱动文件bsp_bmp.c bmp图片显示文件bsp_sdfs_app.c sd卡文件系统文件bsp_sdio_sdcard.csd卡驱动文件bsp_spi_flash.c spi_flash驱动文件bsp_SysTick.c系统时钟驱动文件bsp_usart1.c串口通讯驱动文件main.c主函数入口文件mp3.cpm3驱动文件stm32f10x_it.c中断处理函数,以相应各种中断五、DOC目录如图3-9所示 图3-9工程说明文档readme 为工程说明文件六、ff9目录如图3-10所示 图3-10 FATFS文件系统文件七、mp3目录如图3-11所示图3-11音乐播放相关文

45、件这是实现mp3 播放的功能实现函数,实际应用只需要移植过来即可。3.3 驱动程序3.3.1 液晶屏驱动程序/* * brief lcd 初始化 * param 无 * return 无 */void LCD_Init(void)LCD_GPIO_Config(); /配置IO端口LCD_FSMC_Config(); /LCD FSMC模式的配置LCD_Rst(); /LCD软件复位LCD_REG_Config(); /配置LCD初始化寄存器3.3.3 文件系统驱动程序/* * brief fs 文件系统初始化 * param 无 * return 无 */void Sd_fs_init(vo

46、id) /* SD卡中断初始化 */SDIO_NVIC_Configuration();/* SD 卡硬件初始化,初始化盘符为0*/ f_mount(0,&myfs0); /./ff9文件库/* brief SDIO优先级配置为最高优先级 * param 无 * return 无*/void SDIO_NVIC_Configuration(void) NVIC_InitTypeDef NVIC_InitStructure; /* Configure the NVIC Preemption Priority Bits */ NVIC_PriorityGroupConfig(NVIC_Pr

47、iorityGroup_1); NVIC_InitStructure.NVIC_IRQChannel = SDIO_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure);3.3.3 触摸屏卡驱动程序/* brief 触摸模拟SPI IO 和中断 IO初始化

48、* param 无 * return 无*/void Touch_Init(void) GPIO_SPI_Config();/* brief 模拟SPI的GPIO配置,当SPI的4根信号线换为其他IO时,* 只需要修改该函数对应的宏定义即可。 * param 无 * return 无*/void GPIO_SPI_Config(void) GPIO_InitTypeDef GPIO_InitStructure; /* 开启GPIO时钟*/ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF | RCC_APB2Periph_GPIOG, ENABLE); /

49、* 模拟SPI的GPIO初始化*/ GPIO_InitStructure.GPIO_Pin=SPI_CLK_PIN; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz ; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; GPIO_Init(SPI_CLK_PORT, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = SPI_MOSI_PIN; GPIO_Init(SPI_MOSI_PORT, &GPIO_InitStructure);

50、GPIO_InitStructure.GPIO_Pin = SPI_MISO_PIN; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz ; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; GPIO_Init(SPI_MISO_PORT, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = SPI_CS_PIN; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz ; GPIO_InitStruct

51、ure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(SPI_CS_PORT, &GPIO_InitStructure); /* 拉低片选,选择XPT2046 */ GPIO_ResetBits(SPI_CS_PORT,SPI_CS_PIN); /GPIO_SetBits(SPI_CS_PORT,SPI_CS_PIN); /* XPT2046 中断IO配置 */ TP_INT_GPIO_Config();3.3.4 MP3驱动程序/* * brief player_run 运行MP3 播放器过程,内部死循环 * param 无 * return 无 *

52、/void player_run(void)char music_nameFILE_NAME_LEN;f_mount(0, &fs);file_scan(path);/扫描文件if(file_num = 0)printf("rn no mp3 file ! ");return; /跳出本函数player_state = S_READY; /初始化状态touch_even = E_NULL; /初始化事件标志all_page = (file_num+7)/8 ;/current_page = 1;printf("rn file_num =%d,all_pag

53、e=%d",file_num,all_page);/PCM1770_VolumeSet(0); /调节音量PCM1770_VolumeSet(28);lcd_list(current_page);/显示歌曲列表,第一页while(1) /进入死循环,根据状态切换if(play_index >= file_num-1)/检查play_indexplay_index = file_num-1;/index指向最后一个文件else if(play_index<=0)play_index =0;even_process();/事件处理switch(player_state)cas

54、e S_PLAY:/播放状态/开始play 流程/读取音频文件流程/´打开playlist,读取音频文件名fres = f_open (&file, "0:mp3player/playlist.txt", FA_READ);fres = f_lseek (&file, play_index*FILE_NAME_LEN);fres = f_read(&file, music_name, FILE_NAME_LEN, &rw_num);fres = f_close (&file);/获取文件名,准备解码printf("

55、准备播放:%s ",music_name);if(strstr(music_name,".mp3")|strstr(music_name,".MP3")/MP3格式/开始MP3解码mp3_player(music_name);else/WAV文件格式/开始WAV文件播放wav_player(music_name);break;case S_SWITCH: /切歌状态player_state = S_PLAY; /¸更新标志位/* 检测要切换的歌曲是否在播放的上一页*/if(play_index+8)/8 < current_page) current_page-;/¸刷新当前页码lcd_list(current_page);/刷新LCD列表

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!