OK,我说详细些,在配置描述符中,描述了2个端点,端点1 ,端点2.
端点1可以发送数据, 端点2就不行。
代码如下:
#define EP_NUM (3)
#define BTABLE_ADDRESS (0x00)
/* EP0 */
/* rx/tx buffer base address */
#define ENDP0_RXADDR (0x40)
#define ENDP0_TXADDR (0x80)
/* EP1 */
/* tx buffer base address */
#define ENDP1_TXADDR (0xC0)
#define ENDP2_TXADDR (0x100)
#define ENDP3_RXADDR (0x110)
/* Initialize Endpoint 1 */
SetEPType(ENDP1, EP_INTERRUPT);
SetEPTxAddr(ENDP1, ENDP1_TXADDR);
SetEPRxAddr(ENDP1, ENDP1_RXADDR);
SetEPTxCount(ENDP1, 14); //ARM --> PC
SetEPRxCount(ENDP1, 14); // PC --> ARM
//SetEPRxStatus(ENDP1, EP_RX_VALID);
SetEPRxStatus(ENDP1, EP_RX_DIS);
SetEPTxStatus(ENDP1, EP_TX_NAK);
/* Initialize Endpoint 2 */
SetEPType(ENDP2, EP_INTERRUPT);
SetEPTxAddr(ENDP2, ENDP2_TXADDR);
SetEPRxAddr(ENDP2, ENDP2_RXADDR);
SetEPTxCount(ENDP2, 10); //ARM --> PC
SetEPRxCount(ENDP2, 10); // PC --> ARM
// SetEPRxStatus(ENDP2, EP_RX_VALID);
SetEPRxStatus(ENDP2, EP_RX_DIS);
SetEPTxStatus(ENDP2, EP_TX_NAK);
|