void send_data(unsigned short len,uint8 *buf) { uint8 l,s; while(len) /* 連續(xù)輸出數(shù)據(jù)塊給USB打印機(jī) */ { toggle_send(tog_send); /* 數(shù)據(jù)同步 */ l=len>endp_out_size?endp_out_size:len;/* 單次發(fā)送不能超過端點尺寸 */ wr_usb_data(1,buf); /* 將數(shù)據(jù)先復(fù)制到CH375芯片中 */ s=issue_token((endp_out_addr<<4)|DEF_USB_PID_OUT);/* 請求CH375輸出數(shù)據(jù) */ if(s==USB_INT_SUCCESS) /* CH375成功發(fā)出數(shù)據(jù) */ { tog_send=~tog_send; /* 切換DATA0和DATA1進(jìn)行數(shù)據(jù)同步 */ len-=1; /* 計數(shù) */ buf+=1; /* 操作成功 */ } else if(s==USB_INT_RET_NAK) /* USB打印機(jī)正忙,如果未執(zhí)行SET_RETRY命令則CH375自動重試,所以不會返回USB_INT_RET_NAK狀態(tài) */ {} else { clr_stall(endp_out_addr); /* 操作失敗,正常情況下不會失敗 */ tog_send=0; /* 操作失敗 */ } } }
不管發(fā)送什么數(shù)據(jù),執(zhí)行這個函數(shù)時的s值一直都是0x28,不解?[Emot]1[/Emot]