[求助]每發(fā)送一個字節(jié)檢驗一次打印機(jī)狀態(tài)

由于有一個功能是更新打印機(jī)固件,需要每發(fā)送一個字節(jié)的內(nèi)容檢查一次打印機(jī)狀態(tài)。如果打印機(jī)空閑,我就發(fā)送下一個字節(jié)數(shù)據(jù)。但是,我的程序打印機(jī)只能收到第一個字節(jié)數(shù)據(jù),幫忙分析一下原因。測試程序大概如下: if(CheckPrtStatus())//如果打印機(jī)狀態(tài)ok { if(prtchar++ >=0x7f) prtchar = 0x20; SendUsbChar( prtchar); } BOOL SendUsbChar(UINT8 prtchar)//發(fā)送usb數(shù)據(jù)的程序,打印機(jī)只能收到一個字節(jié)數(shù)據(jù) { UINT8 pc[1],s; pc[0]=prtchar; ToggleSend( tog_send ); WriteUsbData( 1,pc ); s = IssueToken( ( endp_out_addr << 4 ) | DEF_USB_PID_OUT ); if (( s==USB_INT_SUCCESS)||(s == USB_INT_CONNECT)) return TRUE; return FALSE; } // 向CH37X寫入數(shù)據(jù)塊 void WriteUsbData(UINT8 len,UINT8 *buf) { Ch375WriteCmdPort(CMD_WR_USB_DATA7);/* 向CH375的端點緩沖區(qū)寫入準(zhǔn)備發(fā)送的數(shù)據(jù) */ Ch375WriteDataPort(len); /* 后續(xù)數(shù)據(jù)長度, len不能大于64 */ while(len--) { Ch375WriteDataPort(*buf); putchar(*buf);//回顯調(diào)試 buf++; } } 下面的數(shù)據(jù)是我在ch375 數(shù)據(jù)端口讀回的: A1 01 00 00 00 00 01 00 //取狀態(tài)命令 98//返回ok 20 //發(fā)送到打印機(jī)的數(shù)據(jù) A1 01 00 00 00 00 01 00 //取狀態(tài)命令 98//返回ok 21 //發(fā)送到打印機(jī)的數(shù)據(jù) A1 01 00 00 00 00 01 00 //取狀態(tài)命令 98//返回ok 22 //發(fā)送到打印機(jī)的數(shù)據(jù) A1 01 00 00 00 00 01 00 //取狀態(tài)命令 98//返回ok 23 //發(fā)送到打印機(jī)的數(shù)據(jù) A1 01 00 00 00 00 01 00 //取狀態(tài)命令 98//返回ok 24 //發(fā)送到打印機(jī)的數(shù)據(jù)

可以看出,數(shù)據(jù)的確發(fā)送出去了,但是每次發(fā)送打印機(jī)只能收到0x20,請問這是為什么?

再次請求大家?guī)蛶兔?!工程就要完成了!這個功能完成就差不多了!


此問題已解決。不勞大家費(fèi)心了。


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

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