ch582f芯片用2號(hào)的usb作為host出現(xiàn)問題,具體是進(jìn)行一次批量事務(wù)后,從寄存器R8_USB2_RX_LEN獲取到的長(zhǎng)度居然大于64,我在測(cè)試的時(shí)候發(fā)現(xiàn)偶發(fā)性獲取到162大小,這不符合常理呀,咋回事。代碼如下:
?s = USB2HostTransact( USB_PID_IN << 4 | endp_pid & 0x7F,
? ? ? ? ? ? ? ? (*tog_V) & 0x80 ?
? ? ? ? ? ? ? ? RB_UH_R_TOG | RB_UH_T_TOG :
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0, timeout);
??
? ? ? ? if (s == ERR_SUCCESS) {
? ? ? ? ? ? (*tog_V) ^= 0x80; // 同步標(biāo)志翻轉(zhuǎn)
? ? ? ? ? ? if(R8_USB2_RX_LEN>64)//這邊會(huì)獲取到超過64長(zhǎng)度的值,按道理不應(yīng)該呀
? ? ? ? ? ? {
? ? ? ? ? ? ? ? return -1;
? ? ? ? ? ? }
? ? ? ? ? ? return R8_USB2_RX_LEN;