PDM示例
源码路径:example/multimedia/audio/4pdm
支持的平台
sf32lb56-lcd_a128r12n1
概述
本例程演示4mic或2mic PDM录音,固定使用了安凯的算法包含:
通过PDM录音,录音wav文件保存。
读取录音数据并播放。
例程的使用
硬件需求
运行该例程前,需要准备:
一块本例程支持的开发板(支持的平台)。
PDM
喇叭。
硬件连接\PIN CONFIG
看下PDM用的哪个口,如果board中bsp_pinmux.c没配置,需要配置下pin function为PDM
更详细的引脚定义请参考 sf32lb52-nano sf32lb52-lcd sf32lb56-lcd sf32lb58-lcd
以f32lb56-lcd_a128r12n1为例,管脚配置如下:
/* PIN CONFIG */
HAL_PIN_Set(PAD_PA69, PDM1_CLK, PIN_NOPULL, 1);
HAL_PIN_Set(PAD_PA64, PDM1_DATA, PIN_PULLDOWN, 1);
HAL_PIN_Set(PAD_PA73, PDM2_CLK, PIN_NOPULL, 1);
HAL_PIN_Set(PAD_PA71, PDM2_DATA, PIN_PULLDOWN, 1);
编译和烧录
切换到例程project目录,运行scons命令执行编译:
> scons --board=sf32lb56-lcd_a128r12n1 -j32
切换到例程project/build_xx目录,运行uart_download.bat,按提示选择端口即可进行下载:
$ ./uart_download.bat
Uart Download
please input the serial port num:5
关于编译、下载的详细步骤,请参考快速上手的相关介绍。
例程的预期结果
本例程中通过FINSH命令来操作录音和播放, 录音生成test.wav文件:
开始录音命令:
pdm open [PDM接口选择] [通道个数] [算法选择]
例如: pdm open pdm1 1 raw
表示,配置为PDM1单声道录音, 不经过任何算法,适合工厂测试。
pdm open pdm1 2 raw
表示,配置为PDM1双声道录音,不经过任何算法,适合工厂测试。
pdm open pdm2 1 raw
表示,配置为PDM2单声道录音, 不经过任何算法,适合工厂测试。
pdm open pdm2 2 raw
表示,配置为PDM2双声道录音,不经过任何算法,适合工厂测试。
pdm open pdm12 4 raw
表示,配置为PDM1/PDM2各自双声道,不经过任何算法,适合工厂测试, 只输出log, 不生成文件。
pdm open pdm1 1 anyka
表示,配置为PDM1单声道录音, 使用安凯算法,输出为单声道。
pdm open pdm1 2 anyka
表示,配置为PDM1双声道录音,使用安凯算法,输出为单声道。
pdm open pdm2 1 anyka
表示,配置为PDM2单声道录音, 使用安凯算法,输出为单声道。
pdm open pdm2 2 anyka
表示,配置为PDM2双声道录音,使用安凯算法,输出为单声道。
pdm open pdm12 4 anyka
表示,配置为PDM1/PDM2各自双声道,使用安凯算法处理4mic,输出为单声道。
结束录音命令:
pdm stop
pdm stop
表示,结束录音。播放录音命令:
pdm play
例如:
pdm play
执行录音后,播放test.wav文件,可以正常播放。
异常诊断
参考文档
更新记录
版本 |
日期 |
发布说明 |
|---|---|---|
0.0.1 |
04/2026 |
初始版本 |