我使用CH375连接连接USB打印机(HP2568),执行读配置描述符时,返回状态为0x17,对应为“USB控制传输的数据太多, 缓冲区溢出”,该怎样处理;使用"USBlyzer"分析软件,知道打印机返回该数据长度大约为"0x4E"字节
使用外置固件模式操作, 到下面的网址里面下载一个使用CH375外置固件操作鼠标键盘的例子,枚举部分基本是一样的。 http://www.wch.cn/bbs/View.asp?T=1&S=101&I=19463
另外需要把设置低速模式去掉,因为打印机是全速的,这一点在修改程序中需要注意。 另外你在只需要参考到设置配置就可以了。余下的代码可以删除。
参考上诉例子,我已正常读出"配置描述符",但该打印机配置接口为两个,不知应将"Setup"事务如何设置才能读出“接口配置”与“端点配置”。我读“接口配置”时,返回值为"0x2E"。
你获取配置描述符的时候,上述描述符就已经上传给你。 正确的顺序是先获取四个配置描述符,第3和第4个字节表示配置描述符的长度。根据这个长度就可以把所有的配置描述符全部获取到了。 关于查看配置,你直接发送Get_Config.就可以了。 0X2E代表STALL,发送的命令可能设备不支持。否则设备无条件相应SETUP事物
我有两台hp打印机,其中一台为:D2368,设备及配置描述为: 12 01 00 02 00 00 00 08 F0 03 02 C3 00 01 01 02 03 01 09 02 20 00 01 01 00 C0 01 09 04 00 00 02 07 01 02 00 07 05 01 02 40 00 00 07 05 82 02 40 00 00 按给定例程,已能进行正常枚举,用"USBlyzer"软件,获取的输出数据写入打印机,可打印出我希望的字符; 另一台为:D2568,设备及配置描述为: 12 01 00 02 00 00 00 40 F0 03 04 1E 00 01 01 02 03 01 09 02 4E 00 02 01 00 C0 07 05 06 02 40 00 00 07 05 87 02 40 00 00 40 00 00 07 05 89 02 40 00 00 09 04 01 00 02 FF FF FF 00 07 05 06 02 40 00 00 07 05 87 02 40 00 00 09 04 01 01 02 FF D4 00 00 10 16 40 08 0F 80 3F 80 FF C0 CF C0 07 C0 按给定例程,不能进行正常枚举,我该怎么做?而这台打印机,是我希望最终使用的!对前面的帮助,我非常感谢,望在给点提示或例程!谢谢!
实现枚举的控制传输分为3个步骤:Setup、数据、状态,失败的时候需要分析一下是哪个步骤出错了
不能正常枚举,在哪一步出现问题了?枚举应该不难,你插在电脑上,看看电脑是怎么枚举,怎么切换接口的,按照电脑上的行为去收发数据就可以了。
插在电脑上,发现我的配置描述数据读取有误,修正程序后,能正常完成打印机D2568枚举; main()循环中的打印机状态获取函数,返回值为"0x10",对打印机写入数据能打印出希望的字符;但可靠性有点差:有时能打印、有时打印机死掉;打印机状态返回值0x10,代表什么?谢谢!
各位大侠 谁有PCL 指令集 或资料 , 能否给我一套,
谢谢了
我的邮箱: 个人信息保护,已隐藏
楼主,我也刚在弄ch375连接USB打印机,能否告诉,数据怎么传送的,怎么编控制命令
下载CH375HST.ZIP,这里面有打印机USB传输部分,已经能正确枚举设备。
打印机的状态返回你可以看下USB里面关于打印机的协议有说明的,这个是一个控制请求,其中每一位都代表一个状态,你可以拿那个参考。
楼主,我也在弄ch375连接USB打印机, 也是溢出 能发个 修改好后的程序吗?
我们也在研究CH375操作打印机,我的QQ:763532196,大家也留一下QQ,交流一下吧