[求助]issue_token_X和issue_token

unsigned char issue_token( unsigned char endp_and_pid ) { /* 執(zhí)行USB事務(wù) */ /* 執(zhí)行完成后, 將產(chǎn)生中斷通知單片機(jī), 如果是USB_INT_SUCCESS就說明操作成功 */ CH375_WR_CMD_PORT( CMD_ISSUE_TOKEN ); CH375_WR_DAT_PORT( endp_and_pid ); /* 高4位目的端點(diǎn)號, 低4位令牌PID */ return(wait_interrupt() ); /* 等待CH375操作完成 */ }

unsigned char issue_token_X( unsigned char endp_and_pid, unsigned char tog ) { /* 執(zhí)行USB事務(wù),適用于CH375A */ /* 執(zhí)行完成后, 將產(chǎn)生中斷通知單片機(jī), 如果是USB_INT_SUCCESS就說明操作成功 */ CH375_WR_CMD_PORT( CMD_ISSUE_TKN_X ); CH375_WR_DAT_PORT( tog ); /* 同步標(biāo)志的位7為主機(jī)端點(diǎn)IN的同步觸發(fā)位, 位6為主機(jī)端點(diǎn)OUT的同步觸發(fā)位, 位5~位0必須為0 */ CH375_WR_DAT_PORT( endp_and_pid ); /* 高4位目的端點(diǎn)號, 低4位令牌PID */ return( wait_interrupt() ); /* 等待CH375操作完成 */ }

在做usb打印機(jī)的時(shí)候 如果用issue_token可以成功打印,發(fā)送數(shù)據(jù)速度很慢 如果用issue_token_X,不能正常打印,可以看到發(fā)送速度很快 是什么原因 其中issue_token_X里面tog的值怎么給?我把可能的數(shù)都試過了均不能正常打印 0xc0\0x80\0x00\0x40

issue_token與issue_token_X的區(qū)別在于設(shè)置同步觸發(fā)標(biāo)志的時(shí)候。issue_token_X相當(dāng)于issue_token加上SET_ENDP?命令。你往下發(fā)數(shù)據(jù),打印不起來可能是數(shù)據(jù)發(fā)送的同步上存在問題,在數(shù)據(jù)發(fā)送中必須在DATA0與DATA1之間進(jìn)行切換,采用issue_token_X的話,同步觸發(fā)標(biāo)志應(yīng)該在0x00與0x40之間切換。


void toggle_send( uchar tog ) { /* 主機(jī)發(fā)送同步控制:0=DATA0,1=DATA1 */ CH375_WR_CMD_PORT( CMD_SET_ENDP7 ); CH375_WR_DAT_PORT( tog ? 0xC0 : 0x80 ); delay2us(); } 那么這個(gè)函數(shù)里的0xC0 : 0x80要變化嗎? 要是0x00與0x40嗎


你比較一下例子程序中的get_port_status( )和get_port_status_X( )就可以看出來,采用issue_token發(fā)令牌的話得在前面調(diào)用toggle_send()函數(shù)設(shè)置同步標(biāo)志,而采用issue_token_X的話,并沒調(diào)用toggle_send()而是在給出參數(shù)tog時(shí)設(shè)置同步標(biāo)志(tog為0x00對應(yīng)DATA0,tog為0x40對應(yīng)DATA1)。


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频