CH554DS1手册上如下描述:
UIF_TRANSFER :USB 传输完成中断标志位,该位为 1 表示有中断,该中断由一个 USB 传输完成触发;该位为 0 表示无中断。直接位访问清零或写 1 清零
而在你们提供的样例代码中(USBHostTransact函数),
UH_EP_PID = endp_pid;
UIF_TRANSFER = 0;
for ( i = WAIT_USB_TOUT_200US; i != 0 && UIF_TRANSFER == 0; i -- );
UH_EP_PID = 0x00;
if ( UIF_TRANSFER == 0 )
return( ERR_USB_UNKNOWN );
上面第三行代码里直接访问了该标志位,按照手册,该位将清零,那么在下面第4行代码中判断将成立导致返回ERR_USB_UNKNOWN.实际调测时没有返回
所以请问手册描述是否正确?