由于我需要传 BOS Descriptor 的内容,Microsoft OS 2.0 descriptor 长达 178 字节,但是我每次只能发送 64字节
我参考了官方示例的 USB 中断处理函数,其中
else { if ( chtype & 0x80 ) // 上传 { len = ( SetupReqLen > DevEP0SIZE ) ? DevEP0SIZE : SetupReqLen; SetupReqLen -= len; } else len = 0; // 下传 R8_UEP0_T_LEN = len; R8_UEP0_CTRL = RB_UEP_R_TOG | RB_UEP_T_TOG | UEP_R_RES_ACK | UEP_T_RES_ACK; // 默认数据包是DATA1 }
这里会将 len 设置成 64 (DevEp0Size),期望的是 Host 继续发同样的请求,并且 pSetupReqPak->wLength 为 178 - 64,但这并没有发生,我这里是不是做错了,需要怎么分包发送呢?
热门产品 :
CH339: 7端口多功能USB HUB控制器芯片