目前我用的官方DEMO:
* File Name? ? ? ? ? : CompositeKM.C
* Author? ? ? ? ? ? ?: WCH
* Version? ? ? ? ? ? : V1.0
* Date? ? ? ? ? ? ? ?: 2018/08/15
我虛擬鍵盤鼠標(biāo),由于是虛擬出來的設(shè)配最終是要向windows移動鼠標(biāo)鍵盤的。所以我開發(fā)了windows由于USB通信的代碼。
現(xiàn)在的問題是:
? ? 我windows同過writefile寫數(shù)據(jù)到USB后,我能收到:case UIS_TOKEN_OUT | 3:? ?但我寫的代碼卻收不到收據(jù):
目前,我在DEMO的基礎(chǔ)上虛擬出第3個設(shè)配來與windows通信了。
收數(shù)據(jù)的緩沖我是這樣寫的:
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過程中能收到回調(diào):
。。。
? ? ? ? case UIS_TOKEN_OUT | 3:
? UEP3_CTRL ^= bUEP_R_TOG;? ? //手動翻轉(zhuǎn)同步標(biāo)志位
? ? ? ? ? ? //if ( U_TOG_OK )? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// 不同步的數(shù)據(jù)包將丟棄
? ? ? ? ? ? {
? ? ? ? len = USB_RX_LEN;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//接收數(shù)據(jù)長度,數(shù)據(jù)從Ep2Buffer首地址開始存放
? ? ? ? ? ? ? ? DevEP3_OUT_Deal( len );? ?這里面打印出來的Ep3Buffer? ?數(shù)據(jù)不對。
? ? ? ? ? ? }
。。。。。。
我的問題是:
我如何才能收到windows那邊傳過來的數(shù)據(jù)。Ep3Buffer設(shè)計不對還是初始化那里不對。我用573是可以完全交互的。
? ? ? ??
個人信息保護,已隱藏