你改的是什么描述符啊,端点的话将0x05改成0X55试下看看,不行的话那就是你的设备不支持SET_DESCRIPORT的命令,也就是你的USB设备不允许修改描述符
你用CH375获取它的全速描述符贴出来看看。 还有计算机发给打印机的数据是否和你发送的一样?? 在描述语言上是否有所不同啊?
改了也不行呀, 计算机发给打印机的数据是否和我发送的是一样的. 等一下我把CH375获取的描述贴出来
用CH375读取描述符看看,可能与计算机上抓的不同
用CH375抓的 09 02 20 00 01 01 00 C0 31 09 04 00 00 02 07 01 02 00 07 05 01 02 40 00 00 07 05 81 02 40 00 00
的确不同呀,什么原因呀?
USB协议里面好象有这方面的说明
CH375抓下来详细一点的: 12 01 00 02 00 00 00 40 F0 03 17 2C 00 01 01 02 03 01 09 02 20 00 01 01 00 C0 31 09 04 00 00 02 07 01 02 00 07 05 01 02 40 00 00 07 05 81 02 40 00 00
真的搞不明白和电脑的不同,(512和64)!!!
USB协议2.0协议里面有说明,高速设备支持全速传输,我们的375是全速方式,那当然是64拉
那应该怎么处理速度才不慢呀?协议我看了很小,因为用CH375也不需看协议的.
我想是不是应该用什么命令告诉2.0的打印机需要全速传输呀???具体我不会,大哥要指点指点才行了!!!
不需要,这个问题好象应该不是描述符的问题
我用USB1.1的电脑抓打印机的描述符,也是和CH375一样的,但传数在20K/S左右,不算太慢呀,难道CH375有什么问题吗? 我想用SL811来试试,有用吗?起码可以知道是不是CH375本身的问题!
如果同样的CH375硬件试其它打印机正常,同样的打印机在USB1.1的电脑上正常,那么肯定是软件有问题, 你贴源程序看看,一定要完整的,如果不方便公开,也可发到我们邮件中tech@wch.cn
都不用发了,我是用你们网上的CH375HST.ZIP文件里的程序,只改动过: 1. unsigned char volatile xdata CH375_CMD_PORT _at_ 0xf001;//0xBDF1; /* CH375命令端口的I/O地址 */ 2. unsigned char volatile xdata CH375_DAT_PORT _at_ 0xf000;//0xBCF0; /* CH375数据端口的I/O地址 */ 3. sbit CH375_INT_WIRE = 0xB0^4; /* P3.2, INT0, 连接CH375的INT#引脚,用于查询中断状态 */
4. unsigned char xdata data_to_send[2048] = { 在这里无论是放打印机的描述语言数据还是任意的数据,出来的速度都是一样,约 640字节/S}
其它地方我是没改动过的,而且特意这样做过,肯定其它地方没改的, 是不是不关程序的问题呀?
而且我把时钟的频率加快一半,速度还是一样的,证明是单片机在等,不是打印机等,用SL811试试不知如何?