|
使用 STM32F4DISCOVERY 进行音频播放和录音5 Q) |8 Z$ [% O: C . k6 K o1 {' U$ Y/ e5 O 1 简介 ' C7 u/ w% A6 {8 r! w; a1 ~$ J7 Z 本应用笔记将介绍基于 STM32F4xx 微控制器和 STM32F4-DISCOVERY 板的音频 (wave) 播放和录音应用。 从 STM32F4xx 微控制器的内部 Flash 或在外部 U 盘上(通过主机模式中的 USB FS 内核)均可读取音频数据 (wave)。记录的波形文件只能存储在外部 U 盘中。 录音流程基于使用 PDM 音频软件解码库的 ST MP45DT02 MEMS 麦克风硬件(将麦克风生成的 PDM 数据转换为存储在 U 盘中的 PCM 数据)。 1 ^! |5 q @# }; q! H$ l - B `* V: H& K: l' j {" y 本文档的内容编排如下: ● 第 2 节:应用概述中介绍音频播放和录音固件的原理说明及固件运行演示。 1 u: V2 G) p/ k- u1 q! } ● 第 3 节说明如何开始使用相关软件和硬件。 7 K: c6 r- G# `+ W* L0 `1 t3 X ; y m1 ?$ r) Z3 f 可在“STM32F4-DISCOVERY 板固件包”(v1.1.0 及更高版本)的“Project\Audio_playback_and_record”路径下找到此应用的源代码。 2 Z5 V+ d5 r: X+ ]7 E( H' T& K $ @/ N/ u* S3 v( @9 A* |! ~ 1.1 参考文档 ● STM32F4DISCOVERY 高性能 Discovery 板数据简要 + ]$ N" E7 ^2 ] ● 开始使用 STM32F4DISCOVERY 套件软件和固件环境 (UM1467) ' a! c( R. [2 V9 V8 @ ● STM32 微控制器上的 PDM 音频软件解码 (AN3998) 8 T8 ^6 V) Q- |5 L0 P# {5 k ● STM32F40x 参考手册 (RM0090) ● STM32F405xx STM32F407xx 数据手册 如需上述文档,请访问 www.st.com/stm32f4-discovery。, P2 w5 l2 k7 ~& [. a % v% Y) q0 I: T7 Z 2 应用概述 $ }% l# v! Q4 Z" L* n& X8 j( \ 2 {/ y: `# z. f* I) z7 k% z 2.1 应用说明 & v; U! ?: C& r2 i 音频播放和录音应用支持两种大容量存储介质。在微控制器的内部 Flash 或在外部 U 盘上均可播放音频数据,但记录数据时只能使用外部 U 盘。这通过 main.h 文件中的 DEFINE 语句选择。在工作区工具栏中,选择项目配置: 9 h; p# `9 ~" @$ S0 E 6 b0 M1 p! G7 v* f3 k$ G ● MEDIA_IntFLASH ● MEDIA_USB_KEY 2 l, j" s" J6 O0 ~+ G' m y 固件驱动程序可以: [: w1 Q! g: o! c6 r, n ● 从外部 U 盘或内部 Flash 播放存储的波形文件 5 m- G6 E; f0 z1 K4 V) N ● 在外部 U 盘中记录波形文件 2 S: O) j6 Z0 n ● 从播放切换为录音" b. I) n3 D* g% X 6 s1 ^' j% Y# j* a7 J' x
此应用基于 STM32F4xx 器件和 STM32F4-DISCOVERY 板。 ! X7 u; `3 ]5 h( W r/ c" @( Z/ N+ ^此应用的主要特性包括: ● MEMS 麦克风 0 E: {$ J J% |8 l$ l* I7 Y. b● 音频编解码器 DAC ● 耳机 ● U 盘(如果使用该存储介质) ● MEMS 加速计 $ Y, e2 o& y% L) O: @8 b* P此应用使用的主要 STM32 模块包括: 3 k5 l: A2 `1 S# w; X4 w2 v; U) x● USB 外设:主机模式下配置。使用大容量存储类 (MSC) 实现与 U 盘的音频数据交换。 ● I2S 外设:在主发送器模式下配置,用于向外部音频编解码器 (DAC) 发送音频数据。它还可用作主接收器,作为 MEMS 麦克风的输入时钟。 ● DMA:用于将数据从缓冲器发送到 I2S 外设。这可以显著地降低 CPU 负载。 ' ^* O; q8 t/ p0 ?/ V# ~$ N● I2C 外设:用于控制多个外部器件(如音频编解码器)并从此器件获取数据。 " f6 }! s& S ]4 a● SPI 外设:用于控制 MEMS 加速计。 : c1 R+ n) L! |7 o8 u/ A; L3 ?● 用户按钮:用于监视应用(播放或录音)。
注: 本应用笔记基于 STM32 USB On-The-Go (OTG) 主机和器件库。有关 USB 主机栈和大容量存储演示的详细信息,请参见“STM32F105/7、STM32F2xx 和 STM32F4xx USB On-TheGo主机和器件库”用户手册 (UM1021)。 2.2 固件驱动程序说明 此应用包含下列源文件: ' C: b9 Z. X1 E+ L! v% C8 ~8 m● main.c:包含初始化代码,并根据所选的“MEDIA_IntFLASH”或“MEDIA_USB_KEY”配置启动应用。 * ]8 o9 |; L2 A" p+ |● stm32f4xx_it.c:包含应用的中断处理程序。 ● waveplayer.c:实施用于播放的功能。 + @5 m+ G, m4 w+ E/ o0 u● waverecorder.c:实施用于录音的功能。 8 [9 C) g; D: p0 v● usb_bsp.c:实施 USB 主机库的开发板支持包。 ( o- p+ u2 M1 e: J● usbh_usr.c:包括 USB 主机库用户回调。 9 w4 S6 |( H+ ~ x% N6 q $ }$ X7 ~4 o5 v. |) O |
| 支持~~~~~~~~~ |
【福利三:雨露均沾·逢7狂欢】之四:用一个定时器同步另外两个定时器输出PWM
【逢7发帖赢大礼】STM32开发之WIFI实时时钟
【逢7发帖赢大礼】STM32开发之指纹识别!
【逢7发帖赢大礼】STM32开发之环境空气质量监测
【逢7发帖赢大礼】STM32开发之人体实时运动信息监测!
【逢7发帖赢大礼】STM32开发之IC门禁卡UID读取方法!
【逢7发帖赢大礼】全网最简单的Arduino_STM32开发环境搭建教程!
STM32F4中文用户手册
STM32F400、STM32F402 Cortex-M4超值单片机
SPI 高温读错最后一位?STM32F42xx 官方根治方案
微信公众号
手机版