您好!向您请教一下,我用官方的STM3210E_EVAL板子移植官方的audio speaker程序,由于Windows不支持22K的音频输出,因此将音频输出更改为48K,8位,双声道输出,现在使用逻辑分析仪从USB总线上可以看到数据已经发送到STM32,但是在void EP1_OUT_Callback(void)中读取接收到的字节个数时钟为0,不知道为什么!
void EP1_OUT_Callback(void)
{
uint16_t Data_Len; /* data length*/
if (GetENDPOINT(ENDP1) & EP_DTOG_TX)
{
/*read from ENDP1_BUF0Addr buffer*/
Data_Len = GetEPDblBuf0Count(ENDP1); //这里读出来始终是0
PMAToUserBufferCopy(Stream_Buff, ENDP1_BUF0Addr, Data_Len);
}
else
{
/*read from ENDP1_BUF1Addr buffer*/
Data_Len = GetEPDblBuf1Count(ENDP1);
PMAToUserBufferCopy(Stream_Buff, ENDP1_BUF1Addr, Data_Len);
}
FreeUserBuffer(ENDP1, EP_DBUF_OUT);
SetEPRxValid(ENDP1);
In_Data_Offset += Data_Len;
}
|