目前我用的官方DEMO:
* File Name : CompositeKM.C
* Author : WCH
* Version : V1.0
* Date : 2018/08/15
我虚拟键盘鼠标,由于是虚拟出来的设配最终是要向windows移动鼠标键盘的。所以我开发了windows由于USB通信的代码。
现在的问题是:
我windows同过writefile写数据到USB后,我能收到:case UIS_TOKEN_OUT | 3: 但我写的代码却收不到收据:
目前,我在DEMO的基础上虚拟出第3个设配来与windows通信了。
收数据的缓冲我是这样写的:
UINT8X Ep3Buffer[MIN(64,ENDP3_IN_SIZE+2)+MIN(64,ENDP3_OUT_SIZE+2)] _at_ (MIN(64,THIS_ENDP0_SIZE+2)+MIN(64,ENDP1_IN_SIZE+2)+MIN(64,ENDP2_IN_SIZE+2));
初始化时这样写的:
void USBDeviceInit()
。。。
UEP3_DMA = Ep3Buffer;
UEP2_3_MOD = UEP2_3_MOD & ~bUEP3_BUF_MOD | bUEP3_TX_EN;
。。。
在DeviceInterrupt过程中能收到回调:
。。。
case UIS_TOKEN_OUT | 3:
UEP3_CTRL ^= bUEP_R_TOG; //手动翻转同步标志位
//if ( U_TOG_OK ) // 不同步的数据包将丢弃
{
len = USB_RX_LEN; //接收数据长度,数据从Ep2Buffer首地址开始存放
DevEP3_OUT_Deal( len ); 这里面打印出来的Ep3Buffer 数据不对。
}
。。。。。。
我的问题是:
我如何才能收到windows那边传过来的数据。Ep3Buffer设计不对还是初始化那里不对。我用573是可以完全交互的。
个人信息保护,已隐藏