STM32 USB SPEAKER例程的问题
在UM0424的usb speaker程序里面,speaker作为一个OUT端点,数据是从pc发到stm32,stm32是作为接收数据的,
资料中说:“同一寄存器中的DTOG_RX位用来标识接收同步端点,DTOG_TX位用来标识发送同步端”
但是例子程序却是这样子写的:
void EP1_OUT_Callback(void)
{
uint16_t Data_Len; // data length
if (GetENDPOINT(ENDP1) & EP_DTOG_TX)//为什么不是判断DTOG_RX呢,
//#define EP_DTOG_RX (0x4000)
//#define EP_DTOG_TX (0x0040)
{
//read from ENDP1_BUF0Addr buffer
Data_Len = GetEPDblBuf0Count(ENDP1);
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);
In_Data_Offset += Data_Len;
}
不明白了 |