usb audio 录音问题

2019-07-20 13:28发布

本帖最后由 zhaozilong 于 2016-5-20 14:14 编辑

我买了原子开发板 主控是STM32F407  上面有usb audio 声卡(只有扬声器),我在此基础上想改成有录音功能的声卡,修改了描述符,usb连接电脑,能识别成录音设备,但现在就是不通,STM32这边发数据,DCD_EP_Tx(),往库里面的DFIFO鞋数据(USB_OTG_WritePacket()),但是DFIFO里的数据不动,然后代码不停的进入“IN 未完成中断”,“TXFIFO为空”等,现在不知道问题出在哪里,求哪位大侠给点建议,或者源码

static uint8_t  usbd_audio_Init (void  *pdev,
                                 uint8_t cfgidx)
{  
  /* Open EP OUT */
  DCD_EP_Open(pdev,
              AUDIO_IN_EP,                  
              AUDIO_OUT_PACKET,
              USB_OTG_EP_ISOC);

  /* Initialize the Audio output Hardware layer */
  if (AUDIO_OUT_fops.Init(USBD_AUDIO_FREQ, DEFAULT_VOLUME, 0) != USBD_OK)
  {
    return USBD_FAIL;
  }
   
//Transmit data over USB
  DCD_EP_Tx(pdev,
                   AUDIO_IN_EP,
                   (uint8_t*)IsocOutBuff,                        
                   AUDIO_OUT_PACKET);  
  
  return USBD_OK;
}


static uint8_t  usbd_audio_SOF (void *pdev)
{     

    if(RecordFlag == 1)
    {
    AUDIO_OUT_fops.AudioCmd((uint8_t*)(IsocOutWrPtr),  /* Samples buffer pointer */
                            AUDIO_OUT_PACKET,          /* Number of samples in Bytes */
                            AUDIO_CMD_REC);           /* Command to be processed */
   

    if (IsocOutWrPtr >= (IsocOutBuff + (AUDIO_OUT_PACKET * 7)))
    {
      IsocOutWrPtr = IsocOutBuff;
    }
    else
    {
      IsocOutWrPtr += AUDIO_OUT_PACKET;
    }
        DCD_EP_Tx(pdev,
                     AUDIO_IN_EP,
                   (uint8_t*)MYOUTBuff,                        
                   AUDIO_OUT_PACKET);
  }
  
  return USBD_OK;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
jery99
1楼-- · 2019-07-21 10:53
就是录音后播放速度加快 和出现噪音,有知道的帮我分析分析 ,或者怎么样可以定位找出问题。不清楚是  i2s采样、pdm转pcm.usb发送哪个环节影响了。
下午你好
2楼-- · 2019-07-21 11:39
你好,问题解决了没,我也在弄这一块,能分享一下源码吗,谢谢779660413@qq.com
下午你好
3楼-- · 2019-07-21 11:43
 精彩回答 2  元偷偷看……

一周热门 更多>