請教一下各位高手,我用單片機ATmega8通過CH375B連接USB打印機,現(xiàn)在情況是USB枚舉成功,通過讀取端口狀態(tài)get_port_status(),返回0x18。
然后發(fā)送打印數(shù)據(jù)send_data( strlen(str_to_print), str_to_print);/* 可以再次繼續(xù)發(fā)送數(shù)據(jù)或者接收數(shù)據(jù) */
打印機沒有反應,請問這個是哪里沒對呢,謝謝。
請教一下各位高手,我用單片機ATmega8通過CH375B連接USB打印機,現(xiàn)在情況是USB枚舉成功,通過讀取端口狀態(tài)get_port_status(),返回0x18。
然后發(fā)送打印數(shù)據(jù)send_data( strlen(str_to_print), str_to_print);/* 可以再次繼續(xù)發(fā)送數(shù)據(jù)或者接收數(shù)據(jù) */
打印機沒有反應,請問這個是哪里沒對呢,謝謝。
發(fā)送數(shù)據(jù)要按照打印機協(xié)議來發(fā)送數(shù)據(jù)的。否則打印機是沒有響應的,建議你在電腦上將文件打印到某一個文件,然后按照這個文件里面的內容發(fā)送數(shù)據(jù),看下打印機是否可以打印。
get_port_status返回狀態(tài)碼中: 位5(Paper Empty)為1說明無紙, 位4(Select)為1說明打印機聯(lián)機, 位3(Not Error)為0說明打印機出錯。0x18說明打印機出錯,說明前面枚舉還有問題。枚舉成功之后才能正常打印。
返回0x18,就是00011000B,那么第5位為0,說明有紙;第4位為1,聯(lián)機;第3位為1,說明沒有錯啊。仍然不能打印。。。郁悶中
不知道這種控制方式有沒有人做成功過···
這種方式應該可以正常打印的,首先枚舉階段看看有無命令沒響應。數(shù)據(jù)傳輸階段需要對指定端點發(fā)送特定的打印機數(shù)據(jù)。
嗯,繼續(xù)摸索中。感謝各位的指點。。。