请教下大家,用USB调试助手来调试USB所遇到的困惑。问题如下面截图;
在程序只找到一个MCU接收PC所发数据的函数(如下)
。但这是EP1的,而非EP2的。但在调试时,确发现PC通过EP2下发的数据,mcu却能收得到。(因为在在程序里,是有EP2对PC发送数据的函数的)
void EP1_OUT_Callback(void)
{
PMAToUserBufferCopy(USB_Receive_Buffer, ENDP1_RXADDR, REPORT_COUNT);
SetEPRxStatus(ENDP1, EP_RX_VALID);
USB_Received_Flag=1;
#else
// USB_SIL_Read(EP1_OUT,USB_Receive_Buffer);
// USB_Received_Flag=1;
#endif
}
程序是有EP2对PC的发送数据函数。但没找得到EP2接收PC所发数据的函数。
uint32_t USB_SendData(uint8_t *data,uint32_t dataNum)
{
#ifndef STM32F10X_CL
//数据通过USB送出去
UserToPMABufferCopy(data, ENDP2_TXADDR, dataNum);
SetEPTxCount(ENDP2, REPORT_COUNT);
SetEPTxValid(ENDP2);
#else
USB_SIL_Write(EP2_IN, data, dataNum);
#endif
return dataNum;
}
而且,看程序另一个地方的设置,#define EP2_OUT_Callback NOP_Process,这个也没加屏蔽,也就是 EP2接收PC所发数据的函数或功能也没使能
/* CTR service routines */
/* associated to defined endpoints */
//#define EP1_IN_Callback NOP_Process
//#define EP2_IN_Callback NOP_Process
#define EP3_IN_Callback NOP_Process
#define EP4_IN_Callback NOP_Process
#define EP5_IN_Callback NOP_Process
#define EP6_IN_Callback NOP_Process
#define EP7_IN_Callback NOP_Process
//#define EP1_OUT_Callback NOP_Process
#define EP2_OUT_Callback NOP_Process
#define EP3_OUT_Callback NOP_Process
#define EP4_OUT_Callback NOP_Process
#define EP5_OUT_Callback NOP_Process
#define EP6_OUT_Callback NOP_Process
#define EP7_OUT_Callback NOP_Process
请高手们分析下,谢谢