在CH554的USB例程庫里VendorDefinedDev.c文件截取代碼如下:
? ? ? ? else
? ? ? ? {
? ? ? ? ? ? switch (USB_INT_ST & (MASK_UIS_TOKEN | MASK_UIS_ENDP))
? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? // 分析操作令牌和端點(diǎn)號
? ? ? ? ? ? case UIS_TOKEN_OUT | 2: // endpoint 2# 批量端點(diǎn)下傳
? ? ? ? ? ? ? ? if (U_TOG_OK)
? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? ? ?// 不同步的數(shù)據(jù)包將丟棄
? ? ? ? ? ? ? ? ? ? UEP2_CTRL ^= bUEP_R_TOG; // 手動翻轉(zhuǎn)
? ? ? ? ? ? ? ? ? ? len = USB_RX_LEN;
? ? ? ? ? ? ? ? ? ? for (i = 0; i < len; i++)
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? Ep2Buffer[MAX_PACKET_SIZE + i] = Ep2Buffer[i] ^ 0xFF; // OUT數(shù)據(jù)取反到IN由計(jì)算機(jī)驗(yàn)證
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? UEP2_T_LEN = len;
? ? ? ? ? ? ? ? ? ? UEP2_CTRL = UEP2_CTRL & ~MASK_UEP_T_RES | UEP_T_RES_ACK; // 允許上傳
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? case UIS_TOKEN_IN | 2: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // endpoint 2# 批量端點(diǎn)上傳
? ? ? ? ? ? ? ? UEP2_CTRL ^= bUEP_T_TOG; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // 手動翻轉(zhuǎn)
? ? ? ? ? ? ? ? UEP2_CTRL = UEP2_CTRL & ~MASK_UEP_T_RES | UEP_T_RES_NAK; // 暫停上傳
? ? ? ? ? ? ? ? break;
這里UIS_TOKEN_OUT | 2選項(xiàng)中做了將從host接收到的數(shù)據(jù)反轉(zhuǎn)后上傳的操作,項(xiàng)目里面不需要這一步,而且在ch573F的Device例程里也沒有看到有這種操作,嘗試將這一步刪了,發(fā)現(xiàn)數(shù)據(jù)傳輸出錯(cuò),請問怎么取消這種反轉(zhuǎn)操作。