我用U盘导出数据,现象是第一次导出成功,不拔出U盘的情况下,直接导出第二次失败,之后的每一次都失败。拔出U盘后重新插入,仍是第一次正常,之后每一次失败。
查到是drv_usbh.c文件中的drv_pipe_xfer()函数,NAK死循环。
1、增加了NAK后重试的代码
论坛中其他方法效果不明显,还是会NAK。
if (++retry_times >= 100)
{
return -2;
}
continue;
2、增加延时
打开RT_DEBUG_USB后发现,U盘读写正常了,但是枚举有时不正确,概率大概是插入5次,会有1次枚举不成功。
所以在rt_usb_hcd_pipe_xfer()函数内打印处增加延时,关闭RT_DEBUG_USB后,读写、枚举全部正常。
RT_DEBUG_LOG(RT_DEBUG_USB,("pipe transform remain size,: %dn", remain_size));
if (!RT_DEBUG_USB)
{
rt_thread_mdelay(5);
}
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
USB接口
+关注
关注
9文章
672浏览量
54994 -
DRV
+关注
关注
0文章
18浏览量
20594 -
DEBUG
+关注
关注
3文章
83浏览量
19452 -
RT-Thread
+关注
关注
31文章
1150浏览量
38909
发布评论请先 登录
相关推荐
STM32F407 USB HOST HID部分鼠标键盘无法读取数据的原因?
)
{
UNMASK_HOST_INT_CHH (num);
USB_OTG_HC_Halt(pdev, num);
CLEAR_HC_INT(hcreg , nak);
pdev-&
发表于 04-22 08:22
ST-usb-host-hid库如何解决usb扫码枪这类的usb-hid-keyboard设备?
用cube生成的usb-host-hid调试扫码枪的时候只能支持小部分的usb扫码枪,有好几种扫码枪的现象是:枚举成功了,但是在获取设备信息:USBH_HID_GetHIDDescriptor
发表于 04-17 06:49
stm32l4如何下载到usb host的固件库?
各位大神,请教下stm32l4如何下载到usb host的固件库,还想请教下stm32有没有开源的rndis和ecm代码
发表于 04-11 07:19
请问USB CDC host怎么与多串口的从机通信?
USB CDC host怎么与多串口的从机通信?
有一个从设备的USB虚拟了3个串口,作为主设备,如何分别识别出每个串口,分别于每个串口通信?
我的主设备使用的是官方单独的USB标准库
发表于 04-11 06:11
使用STM32F407 USB HOST遇到的疑问求解
我用的是STM32F407 使用STM32FCUBE产生的工程 起重 USB_OTG_HS 选择的是 Host Only SOF 和 VBUS 都没勾选
USB_OTG_FS 选择
发表于 04-03 06:11
需要用f4xx做usb vcp host端,请问有没有办法让host端不轮询读呢?
请教一下
我们需要用f4xx做usb vcp host端,用cubeide生成了usb host端的 virtual com port代码工程,能够正常识别插入的vcp设备,但是发现
发表于 03-26 08:25
什么是USB HOST、USB Slave和USB OTG?它们之间有什么区别?
什么是USB HOST、USB Slave和USB OTG?它们之间有什么区别? USB(通用串行总线)是一种用于连接设备的通信接口标准,它
NUC220VE3AN如何做到USB HOST?
现时我使用NUC220VE3AN并想储存它的AD数据在USB随身碟,但我不知道如何修改,使它可以做到USB HOST的功能,令我可以读写USB随身碟。请各位多多指教。
发表于 01-15 06:29
如何使用AT32F415 USB HOST接U盘进行固件升级
AT32F415 IAP using a USB host connected U disk描述如何使用AT32F415 USB HOST接U盘进行固件升级。
发表于 10-24 06:50
在OTG主机库对NAK的处理方案
某客户使用 STM32F4 的 OTG 库做 USB 主机控制 Wifi 网卡。使用 BULK 传输类型时,从数据读取数据时,如果设备返回需要把设备返回的 NAK 状态告知上层应用,该如何修改 OTG 库。
发表于 09-08 06:39
NUC220VE3AN如何做到USB HOST?
现时我使用NUC220VE3AN并想储存它的AD数据在USB随身碟,但我不知道如何修改,使它可以做到USB HOST的功能,令我可以读写USB随身碟。请各位多多指教。
发表于 08-21 08:07
PCIe链路层里的ACK/NAK介绍
Spec洋洋洒洒数千页,也不会从头到尾去通读整个协议。对于cocotbext-pcie里面牵涉到的链路层的ACK/NAK,牵涉到的PCIe背景,聊做记录。 本文仅结合PCIe Spce
评论