python读取usb数据_PyUSB:从USB设备读取

这是一个更新和缩短的问题。

通过PyUSB与USB设备进行通讯应该很容易。因此,我试图在Win10下使用PyUSB从USB设备(示波器)读取数据。显然,由于找到了设备,因此USB驱动程序(libusb-win32 v1.2.6.0)正确安装了,并且我得到了一些响应print(dev)(请参见下文)。从中我可以看到输出端点地址是0x3和输入端点地址是0x81

根据示波器手册,我应该发送:SDSLSCPI#到设备以将其设置为SCPI模式,并应获得响应“:SCPION”。但是,:SDSLSCPI#以可复制的方式发送示波器的监视器时,将冻结并重新启动。

如果我发送,*IDN?我应该得到答复,P1337,1842237,V2.4.0->。但仅当设备已经处于SCPI模式时。显然不是,并且我收到超时错误(请参见下文)。

那么,我在这里做错了什么?我在PyUSB教程中缺少什么信息。我使用的是错误的PyUSB命令/参数,还是缺少其他驱动程序,还是关于Win10或设备硬件?感谢您提供有关如何找出问题所在的提示。

顺便说一句,第二个值是dev.read(0x81,7)多少?读取的字节数?好吧,通常我不知道设备将发送多少字节。我期待命令在超时时间内读取直到换行或其他终止符。在哪里可以找到有关PyUSB的“万无一失”的文档,教程和示例?

码:

importusb.coreimportusb.util

dev=usb.core.find(idVendor=0x5345,idProduct=0x1234)ifdevisNone:raiseValueError('Device is not found')# device is found :-)print(dev)dev.set_configuration()msg=':SDSLSCPI#'print("Write:",msg,dev.write(3,msg))print("Read:",dev.read(0x81,7))

来自的输出print(dev):

DEVICE ID5345:1234onBus000Address001=================bLength:0x12(18bytes)bDescriptorType:0x1DevicebcdUSB:0x200USB2

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值