2021-08-18 09:08:12 索炜达电子 1496
项目编号:E292
文件大小:8M
源码说明:带中文注释
开发环境:C编译器
简要概述:
以一款基于STM32的数字音频播放器为例,研究了数字音频技术的基本原理。遵循嵌入式系统开发的基本过程,对播放器的功能进行需求分析,设计并实现了一款完整的WAV数字音频播放器。通过对FATfs文件系统的移植,实现对带有FAT文件系统的大容量SD卡中音频数据的解码播放,同时采用了双缓存的工作模式来解决从SD卡中读取并播放音频数据的连贯性问题。最后对已完成的数字音频播放器进行系统测试,结果表明已基本实现预期目标。
这是一款基于STM32F103的WAV数字音频播放器,通过XX、XX、XX等七个按键来操作,具有播放、停止、暂停/重新播放、上一首、下一首、音量加、音量减等功能,从装有FAT32/16/12文件系统的外置SD卡中的指定文件夹中读取音频文件,支持中文及长字节,通过自主实现的WAV音频文件解码算法来实现对音频文件的解码,最后通过内置的12位DAC来输出声音信号,并通过扬声器或耳机播放出来,实现了一个具有基本功能的数字音频播放器。
打开当前目录下的工程文件即可运行此工程,USER文件夹中存放着主要的源代码,RTE/Include/中存放着主要的库文件,RTE中的其他几个文件夹中存放着核心代码,为Keil自动生成。
设计报告:
目录│文件列表:
└ WAVPlayer_STM32F103
│ README.txt
│ 《基于STM32的WAV数字音频播放器》-何珏-13111389.docx
└ WAVPlayer
│ cc936.crf
│ cc936.d
│ cc936.o
│ dac.crf
│ dac.d
│ dac.o
│ diskio.crf
│ diskio.d
│ diskio.o
│ ExtDll.iex
│ fatfs.crf
│ fatfs.d
│ fatfs.o
│ ff.crf
│ ff.d
│ ff.o
│ flash.crf
│ flash.d
│ flash.o
│ gpio_stm32f10x.crf
│ gpio_stm32f10x.d
│ gpio_stm32f10x.o
│ irqserver.crf
│ irqserver.d
│ irqserver.o
│ JLinkLog.txt
│ JLinkSettings.ini
│ key.crf
│ key.d
│ key.o
│ keyboard.crf
│ keyboard.d
│ keyboard.o
│ led.crf
│ led.d
│ led.o
│ main.crf
│ main.d
│ main.o
│ misc.crf
│ misc.d
│ misc.o
│ rtx_conf_cm.crf
│ rtx_conf_cm.d
│ rtx_conf_cm.o
│ sd.crf
│ sd.d
│ sd.o
│ startup_stm32f10x_hd.d
│ startup_stm32f10x_hd.lst
│ startup_stm32f10x_hd.o
│ stm3210e_eval.crf
│ stm3210e_eval.d
│ stm3210e_eval.o
│ stm3210e_eval_sdio_sd.crf
│ stm3210e_eval_sdio_sd.d
│ stm3210e_eval_sdio_sd.o
│ stm32f10x_adc.crf
│ stm32f10x_adc.d
│ stm32f10x_adc.o
│ stm32f10x_dac.crf
│ stm32f10x_dac.d
│ stm32f10x_dac.o
│ stm32f10x_dma.crf
│ stm32f10x_dma.d
│ stm32f10x_dma.o
│ stm32f10x_exti.crf
│ stm32f10x_exti.d
│ stm32f10x_exti.o
│ stm32f10x_flash.crf
│ stm32f10x_flash.d
│ stm32f10x_flash.o
│ stm32f10x_gpio.crf
│ stm32f10x_gpio.d
│ stm32f10x_gpio.o
│ stm32f10x_rcc.crf
│ stm32f10x_rcc.d
│ stm32f10x_rcc.o
│ stm32f10x_sdio.crf
│ stm32f10x_sdio.d
│ stm32f10x_sdio.o
│ stm32f10x_spi.crf
│ stm32f10x_spi.d
│ stm32f10x_spi.o
│ stm32f10x_tim.crf
│ stm32f10x_tim.d
│ stm32f10x_tim.o
│ stm32f10x_usart.crf
│ stm32f10x_usart.d
│ stm32f10x_usart.o
│ stm32_eval.d
│ stm32_eval_sdio_sd.d
│ stm32_eval_spi_sd.d
│ syscall.crf
│ syscall.d
│ syscall.o
│ system_stm32f10x.crf
│ system_stm32f10x.d
│ system_stm32f10x.o
│ usart1.crf
│ usart1.d
│ usart1.o
│ wav.crf
│ wav.d
│ wav.o
│ wavsd.crf
│ wavsd.d
│ wavsd.o
│ WAV_Player.axf
│ WAV_Player.build_log.htm
│ WAV_Player.htm
│ WAV_Player.lnp
│ WAV_Player.map
│ WAV_Player.sct
│ WAV_Player.uvguix.hejue
│ WAV_Player.uvguix_hejue.bak
│ WAV_Player.uvoptx
│ WAV_Player.uvprojx
│ WAV_Player_sct.Bak
│ WAV_Player_Target 1.dep
│ WAV_Player_uvoptx.bak
│ WAV_Player_uvprojx.bak
├ RTE
│ │ RTE_Components.h
│ ├ CMSIS
│ │ └ RTX_Conf_CM.c
│ ├ Device
│ │ └ STM32F103ZE
│ │ │ RTE_Device.h
│ │ │ startup_stm32f10x_hd.s
│ │ │ stm32f10x_conf.h
│ │ └ system_stm32f10x.c
│ └ Include
│ │ diskio.h
│ │ ff.h
│ │ ffconf.h
│ │ integer.h
│ │ main.h
│ │ stm3210e_eval.h
│ │ stm3210e_eval_sdio_sd.h
│ │ stm32_eval_legacy.h
│ │ wav.h
│ └ wavsd.h
└ USER
│ cc936.c
│ dac.c
│ diskio.c
│ fatfs.c
│ ff.c
│ flash.c
│ irqserver.c
│ key.c
│ led.c
│ main.c
│ sd.c
│ stm3210e_eval.c
│ stm3210e_eval_sdio_sd.c
│ syscall.c
│ usart1.c
│ wav.c
└ wavsd.c