CH374控制USB打印機(jī)

有哪位大俠用CH374控制USB打印機(jī)成功過? 我枚舉打印機(jī)已經(jīng)成功,但要去打印機(jī)狀態(tài)時(shí),每次協(xié)議執(zhí)行成功,但返回的數(shù)據(jù)都是0,請問是什么原因呢?

根據(jù)你的打印協(xié)議,去操作你的設(shè)備?;蛘吣愕哪愕拇蛴C(jī)插在電腦上,用USB分析儀觀察電腦對其的操作過程


按照我的理解,如果從接口描述子得到的接口類型是單向口,打印機(jī)的狀態(tài)應(yīng)該從缺省的0口返回;如果是雙向口的話,則從輸入口(比如82h)返回。 但在單向口的時(shí)候,執(zhí)行控制傳輸協(xié)議雖然成功了,返回的狀態(tài)卻是00h,而此時(shí)并未裝紙,所以肯定不正確。 在雙向口的時(shí)候,我把控制傳輸協(xié)議的函數(shù)改了下,允許輸入時(shí)使用endpoint地址(比如82h),但此時(shí)執(zhí)行不成功。而如果仍用原來的控制傳輸協(xié)議的函數(shù),也是執(zhí)行成功,但返回的也是00h。 所以覺得有些疑惑。


打印機(jī)獲取端口狀態(tài)的控制請求有很多打印機(jī)要很長時(shí)間才能將打印機(jī)的狀態(tài)報(bào)給主機(jī)。還有對以例如噴墨的打印機(jī)有上傳端點(diǎn)的話,基本上墨的狀態(tài)都是通過上傳端點(diǎn)上傳給主機(jī)。至于你上面所描述的現(xiàn)象,你需要確認(rèn)你的打印機(jī)是否有上傳端點(diǎn)。之后才能做你做的實(shí)驗(yàn)。并且如果有上傳端點(diǎn),那么上傳的數(shù)據(jù)有特定的數(shù)據(jù)格式。這個(gè)也需要你了解的。


根據(jù)Universal Serial Bus Device Class Definition for Printing Devices Version 1.1,取得USB打印機(jī)的端口狀態(tài)有專門的請求碼,如下: Label bmRequestType bRequest wValue wIndex wLength Data GET_PORT_STATUS 10100001B 1 Zero Interface 1 BYTE

我想知道的是,如果根據(jù)接口描述子得到的接口類型是單向口,用例子程序HostCtrlTransfer374函數(shù),返回的數(shù)據(jù)就是打印機(jī)狀態(tài)?至于時(shí)間,HostCtrlTransfer374函數(shù)的SETUP令牌和IN令牌都設(shè)置有200ms的超時(shí)時(shí)間。


按照USB協(xié)議來說就應(yīng)該返回,但是我測試過一款三星的打印機(jī),無論怎么獲取端口狀態(tài)返回的數(shù)據(jù)都是0X18,所以這個(gè)和打印機(jī)廠家有很大的關(guān)系。實(shí)際和CH374芯片沒什么關(guān)系。只要你發(fā)送控制請求,USB打印機(jī)一定會返回?cái)?shù)據(jù)。但是有時(shí)候正確的狀態(tài)返回時(shí)間會比較長。


你用BUSHOUND或者USB分析儀,看下你的枚舉過程到底對不對,然后再根據(jù)你的打印協(xié)議操作你的打印機(jī)


謝謝5樓和6樓的回答。

關(guān)于5樓返回正確地狀態(tài)時(shí)間會比較長,我想請教是一次控制傳輸協(xié)議返回的時(shí)間比較長,還是多執(zhí)行幾次控制傳輸協(xié)議返回的結(jié)果可能會不同?

我實(shí)際上用的是一臺USB接口和并口都有的點(diǎn)陣打印機(jī)。


多次執(zhí)行才能返回。因?yàn)榭刂普埱蟀l(fā)出去之后在幾個(gè)MS之內(nèi)必須返回。否則USB傳輸就認(rèn)為有問題。


按照沁恒范例程序,執(zhí)行控制傳輸時(shí),函數(shù)的調(diào)用流程如下: HostCtrlTransfer374 -> WaitHostTransact374 -> HostTransact374 在函數(shù)HostCtrlTransfer374中,會設(shè)置調(diào)用WaitHostTransact374時(shí)的超時(shí)時(shí)間,當(dāng)然函數(shù)HostTransact374是很快就返回的。

關(guān)于7樓的問題,我想問的是HostCtrlTransfer374函數(shù)返回OK后,也不能保證讀回的是正確的打印機(jī)狀態(tài)嗎?


我這邊測試的時(shí)候是沒有很快返回狀態(tài)??赡芎痛蛴C(jī)廠家有關(guān)系。


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

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