本帖最后由 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;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>