在CH554的USB例程库里VendorDefinedDev.c文件截取代码如下:
else
{
switch (USB_INT_ST & (MASK_UIS_TOKEN | MASK_UIS_ENDP))
{ // 分析操作令牌和端点号
case UIS_TOKEN_OUT | 2: // endpoint 2# 批量端点下传
if (U_TOG_OK)
{ // 不同步的数据包将丢弃
UEP2_CTRL ^= bUEP_R_TOG; // 手动翻转
len = USB_RX_LEN;
for (i = 0; i < len; i++)
{
Ep2Buffer[MAX_PACKET_SIZE + i] = Ep2Buffer[i] ^ 0xFF; // OUT数据取反到IN由计算机验证
}
UEP2_T_LEN = len;
UEP2_CTRL = UEP2_CTRL & ~MASK_UEP_T_RES | UEP_T_RES_ACK; // 允许上传
}
break;
case UIS_TOKEN_IN | 2: // endpoint 2# 批量端点上传
UEP2_CTRL ^= bUEP_T_TOG; // 手动翻转
UEP2_CTRL = UEP2_CTRL & ~MASK_UEP_T_RES | UEP_T_RES_NAK; // 暂停上传
break;
这里UIS_TOKEN_OUT | 2选项中做了将从host接收到的数据反转后上传的操作,项目里面不需要这一步,而且在ch573F的Device例程里也没有看到有这种操作,尝试将这一步删了,发现数据传输出错,请问怎么取消这种反转操作。