【发布时间】:2012-07-04 00:12:29
【问题描述】:
我需要使用 Python 通过 USB 发送数据,我正在使用 PyUSB (http://sourceforge.net/apps/trac/pyusb/) 我寻找任何可用的 USB 端口,并尝试发送消息:
devList = usb.core.find(find_all=True)
for dev in devList:
for cfg in dev:
for intf in cfg:
sys.stdout.write('\t' + str(intf.bInterfaceNumber) + ',' + str(intf.bAlternateSetting) + '\n')
for ep in intf:
sys.stdout.write('\t\t' + str(ep.bEndpointAddress) + '\n')
if ep.bEndpointAddress:
try:
dev.write(ep.bEndpointAddress, 'test', intf.bInterfaceNumber)
except Exception:
print "\t\terror : dev.write("+str(ep.bEndpointAddress)+", 'test', "+str(intf.bInterfaceNumber)+")"
结果是:
0,0
129
error : dev.write(129, 'test', 0)
0,1
129
error : dev.write(129, 'test', 0)
0,0
136
error : dev.write(136, 'test', 0)
10
error : dev.write(10, 'test', 0)
1,0
139
error : dev.write(139, 'test', 1)
13
error : dev.write(13, 'test', 1)
没有 try catch 它给出:
usb.core.USBError: [Errno None] usb_claim_interface: could not claim interface 0, invalid configuration 0
怎么了?有没有通过usb与python进行通信的最佳方式?因为我刚刚找到了这个库
【问题讨论】:
-
如果它起作用了会发生什么?
-
我猜至少有一个接口是有效的......我的一台设备将打印通过 USB 发送的“测试”消息......