我有一个覆盆子pi(我正在使用linux)和一个测量某些值的设备。
我有一个python服务器,当客户端发送“我想要值”命令时,我会询问设备一些值。这是我的设备的功能:
def usbDevice:
dev = usb.core.find(idVendor=0xXXXX, idProduct=0xXXXX)
if dev is None:
return 'Not found'
dev.set_configuration()
dev.write(1, '\x05', 0) # ask for the values
time.sleep(2)
ret = dev.read(0x81,2048 , 0,1200) # endpoint, siz, interf, timeout ->meas. vals
print ret
return ret
当我开始沟通时,它总是顺利进行(两种方式,我发送命令,我得到了 正确的反应...)。但是,我第二次尝试它(无论我是否等待太长时间)我都没有得到设备的响应。我知道我可以发送请求(我使用打印“步骤XX”来查看它失败的地方),但我得不到答案...我通常会收到超时异常,但有时会遇到“资源忙”异常。
第一次使用后我应该关闭USB通讯吗?怎么样?尽管如此,我总是使用sudo权限编译,我创建了一个.rules文件,所以我认为没有问题。
除此之外,我真的想知道这种方式是否有问题建立USB通信,因为我过去使用过类似的东西。 (而且我对python不太好......)
答案 0 :(得分:1)
您能否提供其他信息,例如Linux发行版和内核编号,例如
uname -a
有known USB issues。好消息是recent fix可能已经解决了这些问题。基本上,使用rpi-update它应该更新内核(你至少需要#389)。