【问题标题】:pyusb: function works well once, the second time failspyusb:功能一次运行良好,第二次失败
【发布时间】:2013-03-17 23:34:49
【问题描述】:

我有一个树莓派(我正在使用 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...)

【问题讨论】:

    标签: python usb raspberry-pi pyusb raspbian


    【解决方案1】:

    您能否提供其他信息,例如 linux 发行版和内核编号,例如

     uname -a
    

    known USB issues。好消息是recent fix 可能已经解决了这些问题。基本上,使用rpi-update 它应该会更新内核(你至少需要#389)。

    【讨论】:

    • 我认为这可能是我的树莓派的硬件问题。一旦我得到另一个,我可以100%肯定地回答你......无论如何,你的建议似乎是解决方案,如前所述,感谢您的信息!
    • 是的,就是这样。与最后一个 Raspbian 配合良好,但不适用于我的旧 Raspbian。再次感谢!!
    猜你喜欢
    • 2015-12-01
    • 2020-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-20
    • 1970-01-01
    • 2021-09-09
    相关资源
    最近更新 更多