求助:关于USB打印机

大家好 我利用CH375开发板驱动HP打印机 当我对打印机枚举的时候 执行到 获取配置描述符的时候 返回0x17 是缓冲区溢出 请问应该怎么解决啊

那你要用外置固件来获取描述符,发个EMAIL到技术信箱,给你发个外置固件的程序


hcn 我给技术邮箱发过邮件了 他们也给我回了 但是他们给我的那个外置固件程序 感觉有点乱 好象就是获取设备描述符什么的 我现在获取描述符的时候数据益处 就要分开来获取,我是自己写的固件程序,分别获得配置描述符,接口描述符,端点描述符.但是我写的程序不能够成功的获取 你能不能给我你的邮箱 我把程序发过去 你有时间帮我看看 谢谢了!


不是这样的,在获取描述符的时候,实际上配置描述符,接口描述符以及端点描述符都是一起传上来的,你只要通过外置固件程序发一个获取配置描述符的命令过去就可以了


你发到tech@wch.cn这个邮箱


好的 我知道了 配置描述符,接口,端点描述符是一起送出来的 现在的问题是 我在编写外部固件程序的时候,控制传输的建立阶段可以顺利完成 而且中断返回码也是0x14 到了控制传输的数据阶段的时候就不行了 while ( s!=USB_INT_SUCCESS ); tog_recv=1; toggle_recv(tog_recv); s = issue_token( 0x09 ); 这时候s的值就成了0x2e了 我把程序给你发过去 你帮我看看 谢谢


还有一个问题就是 既然利用你们给的那些指令获得配置描述符的时候都要溢出 那自己编写固件得到配置描述符的时候也应该是益处的啊 因为CH375内部缓冲区是一定的,对于一台仪器描述符也是固定的啊.虽然自己编写可以指定返回数据字节的多少 但是我们也不知道那些是有用的描述符啊 怎么解决啊 


配置描述符的长度超过64字节的话用我们写好的固件程序获取描述符的话就会溢出,而用外置固件获取描述符的话,一次只获取8个字节的描述符,而描述符的长度实际在你的描述符里面都有定义,还有,在获取配置描述符的时候,你要先获取8个字节的数据,这样就知道你要获取的描述符的长度是多少,接着在根据描述符的长度来获取剩下来的描述符就可以了


利用外部固件程序的时候 返回值的长短 不是可以自己设置吗 你的意思是说先获取8个字节 然后根据这8个字节来确定下一次获取多少自己是吗 我QQ号是183247898 可以加我吗 跟你好好请教一下 谢谢了


先获取8个描述符,在配置描述符前8个字节里面第2和第3个字节代表的是配置信息的长度,也就是你配置描述符的总长度


不是第一个字节表示的是配置描述符的长度吗 即使获得了配置长度 我们能够分次读取吗 这次读去了前8个 下次在读取的时候会从第9个开始读吗 是不是还是要从第一个开始读啊. 我昨天把程序发到你们的邮箱里了 你帮我看看 我现在有点糊涂了 关键是我在外部固件程序执行的时候 执行到控制传输的数据阶段的时候,反回的中断状态是0x2e,不是0x14 不知道原因是什么 while ( s!=USB_INT_SUCCESS ); tog_recv=1; toggle_recv(tog_recv); s = issue_token( 0x09 ); //数据阶段 执行IN事务 这时候s的值就成了0x2e了


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