STM32
直播中

李鑫

7年用户 1316经验值
私信 关注
[问答]

STM32接入PC后能枚举出来麦克风设备,但是开始录音后无数据,为什么?

使用STM32F4做USB 麦克风硬件: STM32F411 + MEMS数字麦克风(输出PDM数据)+ USB接口工作流程:STM32作为USB Aduio Deice 与PC连接,并通过I2S采集MEMS数字麦克风PDM数据,然后调用PDM2PCM库转换为PCM数据,最后把PCM数据通过USB上传给PC实现PC录音使用的STM32CubeMx生成初始化代码后默认是只有播放设备的,通过对usbd_audio.c和usbd_audio.h修改加入了麦克风设备
现在STM32接入PC后能枚举出来麦克风设备,但是开始录音后无数据,BUSHOUN数据长度一直是0,而且无法进入函数USBD_AUDIO_DataIn

回帖(1)

贾虎世

2024-3-18 16:44:04
可能有多个原因导致你遇到的问题。

首先,请确保你的代码正确配置了I2S,并能够成功采集MEMS数字麦克风的数据。可以通过调试工具或示波器来确认是否有有效的PDM数据输出。

其次,确保你正确配置了PDM2PCM库,并且能够将PDM数据转换为有效的PCM数据。你可以使用额外的调试输出来检查是否成功转换为PCM数据。

接下来,请确保你正确配置了USB音频设备的端点(endpoint)和相关参数。检查你的代码是否正确设置了麦克风设备的音频格式、采样率、通道数等参数。

最后,请确保你正确实现了USBD_AUDIO_DataIn函数。该函数负责将PCM数据发送给PC。你可以在该函数中添加调试输出,检查是否有数据被发送。

如果经过以上步骤仍然无法解决问题,建议你使用示波器或逻辑分析仪来调试USB数据传输过程。通过监视数据包的传输和接收,你可以更深入地了解数据是否正确发送和接收。

总之,要解决问题,你需要逐个检查每个环节,并进行相关的调试和验证。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分