完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
描述符长度这里会返回错误,代码是从ch554移植过来的,ch554使用正常,到了CH549就不行了,请问为啥?
UINT8 CtrlGetDeviceDescr( void ) { UINT8 s; UINT8 len; UsbDevEndp0Size = DEFAULT_ENDP0_SIZE; CopySetupReqPkg( SetupGetDevDescr ); s = HostCtrlTransfer( Com_Buffer, (PUINT8)&len ); // 执行控制传输 if ( s != ERR_SUCCESS ) { return( s ); } UsbDevEndp0Size = ( (PXUSB_DEV_DESCR)Com_Buffer ) -> bMaxPacketSize0; // 端点0最大包长度,这是简化处理,正常应该先获取前8字节后立即更新UsbDevEndp0Size再继续 if ( len < ( (PUSB_SETUP_REQ)SetupGetDevDescr ) -> wLengthL ) { printf("SetupGetDevDescr ERR_USB_BUF_OVERnr" ); return( ERR_USB_BUF_OVER ); //////// 在这里返回错误 // 描述符长度错误 } return( ERR_SUCCESS ); } |
|
相关推荐
1个回答
|
|
|
您好,报错的地方比较的是请求的请求的字节长度和接受到的字节长度做对比,可以进入到HOSTCTRLTRANSFER函数内部监控一下在读取USB_RX_LEN寄存器值的时候具体的长度是多少,同时因为报错了,也可以看一下缓冲区中的数据本身是什么,用来判断USB事务执行本身是否是成功的。
|
|
|
|
|
只有小组成员才能发言,加入小组>>
350 浏览 0 评论
CH582M HOST发送数到设备后,提交IN一直是2A是什么问题?
863 浏览 0 评论
1461 浏览 1 评论
CH579M+RT-Thread,RTC从Sleep模式唤醒失败是什么原因?
3418 浏览 2 评论
2822 浏览 1 评论
安卓手机支持外接otg扩展坞 然后使用ch340+ch9329控制电脑吗
1808浏览 1评论
1461浏览 1评论
350浏览 0评论
CH582M HOST发送数到设备后,提交IN一直是2A是什么问题?
863浏览 0评论
468浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 13:22 , Processed in 0.733685 second(s), Total 42, Slave 35 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
961