audio - 没有来自 PC 的音频数据发送到 STM32F4 音频类 USB

标签 audio usb stm32f4discovery stm32cubemx

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

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

  • 这是我在 STM32cubeMX 中的配置

    引脚配置图
    pinout config figure

    USB设备配置图1
    USB device config figure 1

    USB设备配置图2
    USB device config figure 2

    USB设备配置图3
    USB device config figure 3

    PC识别AUDIO设备图
    PC identifies AUDIO device figure

    选择PC的音频输出设备图
    choosing PC's audio output device figure

    无法播放测试音图
    fail to play test tone figure

    最佳答案

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

    关于audio - 没有来自 PC 的音频数据发送到 STM32F4 音频类 USB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54731907/

    相关文章:

    c - 我需要使用stm uart模块

    ram - STM32F407 内存布局

    c# - SoundEffect.CreateInstance是否每次都从文件加载?

    Android 与 USB 到串行设备的通信和 controlTransfers

    c++ - arm-none-eabi-g++ 忽略表达式 stm32f4 中的无效字符 `#'

    android - 传输数据 USB

    android - 在 Linux 机器中哪里可以找到 adb_usb.ini

    flutter - 如何控制 FLutter 包 audio_service 中通知栏中显示的内容

    android - 在 Android 上初始化 AudioTrack 是否有明显延迟?

    linux - 提取音频,再次操作和合并