2021-08-18 09:08:12 索煒達(dá)電子 1494
項(xiàng)目編號(hào):E292
文件大?。?M
源碼說明:帶中文注釋
開發(fā)環(huán)境:C編譯器
簡(jiǎn)要概述:
以一款基于STM32的數(shù)字音頻播放器為例,研究了數(shù)字音頻技術(shù)的基本原理。遵循嵌入式系統(tǒng)開發(fā)的基本過程,對(duì)播放器的功能進(jìn)行需求分析,設(shè)計(jì)并實(shí)現(xiàn)了一款完整的WAV數(shù)字音頻播放器。通過對(duì)FATfs文件系統(tǒng)的移植,實(shí)現(xiàn)對(duì)帶有FAT文件系統(tǒng)的大容量SD卡中音頻數(shù)據(jù)的解碼播放,同時(shí)采用了雙緩存的工作模式來解決從SD卡中讀取并播放音頻數(shù)據(jù)的連貫性問題。最后對(duì)已完成的數(shù)字音頻播放器進(jìn)行系統(tǒng)測(cè)試,結(jié)果表明已基本實(shí)現(xiàn)預(yù)期目標(biāo)。
這是一款基于STM32F103的WAV數(shù)字音頻播放器,通過XX、XX、XX等七個(gè)按鍵來操作,具有播放、停止、暫停/重新播放、上一首、下一首、音量加、音量減等功能,從裝有FAT32/16/12文件系統(tǒng)的外置SD卡中的指定文件夾中讀取音頻文件,支持中文及長(zhǎng)字節(jié),通過自主實(shí)現(xiàn)的WAV音頻文件解碼算法來實(shí)現(xiàn)對(duì)音頻文件的解碼,最后通過內(nèi)置的12位DAC來輸出聲音信號(hào),并通過揚(yáng)聲器或耳機(jī)播放出來,實(shí)現(xiàn)了一個(gè)具有基本功能的數(shù)字音頻播放器。
打開當(dāng)前目錄下的工程文件即可運(yùn)行此工程,USER文件夾中存放著主要的源代碼,RTE/Include/中存放著主要的庫(kù)文件,RTE中的其他幾個(gè)文件夾中存放著核心代碼,為Keil自動(dòng)生成。
設(shè)計(jì)報(bào)告:
目錄│文件列表:
└ WAVPlayer_STM32F103
│ README.txt
│ 《基于STM32的WAV數(shù)字音頻播放器》-何玨-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