我375B接佳能1980打印機(jī)。獲取設(shè)備描述符成功后。設(shè)置打印機(jī)的USB地址(調(diào)用SET_ADDR(3)),返回14h。,再獲取配置描述符,返回也是14H.似乎是成功的。但是我真正讀取數(shù)據(jù)時(shí)。似乎設(shè)備沒(méi)收到命令。返回的描述符長(zhǎng)度仍然是14H。最后讀進(jìn)數(shù)組的是14H個(gè)14H。 不知如何解決?
使用的是內(nèi)置固件模式操作的還是外置固件模式? 如果是內(nèi)置固件模式,發(fā)送完CMD_GET_DESCR 和描述符類型之后 是否有中斷產(chǎn)生? 參考我們提供的操作例程 到我們網(wǎng)站上下載CH375HST.ZIP.
是模式6,外置固件吧。
我應(yīng)該參考的USB打印機(jī)例子具體名稱是什么,我按CH375HST.ZIP去搜查,下載區(qū)回復(fù)我;每個(gè)軟件都包含CH375HST.ZIP
搜打印機(jī)找到了。我基本就是按照這個(gè)程序編的 請(qǐng)問(wèn)哪里出了問(wèn)題? 如果是內(nèi)置固件。又該怎么枚舉
按照一樓的說(shuō)法,你先獲取一下中斷狀態(tài),然后看看是否可以了.
我發(fā)送完CMD_GET_DESCR 和描述符類型之后 。經(jīng)過(guò)引腳判斷和等待。最后會(huì)獲得14h的返回值
如果你發(fā)送獲取描述符,肯定產(chǎn)生1個(gè)中斷.讀出中斷狀態(tài)后,中斷取消.流程就是這樣的.
我讀出中斷狀態(tài)后,讀出的數(shù)據(jù)仍然是14h
讀出狀態(tài)后,中斷有沒(méi)有取消,如果取消了就說(shuō)明操作成功了,因?yàn)楝F(xiàn)在并沒(méi)有其他操作,所以很有可能數(shù)據(jù)口上仍然是0X14,這很正常.
可是我讀取設(shè)備描述符時(shí),讀出狀態(tài)是0X14后,在送讀命令后,讀數(shù)據(jù)口數(shù)據(jù)就不是14h,而是正確的配置符長(zhǎng)度和內(nèi)容啊!為何換成配置描述符,就是“因?yàn)楝F(xiàn)在并沒(méi)有其他操作,所以很有可能數(shù)據(jù)口上仍然是0X14”呢?
不是,只有發(fā)送0X22的命令之后,后面你讀取到的數(shù)據(jù)才是數(shù)據(jù)傳輸狀態(tài)。在你需要讀取數(shù)據(jù)的時(shí)候,按照正常的操作步驟的話,你應(yīng)該需要先發(fā)送一個(gè)讀的命令之后在讀取后續(xù)數(shù)據(jù)長(zhǎng)度,在根據(jù)數(shù)據(jù)長(zhǎng)度來(lái)讀取后續(xù)數(shù)據(jù)。
我就是讀出中斷狀態(tài)是0X14后,發(fā)送了一個(gè)讀的命令之后在讀取后續(xù)數(shù)據(jù)長(zhǎng)度,結(jié)果還是14H.
那你就讀取0X14的數(shù)據(jù),看下你讀取出來(lái)的數(shù)據(jù)是不是配置描述符
INT引腳是否一直為0? 如果是的話那么中斷狀態(tài)沒(méi)有被取消,很可能在去讀數(shù)據(jù)口的話,就是返回0X14.
我接著讀了,讀取出來(lái)的數(shù)據(jù)不是配置描述符,還是14h