
1简介 本应用笔记将介绍基于 STM32F4xx 微控制器和 STM32F4-DISCOVERY 板的音频 (wave) 播放和录音应用。' f; S8 Q: `& a/ L 从 STM32F4xx 微控制器的内部 Flash 或在外部 U 盘上(通过主机模式中的 USB FS 内核)均可读取音频数据 (wave)。记录的波形文件只能存储在外部 U 盘中。$ p8 N' d& z: } s: Q3 ~ 录音流程基于使用 PDM 音频软件解码库的 ST MP45DT02 MEMS 麦克风硬件(将麦克风生成的 PDM 数据转换为存储在 U 盘中的 PCM 数据)。& N# X+ X, D; M) v 本文档的内容编排如下:) X+ n6 q9 M8 n7 t$ V ● 第 2 节:应用概述中介绍音频播放和录音固件的原理说明及固件运行演示。 ● 第 3 节说明如何开始使用相关软件和硬件。 可在“STM32F4-DISCOVERY 板固件包”(v1.1.0 及更高版本)的“Project\Audio_playback_and_record”路径下找到此应用的源代码。& j! G/ a& ]: ], u) g# k 1.1 参考文档 ● STM32F4DISCOVERY 高性能 Discovery 板数据简要 ● 开始使用 STM32F4DISCOVERY 套件软件和固件环境 (UM1467) ● STM32 微控制器上的 PDM 音频软件解码 (AN3998) ● STM32F40x 参考手册 (RM0090) ● STM32F405xx STM32F407xx 数据手册 0 ]6 @. g2 d. l" D. L ' V2 x( ^, J8 ^; | 2 应用概述1 a8 q6 U- E- u 2.1 应用说明 音频播放和录音应用支持两种大容量存储介质。在微控制器的内部 Flash 或在外部 U 盘上均可播放音频数据,但记录数据时只能使用外部 U 盘。这通过 main.h 文件中的 DEFINE 语句选择。在工作区工具栏中,选择项目配置: ● MEDIA_IntFLASH ● MEDIA_USB_KEY 固件驱动程序可以: ● 从外部 U 盘或内部 Flash 播放存储的波形文件3 s6 j$ V ~! t Q0 F2 e% R4 U# o& ] ● 在外部 U 盘中记录波形文件 ● 从播放切换为录音 ![]() . V0 e: c3 v7 q0 S( z# } 此应用基于 STM32F4xx 器件和 STM32F4-DISCOVERY 板。 此应用的主要特性包括: ● MEMS 麦克风5 p5 G. `- L6 R6 C9 Q9 p" _ ● 音频编解码器 DAC ● 耳机% j& [ T0 G1 @8 C- I% o$ g ● U 盘(如果使用该存储介质)2 X+ r& N7 b- G ^& n$ f ● MEMS 加速计# E7 D. j, K$ Z$ P 此应用使用的主要 STM32 模块包括: ● USB 外设:主机模式下配置。使用大容量存储类 (MSC) 实现与 U 盘的音频数据交换。 ● I2S 外设:在主发送器模式下配置,用于向外部音频编解码器 (DAC) 发送音频数据。它还可用作主接收器,作为 MEMS 麦克风的输入时钟。0 F7 N, W0 n* m5 {: x ● DMA:用于将数据从缓冲器发送到 I2S 外设。这可以显著地降低 CPU 负载。; s$ Q$ u+ t0 P: e4 x& z ● I2C 外设:用于控制多个外部器件(如音频编解码器)并从此器件获取数据。 ● SPI 外设:用于控制 MEMS 加速计。 ● 用户按钮:用于监视应用(播放或录音)。 6 M/ C; Q q& }% O4 A ![]() 3 Y) D P. c: X( J5 m2 k 2.2 固件驱动程序说明 此应用包含下列源文件:' w- a# P% W$ S/ E2 J. H ● main.c:包含初始化代码,并根据所选的“MEDIA_IntFLASH”或“MEDIA_USB_KEY”配置启动应用。 ● stm32f4xx_it.c:包含应用的中断处理程序。& ?' Q1 @2 X2 F! k! c( ^4 B6 _% ~ ● waveplayer.c:实施用于播放的功能。 ● waverecorder.c:实施用于录音的功能。' t! G. ~; ?. t9 V7 y ● usb_bsp.c:实施 USB 主机库的开发板支持包。3 }3 R3 h$ T" X9 m, @6 x4 B9 S ● usbh_usr.c:包括 USB 主机库用户回调。) G; F" f% C+ D: S- r 每次复位开发板后,都会从所选的大容量存储介质运行波形播放器应用。8 H+ [: h( K6 U ● 如果所选介质为 U 盘,则在按下用户按钮后,会停止播放应用并切换到录音应用。每次按下用户按钮,都会停止运行中的应用并切换到另一个应用。 k7 s; z! R r; D7 |* o ● 如果所选介质为内部 Flash,则按下用户按钮不会有任何反应。7 h) [% B7 y8 i- A G / H( O" y5 w/ R6 k. k/ ? ![]() 0 Y' t8 q: W X# O" ^- A 2.3 音频播放应用 图 4 为播放应用的流程图。图中包括多个控制功能,如暂停/继续、开始重复/停止重复。: r6 v. k7 ?( I MEMS 加速计可用于支持停止/继续功能。当波形播放器正在运行时,第一次单击开发板会停止播放,第二次单击则继续播放。/ Z( ~/ p3 H" r9 A+ J& l, F 开始重复/停止重复功能可通过 main.h 文件中的 DEFINE 语句进行管理。 4 n4 G: \" \1 a( o+ m/ v5 Y % l4 A( M( W' v$ S1 ^3 J ![]() 1 X0 _3 [& H1 Y2 X4 v( P/ d $ J0 U3 y0 A% G- V+ z4 s 0 q. J" Y: X% s3 d$ s$ Z2 b- x 完整版请查看:附件+ `; }/ m) R$ z0 s 7 O* a o( a- D% n' b5 O( c / J2 j7 x; E) S" { ; a2 E# o5 G" c8 F |
DM00040802_ZHV1.pdf
下载674.05 KB, 下载次数: 28