Audio 如何从Stm32 USB音频设备获取数据并发送到DAC?

Audio 如何从Stm32 USB音频设备获取数据并发送到DAC?,audio,usb,stm32,soundcard,stm32cubeide,Audio,Usb,Stm32,Soundcard,Stm32cubeide,我正在使用STM32F103RCT6板和STM32CubeIDE。我启用了USB音频设备,代码正在运行,windows将该板识别为音频设备或扬声器 我已经搜索和阅读了文档,但我不知道它在代码中做什么。 代码仅为MX_USB_设备_Init() 1-它现在是否从PC接收数据并将其保存在RAM中的某个缓冲区中 2-我如何访问数据并将其发送给DAC 我不打算使用I2C和编解码器,因为我没有编解码器IC。所以我只想用DAC生成音频发送给扬声器 谢谢 @Colin根据数据表,F103xC有2×12位D/A

我正在使用STM32F103RCT6板和STM32CubeIDE。我启用了USB音频设备,代码正在运行,windows将该板识别为音频设备或扬声器

我已经搜索和阅读了文档,但我不知道它在代码中做什么。 代码仅为MX_USB_设备_Init()

1-它现在是否从PC接收数据并将其保存在RAM中的某个缓冲区中

2-我如何访问数据并将其发送给DAC

我不打算使用I2C和编解码器,因为我没有编解码器IC。所以我只想用DAC生成音频发送给扬声器


谢谢

@Colin根据数据表,F103xC有2×12位D/A转换器,我也使用STM32CubeIDE,它显示DAC,我启用了它。看起来它有3个模拟到数字转换器和2个数字到模拟转换器,所以应该是可能的。您可能需要寻找一个类似于
USBD\u AUDIO\u DataOut
的函数,其中USB外围设备使用来自主机的数据进行回调,然后可以将数据加载到缓冲区中。这里有一些例子,可能不是针对您的确切设备,但可能是ST的USB堆栈的兼容用法。@Tom我看到的所有例子,他们主要只做初始化,就像我一样,我不明白他们是如何做其他事情的。显然,用户不需要使用像USBD_AUDIO_DataOut这样的函数。根据UM1734:整个传输由以下函数管理(用户无需调用任何函数进行输出传输):•usbd_audio_DataIn()和usbd_audio_DataOut(),它们使用接收或传输的数据更新音频缓冲区。对于输出传输,当接收到数据时,数据直接复制到音频缓冲区,写入缓冲区(wr_ptr)增加。