基STM32开发板MP3播放器设计
摘
Stm32系列意法半导体(ST集团)推出ARM CortexM核32位MCU系列闪存容量包括64KB256KB闪存20KB64KB嵌入式SRAM相8051开发板脚少功弱功耗频率低等缺陷ARM CortexM低动态功耗实现高性低功耗等突出特点丰富芯片型号外设软件支持Stm32开发板强户基础广阔应领域年互连型互补型等新系列产品陆续推出Stm32产品硬件性引脚功断优化更新满足户需求应动化角落例电机驱动智家居建筑安防等项场景
Stm32F1属CortexM系列中M3核采ARMv7M架构 CortexA15相较Stm32F4 Stm32F7 Stm32H7等适高性嵌入式系统产品Stm32F103作款常增强型系列微控制器优秀兼容性低成低风险简单易特点非常适该领域初学者学研究满足初级开发者数基需求游戏外设媒体应视频讲等方面应设计时学系列单片机知识基础stm32系列学研究具非常重意义
设计stm32F103ZET6芯片研究象Keil for ARM(MDK)开发环境 利V1053模块音频解码音频放电路实现MP3播放器设计终通键实现简单切换歌曲快进快退显示歌曲信息等相关基功
关键词: Stm32F103CortexMV1053音频放音频解码
Design of MP3 player based on stm32 development board
Abstract
The Stm32 series is a 32bit MCU series based on ARM CortexM launched by STMicroelectronics The flash memory capacity includes 64KB to 256KB flash memory and 20KB to 64KB embedded SRAM Compared with the 8051 development board it has fewer pins Weak functions large power consumption low frequency and other defects ARM CortexM high dynamic performance at low dynamic power low power consumption and other outstanding features and its rich chip models peripherals and software support making Stm32 development The board has a strong user base and broad application areas In recent years with the successive introduction of new series products such as interconnected and complementary types Stm32 products have been continuously optimized and updated in hardware performance and pin functions to meet the different needs of users Today it is used in various corners of automation such as motor drive smart home building security and many other scenarios
Stm32F1 belongs to the M3 core in the CortexM series and uses the ARMv7M architecture CortexA15 Compared with Stm32F4 Stm32F7 Stm32H7 and other products suitable for highperformance embedded systems Stm32F103 as a commonly used enhanced series of microcontrollers because of its excellent compatibility low cost and low risk simple and easy to use Very suitable for beginners to study research in this field It can meet the most basic needs of junior developers such as game peripherals multimedia applications video intercom and other aspects of application design It also lays the foundation for learning other series of singlechip computers in the future
This design takes the stm32F103ZET6 chip as the research object Keil for ARM (MDK) as the development environment and uses the audio decoding and audio amplification circuits to implement the MP3 player design Finally the buttons can be used to simply switch songs fast forward and rewind and display songs basic information such as functions
Keywords Stm32F103 CortexM3audio V1053 amplification audio decoding
目录
1 前言 2
11课题背景 2
12设计目意义应达技术求 2
13设计应解决问题 3
2 实验台硬件准备 3
21 Stm32概述特性 3
22 芯片概述部资源 5
23 VS1053模块功特性 5
3 库函数寄存器 6
31 MDK简介 6
32 烧录方式 6
33 GPIO配置寄存器 7
34 Stm32库函数寄存器版 7
35 MDK开发运较C语言知识 8
4 程序设计9
41 需知识9
411 汉字显示10
412 SPI相关11
413 SD卡相关12
414 调V105312
42 实现功实物图 13
5总结14
参考文献 14
谢 辞 15
附 录 16
1 前言
Stm32F1属CortexM系列中M3核采ARMv7M架构 CortexA15相较Stm32F4 Stm32F7 Stm32H7等适高性嵌入式系统产品Stm32F103作款常增强型系列微控制器优秀兼容性低成低风险简单易特点非常适该领域初学者学研究满足初级开发者数基需求游戏外设媒体应视频讲等方面应设计时学系列单片机知识基础 stm32研究具非常重意义
设计stm32F103ZET6芯片研究象Keil for ARM(MDK)开发环境 利VS1053模块音频解码音频放电路实现MP3播放器设计终通键实现简单切换歌曲快进快退显示歌曲信息等相关基功
11课题背景
时代发展音乐类缺存心情愉悦脑活跃运转紧张烦躁时转移注意缓心情孤独难时带惬意安抚
着科技日新月异消费型电子产品需求越越高产品性求断提高种功便携式MP3MP5等电子设备层出穷手机智已发展更选择手机音乐软件听音乐然手机作智功设备已生活出行交流通信娱乐等方面承担数务独立纯粹MP3播放设备节省存储省手机电量消耗手机减轻负担
12设计目意义应达技术求
设计目: 设计款基stm32实现手动调节音量手动切歌外接电源供电具备蓝牙等功音乐播放器
设计意义:满足消费者需求保证基音乐播放功基础研究制造简单实高性功MP3播放器着十分重现实意义
研究容:
()利电池供电支持mp3wav格式文件
(二)选择歌曲播放键调节音量
(三)显示屏显示歌曲相关信息包括名字时长歌曲进度曲目总数
(四)利蓝牙串口模块手机建立传输
(五)具录音功
技求:
()STM32开发板原理
(二)硬件工具MDK搭建运
(三)GPIO种类作配置寄存器
(四)解蓝牙串口模块项外设
(五)解寄存器相关库函数学会调库函数
(六)51单片机基础C语言基础知识
13设计应解决问题
拟解决关键问题:
() STM32F103资源利STM32F103ZET6部分引脚分配功解查阅相关资料
(二) ATKV1053模块
(三)GPIO种类作配置寄存器
(四)SPI接口配置汉字显示
2实验台硬件准备
设计选工具正点原子精英Stm32F103ZET6开发板STLINK\V2ATKV1053音频编解码模块蓝牙串口模块3'5寸LCD电阻屏SD卡开发环境MDK5
21 STM32概述特性
STM32系列单片机嵌入式运开发专门设计具备低功耗高性特点外款式型号种类繁功完备相关开发技术日渐成熟相8051单片机stm32芯片优异性体现方面:
1功强置外设更加丰富包括TIMERSPICANSDIORTC等GPIO引脚具极高集成度
2丰富型号STM32仅M3核基型F101F103增强型F105互联型F107F207等8系列百种型号具QFNLQFPBGA等封装方式供选择
3杰出实时性16级编程优先级84中断引脚作中断输入
4开发成低廉需串口载代码支持SWDJTAG调试口
5杰出功耗控制STM32 外设独立时钟开关通关闭相应外设时钟降低功耗
复杂程度STM32远高51单片机简单引脚配置51单片机复杂开发者言市面常见stm32开发教程远远51单片机复杂
次设计STM32F103增强型系列作较常普遍系列单周期法硬件法时钟频率72MHz板载资源包括RS485选择接口CANUSB选择接口光敏传感器RTC备电池座ATK线蓝牙GPS摄头等模块接口保证普通产品相价格优势产品性幅提升普通型系列产品置闪存样32K128KSRAM容量外设接口两部分时钟频率达72MHz时候直接闪存中运行程序相速度更快STM32功耗36mA32位单片机类市场功耗低产品
图21 Stm32F103资源图
22 芯片概述部资源
STM32F103ZET6作该开发板MCU该芯片资源具 64KB SRAM512KB FLASH存储器容量2 基定时器4 通定时器2 高级定时器2 DMA 控制器( 12 通道)3 SPI2 IIC5 串口1 USB1 CAN3 12 位 ADC1 12 位 DAC1 SDIO 接口1 FSMC 接口 112 通 IO 口(144引脚)20~36V电源IO电压 电复位掉电复位编程电压监控强时钟系统:4~16M外部高速晶振部8MH真高速RC振荡器部40KHz低速RC振荡器门狗时钟等212位DA 12DMA通道等
23 VS1053音频模块功特性
硬件基础次设计额外选ATKVS1053ALIENTEK开发款高性音频编解码模块实现MP3WMAOGGWAVMIDI等音频格式解码时支持ADPCM等格式编码VS1053拥高性DSP处理核VS_DSP16K指令RAM05K数RAM通SPI控制具8通IO口串口部夹带变采样率立体声ADC高性立体声DAC音频耳机放器外模块资源带耳机驱动器 加载patch拓展功音量调节功
需通SPI口VS1053输入音频数便动解码需详解音频放解码电路原理
ATKVS1053模块通P1连接开发板外部提供5V电源MCU连接7根线分
VS_RST VS1053复位信号线低电效
VS_DREQ 数请求信号(高电效)通知机VS1053否接收数
VS_XCS 命令片选(低电效)
VS_XDCS数片选(低电效)
VS_MISO VS_MOSIVS_SCK: SPI信号线连接STM32
图开发板硬件连接
图22 硬件连接图
3软件设计
31 MDK简介
MDK 源德国 KEIL 公司称MDKARM RealView MDKuVision 5等keil 4扩展版包含部分ARM基CortexMARM7ARM9处理器设备提供完整开发环境目前全球 MDK 超 10 万嵌入式开发工程师新版 uVision5 IDE 集成开发环境目前针 ARM 处理器尤 Cortex M 核处理器佳开发工具
准备步骤:
(1)新建工程项目文件夹子文件(usercoreobj等) (2)MDK新建项目选择目标CPU添加CMSIS核心(3)添加启动文件工程文件外设驱动程序等(4)配置目标选项
32 烧录方式
STLINK烧录程序
1安装STLINK驱动 2端USB连接电脑端排针连接开发板3开Keil进行相应配置 4编译程序
普通ISP串口载
1开发板USB口通USB线连接电脑PA9PA10连接发送接收引脚 boot0boot1接 2USB串口驱动安装 3开串口载软件FlyMcu选中串口开始编码
33 GPIO配置寄存器
GPIO通型输入输出引脚Stm32F103ZET6组IO口16部分IO口具复功PA9PA10作串口发送接收引脚定时器引脚7组IO口(GPIOAGPIOBGPIOG)组GPIO端口寄存器包括两32位配置寄存器(GPIOx_CRLGPIOx_CRH)两32位数寄存器(GPIOx_IDRGPIOx_ODR)32位置位复位寄存器(GPIOx_BSRR)16位复位寄存器(GPIOx_BRR)32位锁定寄存器(GPIOx_LCKR)IO端口位编程
GPIO部结构:
图23 GPIO结构原理图
34 Stm32寄存器库函数版
Stm32开发操作分寄存器版库函数版二者时配合库函数控制寄存器操作语句封装成函数函数集合需调填入参数调函数函数帮助操作寄存器实现相应动作(面象)寄存器操作直接操作开启寄存器引脚功 需频繁查阅手册找GPIO基址该址偏移计算出该寄存器址等(面程)熟练需量查阅历明确解数位物理意义初学者者更困难活代码效率更高库函数质实外设寄存器直接编程
35 MDK开发运较C语言知识
1位操作
&:位 |位 ^位异 ~:取反 左移 右移
2define宏定义
预处理命令程序换define定义容提高代码读性程序更加规范合理
格式:#define 标识符 字符串
2 ifdef
预处理命令判断某宏否定义果已定义执行语句未定义执行语句
格式:#ifdef 标识符
#else
#endif
3 typedef
作定义种数类型名类型包括部数类型(intchar)定义数类型(struct)时声明指针型象
typedef struct {
__IO uint32_t CRL
__IO uint32_t CRH
__IO uint32_t IDR
__IO uint32_t ODR
__IO uint32_t BSRR
__IO uint32_t BRR
__IO uint32_t LCKR
} GPIO_TypeDef
4 结构体
结构体作种构造类型作数类型整合机整体程序理更加方便增强程序扩展性读性
GPIO寄存器结构体
struct
{
__IO uint32_t CRL
__IO uint32_t CRH
__IO uint32_t IDR
__IO uint32_t ODR
__IO uint32_t BSRR
__IO uint32_t BRR
__IO uint32_t LCKR
}
5 static
static修饰变量方法申明局部变量全局变量具备静态记忆功数函数调结束会释放值会保留质静态资源分类
4 程序设计
41 需知识
(1)汉字显示原理(2)SPI通信相关接口(3)读写SD卡 (4)驱动V1053模块
411 汉字显示
汉字显示原理液晶部分点显示出余点显示显示某汉字优先该汉字点阵数次数解析成汉字实验选GBK码作汉字码GBK全称汉字码扩展规范GB2312编码基础兼容扩展时支持国际标准GB130001中中日韩文字国际标准ISOIEC106461高兼容性规范性作选原GBK码2字节GBKHGBKL组成分代表高低位第字节0X810XFE第二字节两部分0X400X7E0X800XFE编码范围0X81400XFEFE总包括23940汉字编码规:
首先找汉字高位GBKH0x81确定该汉字区然根
GBKL<0X7F 时:Hp((GBKH0X81)*190+GBKL0X40)*(size*2)
GBKL>0X80 时:Hp((GBKH0X81)*190+GBKL0X41)*(size*2)
size汉字占字节数例16*16汉字占空间16*232字节根算法计算出汉字字库起始址
决定GBK应汉字 →设置字体生成点阵字库→ 查找点阵数解析显出出汉字
图41 显示汉字获取字模
利字库制作软件制作生成GBK字库生成点阵字库文件系统读取字库然存SPIFlash中
存字库(fontupdc)
显示汉字(textc) Show_Str Show_Font Get_HzMat 解析显示
图42 设置参数创建字库
412 SPI相关
SPI串行外围设备接口种全双工高速步通信总线时发出接收数外设读写操作步完成作机机工作芯片脚占MISO(设备数输入设备数输出)MOSI (设备数输出设备数输入)SCLK (时钟信号设备产生)CS(设备片选信号设备控制)
四根线通信作包括:读写FLASH芯片SD卡液晶显示屏建立通信提供频率编程时钟总线竞争保护等
常相关库函数:
SPIx_Init() 初始化函数
SPIx_ReadWriteByte(0xFF) 提供时序MOSI维持高电
SPIx_Cmd() 函数
SPIx_IRQHandler() 中断
SPIx_DataSizeConfig() 数字节
SPI_I2S_SendData() SPI_I2S_ReceiveData() 发送接收
413 SD卡相关
SD卡设计里缺重部件实验中存放音频文件根容量分SD卡分高容量卡SDHC(232G)SDXC(32G2T)标准容量卡SDSC(02G)包含5寄存器 中CSD(卡数寄存器)SCR(配置寄存器)SD提供特定数较SD卡9引脚外部通信接口简单支持SPISDIO两种模式
SDIO驱动SD卡首步骤进行SD卡初始化发送CMD8命令判断否SD20 设置VHS告诉SD卡机供电范围发送CMD55ACMD41进步确认SD卡操作电压范围否支持SDHC初始化完成 通CMD16指令设置数块通指令查询状态进行块读写等操作
常相关库函数:
SD_Init SD卡初始化
SD_ReadDisk 读函数 SD_WriteDisk 写函数
414 调V1053
库函数:
VS_HD_Reset 硬件复位
VS_Soft_Reset 软件复位函数
VS_WR_Cmd(u8addressu16 data)写命令
VS_WR_Data(u8 data) 写数
VS_Send_MusicData 发送音频数
VS_Restart_Play 切歌
VS_Set_All 设置封装函数(音量高低音 环境等参数)
42 实现功实物展示
(1)显示歌曲名时长码率歌曲总数等信息(2)通键切换歌曲(3)支持WAVOGGMP3等音频格式(4)键数限制提升音量
5总结
该设计充分利STM32F103ATKV1053模块实现简单MP3播放器设计操作相简单MP3播放器功基完成通1053模块实现音乐播放WAV录音功界面设计较简陋没达功MP3播放器设计求法实现切换录音显示图片等功方面力限方面单片机接口计算运方面存许足然适应复杂控制算法障诊断未学阶段需加强方面
次毕业设计中单片机基原理C语言设计思路单片机Stm32开发程思路更深入解掌握提高硬件电路设计软件设计理解实现部分更全面更全面理解相关程度学帮助
设计程中基础知识扎实专业知识欠缺遇解决问题期间查阅少关文件手册观视频登录坛重新学研究寻找相问题解决方案逐解决问题方面老师学实建议意见提高思考力解决问题力般情况设计调试测试然预期功效果没完全达成整套产品体满意
参考文献
[1]正点原子STM32F1开发指南(精英版)
[2]正点原子STM32中文参考手册
[3]王静霞 单片机应技术C语言版[M]北京:电子工业出版社2009:1223
[4]张友德单片微型机原理[M]应实验[M]海复旦学出版社2005:28
[5]谭浩强C程序设计教程(第2版)[M]北京:清华学出版社20138
[6]杜树春基ProteusKeil C51单片机设计仿真[M]北京:电子工业出版社 2012:2130
[7]杨雪梅张慧基STM32MP3播放器设计[A]
[8]郭天祥新概念51单片机C语言教程(第2版)[M]电子工业出版社
[9]李全利 单片机原理接口技术[M]北京:高等教育出版社2008:620
[10]pigdwh定义结构体枚举联合总结 CSDN坛
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档