|
用BUS HOUND做上位机和MCU通信,MCU可正常接受,却无法发送。表现为CTR中断标志位没有置位,下面是发送函数和端点配置函数,高手看下哪边有错或者没配置好的? uint32_t USB_SendData(uint8_t *data,uint32_t dataNum) { UserToPMABufferCopy(data, GetEPTxAddr(ENDP1), dataNum); SetEPTxCount(ENDP1, 64); SetEPTxValid(ENDP1); return dataNum; } SetEPType(ENDP0, EP_CONTROL); SetEPTxStatus(ENDP0, EP_TX_STALL); SetEPRxAddr(ENDP0, ENDP0_RXADDR); SetEPTxAddr(ENDP0, ENDP0_TXADDR); Clear_Status_Out(ENDP0); SetEPRxCount(ENDP0, Device_Property.MaxPacketSize); SetEPRxValid(ENDP0); /* Initialize Endpoint 1 */ SetEPType(ENDP1, EP_BULK); SetEPRxAddr(ENDP1, ENDP1_RXADDR); SetEPTxAddr(ENDP1, ENDP1_TXADDR); SetEPTxCount(ENDP1, 64); SetEPRxCount(ENDP1, 64); SetEPTxStatus(ENDP1, EP_TX_NAK); SetEPRxStatus(ENDP1, EP_RX_VALID); |
微信公众号
手机版
评分
查看全部评分
暂时解决了,是报告描述符里的size没配好,另外将端点模式设为中断模式就可以了。但是无法解释bulk模式无法发送的问题。
别提libusb了,请看我的上一条帖子。。。