你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

使用 STM32F4DISCOVERY 进行音频播放和录音

[复制链接]
STMCU小助手 发布时间:2022-7-18 14:04
1简介  n6 g$ X  q$ K3 }& A0 j- `
本应用笔记将介绍基于 STM32F4xx 微控制器和 STM32F4-DISCOVERY 板的音频 (wave) 播放和录音应用。* P# d6 |; R5 U* ?6 ?
从 STM32F4xx 微控制器的内部 Flash 或在外部 U 盘上(通过主机模式中的 USB FS 内核)均可读取音频数据 (wave)。记录的波形文件只能存储在外部 U 盘中。
8 S$ ]8 s) ~0 u6 O+ ?录音流程基于使用 PDM 音频软件解码库的 ST MP45DT02 MEMS 麦克风硬件(将麦克风生成的 PDM 数据转换为存储在 U 盘中的 PCM 数据)。5 o7 {0 r% u- L0 `  x" ?4 w
本文档的内容编排如下:
+ u7 W; I, _- o 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 板数据简要
* H+ F5 V" M0 c5 U( F" ^0 n' y开始使用 STM32F4DISCOVERY 套件软件和固件环境 (UM1467)2 n7 [8 z2 y) P8 Z
STM32 微控制器上的 PDM 音频软件解码 (AN3998)
! O/ G/ s4 d. d6 `6 I+ O# \( QSTM32F40x 参考手册 (RM0090)
: Q9 \4 s  u: B1 k/ P: C0 e: K9 j2 }STM32F405xx STM32F407xx 数据手册9 B' S- A9 [  v2 M$ @& D# D, V
- k8 s6 z8 l4 _- L5 \

9 a5 N6 @6 |+ S5 m9 m3 z: _2 应用概述' t  q; G0 U6 t0 i' e" W( L1 E
2.1 应用说明
6 N3 X6 f5 \* j: _: ]3 _/ }; ]音频播放和录音应用支持两种大容量存储介质。在微控制器的内部 Flash 或在外部 U 盘上均可播放音频数据,但记录数据时只能使用外部 U 盘。这通过 main.h 文件中的 DEFINE 语句选择。在工作区工具栏中,选择项目配置:
0 f+ m. u$ ^+ c' V( ^MEDIA_IntFLASH6 {" A- p& q/ f5 q! ?$ {) ^
MEDIA_USB_KEY
/ D; ]9 T# ^8 ~) b; p8 g" o+ k固件驱动程序可以:$ 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

( G$ L! d7 z- y% T XLET`}88$P~_FB_1B.png
1 |& m" w5 ^4 [+ z4 \- f! P5 Z/ ?( ^( q& h
此应用基于 STM32F4xx 器件和 STM32F4-DISCOVERY 板。# h* f( {8 J) L/ Y
此应用的主要特性包括:9 V' G# M: Y5 s8 ~2 ~) W
MEMS 麦克风
3 n' P; s7 C5 P/ h音频编解码器 DAC
. S2 U6 X# |* _+ S( F5 W耳机
& L8 N! F* Y2 q) Z( ?U 盘(如果使用该存储介质)9 n/ i- ?- x1 w
MEMS 加速计
& N3 w: y# ^* w, c' S
3 _9 Z7 y) A: [8 \9 v此应用使用的主要 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 麦克风的输入时钟。
( q0 E' W- U4 W  t" K9 vDMA用于将数据从缓冲器发送到 I2S 外设。这可以显著地降低 CPU 负载。
6 h$ O: M6 ?+ o4 n6 b5 vI2C 外设:用于控制多个外部器件(如音频编解码器)并从此器件获取数据。( U% K! F0 K* R  E9 ?
SPI 外设:用于控制 MEMS 加速计。0 ?+ e" t  t; `0 A
用户按钮:用于监视应用(播放或录音)。1 o3 K# b8 }4 O# T( G, ^; W: Z

7 L2 z& i' R; m7 i  Q$ O) A- V* i
1 ~: {9 q0 @% `8 a  }
_NH$POKO]QVE%]A)Z_BF9_L.png
. o' K5 J( B( Y4 R# K( M  ~  u! y4 W9 n! k! S* _
' W$ B* E: o. s- U2 o4 Z
2.2 固件驱动程序说明
6 [& z  Z4 M  n' W8 g, l此应用包含下列源文件:" 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包含应用的中断处理程序。
, C8 n7 [) g0 ]" |1 swaveplayer.c实施用于播放的功能。
: N! f+ ]' }" _waverecorder.c实施用于录音的功能。: b) D' C) @  M, _/ X
usb_bsp.c实施 USB 主机库的开发板支持包。
% {# O+ D% ?' S& i& ]3 {7 z) zusbh_usr.c包括 USB 主机库用户回调。9 s- M1 i# t: i& B0 a$ C

% z6 W5 ?' r8 `每次复位开发板后,都会从所选的大容量存储介质运行波形播放器应用。
9 ?" @9 m" Q; q如果所选介质为 U 盘,则在按下用户按钮后,会停止播放应用并切换到录音应用。每次按下用户按钮,都会停止运行中的应用并切换到另一个应用。
9 V( o: Y+ m/ i+ m$ G' x如果所选介质为内部 Flash,则按下用户按钮不会有任何反应。* |, |! G* m, p: b$ |  {/ N3 E

  B  B: E" E* g( `5 h% ?" e' O

) x) Z% g+ a; a0 l! Q %SIK[GJFOJI~1GS`VVJ`4OB.png
- p  O, h! q; v6 J0 g3 f0 B7 J7 ~2 Z* G/ Q7 q
- p# v- K" ?4 x  b! N& ^- {# h& o
2.3 音频播放应用
! w8 V/ p3 c* {* e8 c 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

- h4 c. g5 C' B+ C, ?, o PM{DOJS4]ZEJ(0{_Q3E]BYH.png ' k$ R  z+ j8 m
6 B' Q! B, |3 o

4 }" h* f8 g! X9 z! i* o. D& e5 N4 `
完整版请查看:附件

. n' a9 R+ v) t
9 K) d3 k/ r: `! N$ G7 s- W$ s1 H2 D$ L) b, E, D

  w1 T/ y7 i! ~9 u8 ^* f- \

DM00040802_ZHV1.pdf

下载

674.05 KB, 下载次数: 19

收藏 评论0 发布时间:2022-7-18 14:04

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版