我375B接佳能1980打印机。获取设备描述符成功后。设置打印机的USB地址(调用SET_ADDR(3)),返回14h。,再获取配置描述符,返回也是14H.似乎是成功的。但是我真正读取数据时。似乎设备没收到命令。返回的描述符长度仍然是14H。最后读进数组的是14H个14H。 不知如何解决?
使用的是内置固件模式操作的还是外置固件模式? 如果是内置固件模式,发送完CMD_GET_DESCR 和描述符类型之后 是否有中断产生? 参考我们提供的操作例程 到我们网站上下载CH375HST.ZIP.
是模式6,外置固件吧。
我应该参考的USB打印机例子具体名称是什么,我按CH375HST.ZIP去搜查,下载区回复我;每个软件都包含CH375HST.ZIP
搜打印机找到了。我基本就是按照这个程序编的 请问哪里出了问题? 如果是内置固件。又该怎么枚举
按照一楼的说法,你先获取一下中断状态,然后看看是否可以了.
我发送完CMD_GET_DESCR 和描述符类型之后 。经过引脚判断和等待。最后会获得14h的返回值
如果你发送获取描述符,肯定产生1个中断.读出中断状态后,中断取消.流程就是这样的.
我读出中断状态后,读出的数据仍然是14h
读出状态后,中断有没有取消,如果取消了就说明操作成功了,因为现在并没有其他操作,所以很有可能数据口上仍然是0X14,这很正常.
可是我读取设备描述符时,读出状态是0X14后,在送读命令后,读数据口数据就不是14h,而是正确的配置符长度和内容啊!为何换成配置描述符,就是“因为现在并没有其他操作,所以很有可能数据口上仍然是0X14”呢?
不是,只有发送0X22的命令之后,后面你读取到的数据才是数据传输状态。在你需要读取数据的时候,按照正常的操作步骤的话,你应该需要先发送一个读的命令之后在读取后续数据长度,在根据数据长度来读取后续数据。
我就是读出中断状态是0X14后,发送了一个读的命令之后在读取后续数据长度,结果还是14H.
那你就读取0X14的数据,看下你读取出来的数据是不是配置描述符
INT引脚是否一直为0? 如果是的话那么中断状态没有被取消,很可能在去读数据口的话,就是返回0X14.
我接着读了,读取出来的数据不是配置描述符,还是14h