|
使用 STM32F4DISCOVERY 进行音频播放和录音- _4 d; M% g. M 6 Z7 H& z0 ~+ `# N5 G2 ? 1 简介 " Y4 R, I5 l# S) B! v7 d& A 本应用笔记将介绍基于 STM32F4xx 微控制器和 STM32F4-DISCOVERY 板的音频 (wave) 播放和录音应用。 ; ~; ~* U' i, b. j8 L 从 STM32F4xx 微控制器的内部 Flash 或在外部 U 盘上(通过主机模式中的 USB FS 内核)均可读取音频数据 (wave)。记录的波形文件只能存储在外部 U 盘中。 录音流程基于使用 PDM 音频软件解码库的 ST MP45DT02 MEMS 麦克风硬件(将麦克风生成的 PDM 数据转换为存储在 U 盘中的 PCM 数据)。 % c7 M* c& e# t0 n8 r ( F0 E' I3 r+ n6 Z% B2 S$ |: U! {/ R 本文档的内容编排如下: ● 第 2 节:应用概述中介绍音频播放和录音固件的原理说明及固件运行演示。 6 C% b4 L8 z# ?+ @ ● 第 3 节说明如何开始使用相关软件和硬件。 9 I8 I8 n4 @; v2 c9 C 可在“STM32F4-DISCOVERY 板固件包”(v1.1.0 及更高版本)的“Project\Audio_playback_and_record”路径下找到此应用的源代码。 , N7 j; v$ S ^- Z. _6 t ' a! D% | b" y 1.1 参考文档 ● STM32F4DISCOVERY 高性能 Discovery 板数据简要 ! N* h, T$ G9 X# } ● 开始使用 STM32F4DISCOVERY 套件软件和固件环境 (UM1467) ● STM32 微控制器上的 PDM 音频软件解码 (AN3998) ● STM32F40x 参考手册 (RM0090) / `/ U7 o8 i6 \2 X! a0 t ● STM32F405xx STM32F407xx 数据手册 6 [+ {' y; D! q( W 如需上述文档,请访问 www.st.com/stm32f4-discovery。! t! w" Q2 ~; m+ s6 R/ t : `' s8 G4 E' z# g 2 应用概述 * S' a) n7 j- F8 k6 w4 \ 2.1 应用说明 ! C8 q% h5 O7 Q" N, d5 [2 G; \ 音频播放和录音应用支持两种大容量存储介质。在微控制器的内部 Flash 或在外部 U 盘上均可播放音频数据,但记录数据时只能使用外部 U 盘。这通过 main.h 文件中的 DEFINE 语句选择。在工作区工具栏中,选择项目配置: ● MEDIA_IntFLASH : f6 ~0 Q* t! E% i7 t* _ ● MEDIA_USB_KEY 9 w y; e( @5 o$ F' \/ `. V 3 v* ]# n0 {+ z% |3 | 固件驱动程序可以: ● 从外部 U 盘或内部 Flash 播放存储的波形文件 ● 在外部 U 盘中记录波形文件 $ o; g$ y! H" z ● 从播放切换为录音 8 z N/ h j, b" u2 v
此应用基于 STM32F4xx 器件和 STM32F4-DISCOVERY 板。 + h7 ?3 u7 [0 H' F5 D2 Q此应用的主要特性包括: ● MEMS 麦克风 % n, o8 @' ? J D! T1 F● 音频编解码器 DAC 2 M1 j8 k" u. A; l- D( L● 耳机 ● U 盘(如果使用该存储介质) ● MEMS 加速计 , R8 S7 g# t* _3 V* w此应用使用的主要 STM32 模块包括: ● USB 外设:主机模式下配置。使用大容量存储类 (MSC) 实现与 U 盘的音频数据交换。 # w- y( r- [ \- {; F● I2S 外设:在主发送器模式下配置,用于向外部音频编解码器 (DAC) 发送音频数据。它还可用作主接收器,作为 MEMS 麦克风的输入时钟。 2 S- B6 @: L2 O5 E● DMA:用于将数据从缓冲器发送到 I2S 外设。这可以显著地降低 CPU 负载。 ● I2C 外设:用于控制多个外部器件(如音频编解码器)并从此器件获取数据。 , k! y2 H& l5 a% z, c● SPI 外设:用于控制 MEMS 加速计。 $ j0 Z$ u l* o( l( x! i1 f● 用户按钮:用于监视应用(播放或录音)。
注: 本应用笔记基于 STM32 USB On-The-Go (OTG) 主机和器件库。有关 USB 主机栈和大容量存储演示的详细信息,请参见“STM32F105/7、STM32F2xx 和 STM32F4xx USB On-TheGo主机和器件库”用户手册 (UM1021)。 2.2 固件驱动程序说明 9 h4 e6 r. p& c0 Y5 C" |% d此应用包含下列源文件: ● main.c:包含初始化代码,并根据所选的“MEDIA_IntFLASH”或“MEDIA_USB_KEY”配置启动应用。 9 w6 O6 u* E: c* Q% }- _● stm32f4xx_it.c:包含应用的中断处理程序。 ● waveplayer.c:实施用于播放的功能。 7 f. o" r9 Z& _6 U● waverecorder.c:实施用于录音的功能。 ● usb_bsp.c:实施 USB 主机库的开发板支持包。 ● usbh_usr.c:包括 USB 主机库用户回调。 |
| 支持~~~~~~~~~ |
【福利三:雨露均沾·逢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 官方根治方案
微信公众号
手机版