使用 STM32F4DISCOVERY 进行音频播放和录音8 F, l+ u# f* {+ E 1 简介 ! v- U) ]2 ^2 u, {! U 本应用笔记将介绍基于 STM32F4xx 微控制器和 STM32F4-DISCOVERY 板的音频 (wave) 播放和录音应用。 & |+ t. n9 n3 i/ Z- U: r6 O 从 STM32F4xx 微控制器的内部 Flash 或在外部 U 盘上(通过主机模式中的 USB FS 内核)均可读取音频数据 (wave)。记录的波形文件只能存储在外部 U 盘中。 录音流程基于使用 PDM 音频软件解码库的 ST MP45DT02 MEMS 麦克风硬件(将麦克风生成的 PDM 数据转换为存储在 U 盘中的 PCM 数据)。 ! Y+ v9 A W) o1 _- t) C: T$ N: y 本文档的内容编排如下: ' J' B4 S: ?+ t7 h ~/ x ● 第 2 节:应用概述中介绍音频播放和录音固件的原理说明及固件运行演示。 ; o' l. e7 @; }# e ● 第 3 节说明如何开始使用相关软件和硬件。 / ~/ N2 A$ i) U8 [1 P0 p1 X 可在“STM32F4-DISCOVERY 板固件包”(v1.1.0 及更高版本)的“Project\Audio_playback_and_record”路径下找到此应用的源代码。 2 ?; b6 E% \. X! K& T8 W" ^: U* s4 K 1.1 参考文档 , I& G+ R* ~7 I; M; m ● STM32F4DISCOVERY 高性能 Discovery 板数据简要 ● 开始使用 STM32F4DISCOVERY 套件软件和固件环境 (UM1467) 7 h$ w( O. m& H; x. s+ p4 }: q# ~: Z ● STM32 微控制器上的 PDM 音频软件解码 (AN3998) ● STM32F40x 参考手册 (RM0090) ● STM32F405xx STM32F407xx 数据手册 3 v3 x& ~" Y2 A7 a 如需上述文档,请访问 www.st.com/stm32f4-discovery。 2 应用概述 4 u# W/ Y, {# R c$ F, C 2.1 应用说明 7 J9 I8 B' u) C! j1 o& C% F; r 音频播放和录音应用支持两种大容量存储介质。在微控制器的内部 Flash 或在外部 U 盘上均可播放音频数据,但记录数据时只能使用外部 U 盘。这通过 main.h 文件中的 DEFINE 语句选择。在工作区工具栏中,选择项目配置: * d% a4 `. J y ● MEDIA_IntFLASH ● MEDIA_USB_KEY 固件驱动程序可以: 2 K: b* c5 j: _4 Z6 t- K4 K ● 从外部 U 盘或内部 Flash 播放存储的波形文件 ● 在外部 U 盘中记录波形文件 5 B! d2 z: q" b ● 从播放切换为录音 此应用基于 STM32F4xx 器件和 STM32F4-DISCOVERY 板。 此应用的主要特性包括: " d- T# f4 Z7 l8 h● MEMS 麦克风 9 n( I+ R& \ V● 音频编解码器 DAC : r5 w% D: L& t$ \" f$ |% r* h" d9 V● 耳机 ! `' Y- N/ J4 p9 ~3 f, ?! s● U 盘(如果使用该存储介质) : s1 H9 u7 z P" C; X- A● MEMS 加速计 此应用使用的主要 STM32 模块包括: 3 `8 N2 U; p7 f● USB 外设:主机模式下配置。使用大容量存储类 (MSC) 实现与 U 盘的音频数据交换。 % C+ ^' a s M. b. r) W● I2S 外设:在主发送器模式下配置,用于向外部音频编解码器 (DAC) 发送音频数据。它还可用作主接收器,作为 MEMS 麦克风的输入时钟。 # d, L% H( Q* h● DMA:用于将数据从缓冲器发送到 I2S 外设。这可以显著地降低 CPU 负载。 ● I2C 外设:用于控制多个外部器件(如音频编解码器)并从此器件获取数据。 ● SPI 外设:用于控制 MEMS 加速计。 ● 用户按钮:用于监视应用(播放或录音)。 4 X$ l: H0 w/ G' e" S! e) Z+ ? s 注: 本应用笔记基于 STM32 USB On-The-Go (OTG) 主机和器件库。有关 USB 主机栈和大容量存储演示的详细信息,请参见“STM32F105/7、STM32F2xx 和 STM32F4xx USB On-TheGo主机和器件库”用户手册 (UM1021)。 7 a9 t( N: H% d- Q1 j2 u2.2 固件驱动程序说明 此应用包含下列源文件: $ q7 r( Z$ g- J/ |● main.c:包含初始化代码,并根据所选的“MEDIA_IntFLASH”或“MEDIA_USB_KEY”配置启动应用。 ● stm32f4xx_it.c:包含应用的中断处理程序。 ; h" q" D1 G4 o7 b0 h/ q. B● waveplayer.c:实施用于播放的功能。 ● waverecorder.c:实施用于录音的功能。 ● usb_bsp.c:实施 USB 主机库的开发板支持包。 1 G' `! U) p$ w( D● usbh_usr.c:包括 USB 主机库用户回调。 - _1 z$ z1 x+ U9 y0 M" P |
支持~~~~~~~~~ |
STM32固件库分享,超全系列整理
【中文文档】AN3965_STM32F40x和STM32F41x基于串口的IAP
STM32F4-DISC 实现USB主机(U盘)和USB设备(虚拟串口)自动切换
STM32F4中文用户手册
基于STM32F407的FreeRTOS阶段性的总结(13)
STM32F400、STM32F402 Cortex-M4超值单片机
基于STM32F407的FreeRTOS获取各任务运行时间及占用情况(4)
基于STM32F407的FreeRTOS任务的挂起与恢复(3)
基于STM32F407的FreeRTOS任务的创建与删除经验分享(2)
基于STM32F407的FreeRTOS环境搭建经验分享(1)