请问关于USB打印机的问题

我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


只有登录才能回复,可以选择微信账号登录