void toggle_recv( ) { CH375_WR_CMD_PORT( CMD_SET_ENDP6 ); CH375_WR_DAT_PORT( endp6_mode ); endp6_mode ^= 0x40; // 初始值均為80H, 每執(zhí)行一次成功事務(wù)后將位6取反 delay2us( ); } 這里并沒有判斷事務(wù)執(zhí)行成功就把endp6_mode的位6取反了,這是為什么呢? 還有endp6_mode的初值并不是均為80H,我看到有一段程序在調(diào)用函數(shù)toggle_recv()之前, endp6_mode被賦值為C0H,這是什么原因?
void clr_stall6() { CH375_WR_CMD_PORT( CMD_CLR_STALL ); CH375_WR_DAT_PORT( 2 | 0x80 ); // 如果設(shè)備端不是CH37X芯片,那么需要修改端點(diǎn)號(hào) endp6_mode = 0x80; status = 0xff; } 這段程序最后給status賦值0XFF,是什么意思呢