一定要用外部固件模式了吗?

采用的是沁恒提供的控制打印机的程序,选用的打印机型号是hp deskjet640c。在读取配置描述符时,返回的状态值是0x17.请问是不是因为配置描述符太长,造成寄存器溢出。还有其他可能性吗?

自己坐下沙发


可能是配置描述符超过了64字节,所以要用外部固件来读取描述符,你发个邮件到我们技术信箱,我给你发外部固件读取描述符的程序


邮件已发,多谢。


邮件已收到。不过有一点不明白的地方。toggle_send(); toggle_recv();和ch375prt.c中的定义不同。这里没有参数,但是ch375prt.c中定义的函数是有形参的。请问这里的函数是怎么定义的。还有,endp6_mode和endp7_mode又代表什么?


我把这几个都发给你


多谢,看到了函数定义我觉得自己很笨,看到那两个数值猜都应该猜到了。


将结构request的定义发给我好吗?


想请问下外部固件程序中变量flag_config_2是什么含义。


bit flag_config_2=0; //第二次获取描述符标志位


再请教一个问题,ch375prt.c中分析配置描述符的时候,提到了接口类型和接口子类型。这个应该是借口描述符的内容吧?


在配置描述符中,包括:配置描述符(开头的为0X09,0X02)配置描述符的长度为9. 接口描述符(开头为0X09,0X04)长度为9,端点描述符(0X07,0X05)长度为7. 你可以去看USB的协议


这个我知道的,那么怎么读取接口描述符呢?


接口描述符是在读配置描述符的时候一起读出来的


多谢多谢,有点眉目了,在研究研究。


还想请教一下,端点描述符中,端点收发最大包的大小用了两个字节,可是程序中用来接收这个值的变量endp_out_size却是unsigned char 型,请问为什么?


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