我用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 Host不停NAK的问题
24GHz雷达传感器的原理及运用解析
ST新推出ST25R+ST25T停车管理方案 实现共享电动车的定点停车管理
华为P40外观配置曝光,2K双曲面+5500毫安石墨烯电池
MIT研发新材料,使太阳能电池效率提升50%
iOS 10.2又卡又耗电? 用这几招轻松解决!
2023年智能驾驶传感器十大趋势
高精度ISA总线测试板卡设计
化作乾坤万里春:openGauss跨越生态拐点之后,改变了什么?
透传模块是什么,有哪些作用
1200与200smart如何进行PN通讯(一)
案例说明为什么要用GNN来研究医学影像?
自制最便宜的AVR ISP编程器,AVR ISP programmer
特斯拉上线低配版是何原因
IEPE数据采集卡的介绍