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;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。