1简介 n6 g$ X q$ K3 }& A0 j- ` 本应用笔记将介绍基于 STM32F4xx 微控制器和 STM32F4-DISCOVERY 板的音频 (wave) 播放和录音应用。* P# d6 |; R5 U* ?6 ? 从 STM32F4xx 微控制器的内部 Flash 或在外部 U 盘上(通过主机模式中的 USB FS 内核)均可读取音频数据 (wave)。记录的波形文件只能存储在外部 U 盘中。 录音流程基于使用 PDM 音频软件解码库的 ST MP45DT02 MEMS 麦克风硬件(将麦克风生成的 PDM 数据转换为存储在 U 盘中的 PCM 数据)。5 o7 {0 r% u- L0 ` x" ?4 w 本文档的内容编排如下: ● 第 2 节:应用概述中介绍音频播放和录音固件的原理说明及固件运行演示。+ ^- [* J( \6 f% k ● 第 3 节说明如何开始使用相关软件和硬件。3 y) b [" J" A( Z5 o8 C1 } 可在“STM32F4-DISCOVERY 板固件包”(v1.1.0 及更高版本)的“Project\Audio_playback_and_record”路径下找到此应用的源代码。! V. R7 _! V, A+ y, C8 j$ \& p& V 1.1 参考文档- y# F3 M; e* c# q ● STM32F4DISCOVERY 高性能 Discovery 板数据简要 ● 开始使用 STM32F4DISCOVERY 套件软件和固件环境 (UM1467)2 n7 [8 z2 y) P8 Z ● STM32 微控制器上的 PDM 音频软件解码 (AN3998) ● STM32F40x 参考手册 (RM0090) ● STM32F405xx STM32F407xx 数据手册9 B' S- A9 [ v2 M$ @& D# D, V - k8 s6 z8 l4 _- L5 \ 2 应用概述' t q; G0 U6 t0 i' e" W( L1 E 2.1 应用说明 音频播放和录音应用支持两种大容量存储介质。在微控制器的内部 Flash 或在外部 U 盘上均可播放音频数据,但记录数据时只能使用外部 U 盘。这通过 main.h 文件中的 DEFINE 语句选择。在工作区工具栏中,选择项目配置: ● MEDIA_IntFLASH6 {" A- p& q/ f5 q! ?$ {) ^ ● MEDIA_USB_KEY 固件驱动程序可以:$ Y0 C" F9 k _; O4 l: v7 y. s ● 从外部 U 盘或内部 Flash 播放存储的波形文件8 ^4 Z) |( l4 \. I" J ● 在外部 U 盘中记录波形文件1 ^8 {6 h) K6 V8 a ● 从播放切换为录音/ y) f6 j7 A: a. k4 \ ; @, E) \0 t8 X; X$ s ! P5 Z/ ?( ^( q& h 此应用基于 STM32F4xx 器件和 STM32F4-DISCOVERY 板。# h* f( {8 J) L/ Y 此应用的主要特性包括:9 V' G# M: Y5 s8 ~2 ~) W ● MEMS 麦克风 ● 音频编解码器 DAC ● 耳机 ● U 盘(如果使用该存储介质)9 n/ i- ?- x1 w ● MEMS 加速计 此应用使用的主要 STM32 模块包括:6 ?4 s& v c" F# I. W0 u ● USB 外设:主机模式下配置。使用大容量存储类 (MSC) 实现与 U 盘的音频数据交换。) D5 w- {+ ^1 n) w) {! m7 o+ t, c ● I2S 外设:在主发送器模式下配置,用于向外部音频编解码器 (DAC) 发送音频数据。它还可用作主接收器,作为 MEMS 麦克风的输入时钟。 ● DMA:用于将数据从缓冲器发送到 I2S 外设。这可以显著地降低 CPU 负载。 ● I2C 外设:用于控制多个外部器件(如音频编解码器)并从此器件获取数据。( U% K! F0 K* R E9 ? ● SPI 外设:用于控制 MEMS 加速计。0 ?+ e" t t; `0 A ● 用户按钮:用于监视应用(播放或录音)。1 o3 K# b8 }4 O# T( G, ^; W: Z 1 ~: {9 q0 @% `8 a } # K( M ~ u! y4 W9 n! k! S* _ ' W$ B* E: o. s- U2 o4 Z 2.2 固件驱动程序说明 此应用包含下列源文件:" Z. k# C: v5 O; ^* L! e0 O ● main.c:包含初始化代码,并根据所选的“MEDIA_IntFLASH”或“MEDIA_USB_KEY”配置启动应用。$ p4 O$ `" X) R' j% Y X6 w7 u ● stm32f4xx_it.c:包含应用的中断处理程序。 ● waveplayer.c:实施用于播放的功能。 ● waverecorder.c:实施用于录音的功能。: b) D' C) @ M, _/ X ● usb_bsp.c:实施 USB 主机库的开发板支持包。 ● usbh_usr.c:包括 USB 主机库用户回调。9 s- M1 i# t: i& B0 a$ C 每次复位开发板后,都会从所选的大容量存储介质运行波形播放器应用。 ● 如果所选介质为 U 盘,则在按下用户按钮后,会停止播放应用并切换到录音应用。每次按下用户按钮,都会停止运行中的应用并切换到另一个应用。 ● 如果所选介质为内部 Flash,则按下用户按钮不会有任何反应。* |, |! G* m, p: b$ | {/ N3 E 0 B7 J7 ~2 Z* G/ Q7 q - p# v- K" ?4 x b! N& ^- {# h& o 2.3 音频播放应用 图 4 为播放应用的流程图。图中包括多个控制功能,如暂停/继续、开始重复/停止重复。; D, Y: ?7 ?, q; L MEMS 加速计可用于支持停止/继续功能。当波形播放器正在运行时,第一次单击开发板会停止播放,第二次单击则继续播放。( |" D q y6 |7 y 开始重复/停止重复功能可通过 main.h 文件中的 DEFINE 语句进行管理。1 j2 S/ N+ q+ W }. b # l! {2 N$ g0 B7 R( x$ b d 6 B' Q! B, |3 o ! i* o. D& e5 N4 ` 完整版请查看:附件 1 H2 D$ L) b, E, D |
DM00040802_ZHV1.pdf
下载674.05 KB, 下载次数: 19
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)