求助使用Libusb开发STM32驱动 bluk_read超时的问题

2020-01-01 17:40发布

最近在使用libusb开发STM32的上位机驱动
现在主要测试read 可以达到700+KB/S

现在遇到一个问题
就是使用libusb里面的函数对设备EP进行读取的时候 usb_bulk_read(dev, EP_IN, tmp, sizeof(tmp), 5000);
当设备EP的缓存里面有数据的时候 没问题 可以正常读到
但是当设备里面没数据的时候 上位机就会卡在这里 直到超时报错

求助下大侠这是哪里的问题
是上位机libusb的函数使用有问题?还是STM32里面的固件有问题?
我比较深入的看了下 STM32虚拟串口等例程对读处理的操作的处理
就是有数据就写到缓存里面等待发送 没有数据就没有任何EP操作
但是他们的驱动就没有报错啊

大家多给意见 谢谢!


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
haizheng4
1楼-- · 2020-01-01 18:38
 精彩回答 2  元偷偷看……
haizheng4
2楼-- · 2020-01-01 23:39
别沉啊 高手指点下
kclc
3楼-- · 2020-01-02 01:53
找个USB捕包的软件看下
leavic
4楼-- · 2020-01-02 03:07
device不发数据,host当然读取超时,这有什么问题。。。
flytosky8
5楼-- · 2020-01-02 08:38
haizheng4 发表于 2013-2-26 11:19
现在我觉得导致上位机超时的原因是EP的缓存中没有数据
所以一致回复上位机NAK导致的等待超时

想到的一个解决方案是 回复上位机一个0长度的data包

这样可以啊,要不设备不发送数据,主机当然要等待超时了。。
sblpp
6楼-- · 2020-01-02 09:36
 精彩回答 2  元偷偷看……

一周热门 更多>