UIF_TRANSFER标志位是否直接访问即自动清0?

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.实际调测时没有返回


所以请问手册描述是否正确?

第二行UIF_TRANSFER = 0;作用是将UIF_TRANSFER初始化,等待传输完成。传输完成后UIF_TRANSFER 置1


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