1

我正在从事一个音频项目。我们像USB音频设备一样使用stm32f407从PC获取音频数据,然后通过I2S模块发送出去。我们正在使用 stm32f4 Discovery 套件和 STM32cubeMX。按照这个视频生成代码后,我什么也没做,闪到Kit;我的电脑识别出 STM 音频设备,但在播放音乐时没有任何数据发送到我的套件,除了 MuteCMD 。我的问题是:

  • 当数据从 PC 流到 Kit 时,我不知道哪个函数是回调。

  • 为什么PC识别我的套件是音频输出设备,但是当我在PC上配置音量并且没有任何音乐数据发送到我的设备时,没有调用音量控制的回调。当我将 PC 静音时,会调用唯一的一个静音控制回调函数。

这是我在 STM32cubeMX 中的配置

引脚配置图 引脚配置图

USB设备配置图1 USB设备配置图1

USB设备配置图2 USB设备配置图2

USB设备配置图3 USB设备配置图3

PC识别AUDIO设备图 PC识别AUDIO设备图

选择PC的音频输出设备图 选择PC的音频输出设备图

无法播放测试音图 无法播放测试音图

4

2 回答 2

0

您应该将 USBD_AUDIO_FREQ 设置为 22050(或 44100 或 11025)。您的值是 22100,似乎 Windows 或内置音频驱动程序无法使用该频率。

于 2020-02-04T15:46:45.270 回答
0

我有完全相同的问题。
我的项目是从 STM32Cube 生成的。
Windows 将 F7-DISCO 板识别为声卡,但无法播放测试声音。

我将USBD_AUDIO_FREQ 更改为 48000并将PID 更改为 0x5730(十进制为 22320)。
然后一切正常。

在此处输入图像描述

在此处输入图像描述

于 2021-01-03T05:44:39.960 回答