CH552E的USB device应用

在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例程里也没有看到有这种操作,尝试将这一步删了,发现数据传输出错,请问怎么取消这种反转操作。

可以先参考说明:http://www.wch.cn/bbs/thread-86976-1.html


只有登录才能回复,可以选择微信账号登录