我刚刚开始使用pyusb,基本上我在这里玩样例代码。
我使用的是Windows7 64位,并从https://walac.github.io/pyusb/下载了zip版本。后端为libusb-1.0.19,从http://libusb.info/下载windows二进制文件。
我所有的代码是:
dev = usb.core.find(idVendor=3544, idProduct=9736)
if dev is None:
sys.stdout.write("No device found")
return;
print "deviceClass = " + str(dev.bDeviceClass);
for cfg in dev:
sys.stdout.write("configuration: " + str(cfg.bConfigurationValue) + 'n')
for intf in cfg:
sys.stdout.write('tInterface: ' +
str(intf.bInterfaceNumber) +
',' +
str(intf.bAlternateSetting) +
'n')
for ep in intf:
sys.stdout.write('ttEndpoint: ' +
str(ep.bEndpointAddress) +
',' +
str(ep.bmAttributes) +
'n')
dev.set_configuration()
在结束行,我得到
File "test.py", line 44, in find_mine
dev.set_configuration()
File "c:Python27libsite-packagesusbcore.py", line 842, in set_configuration
self._ctx.managed_set_configuration(self, configuration)
File "c:Python27libsite-packagesusbcore.py", line 128, in managed_set_configuration
self.managed_open()
File "c:Python27libsite-packagesusbcore.py", line 106, in managed_open
self.handle = self.backend.open_device(self.dev)
File "c:Python27libsite-packagesusbbackendlibusb1.py", line 778, in open_device
return _DeviceHandle(dev)
File "c:Python27libsite-packagesusbbackendlibusb1.py", line 640, in __init__
_check(_lib.libusb_open(self.devid, byref(self.handle)))
File "c:Python27libsite-packagesusbbackendlibusb1.py", line 590, in _check
raise NotImplementedError(_strerror(ret))
NotImplementedError: Operation not supported or unimplemented on this platform
我安装了几个USB设备,但只有当我尝试为我的USB闪存驱动器set_configuration
时才看到这个问题…
这是因为我不能使用pyusb访问闪存驱动器吗?或者我错过了什么…
我也遇到过这种情况,问题是设备被其他软件或驱动程序使用了
这个问题是关于在w7/64位上有正确的驱动程序。我试着连接并使用Microchip自编程卡。不幸的是,Microchip提供的驱动程序与libusb库不兼容,我也遇到了同样的错误。
阅读:如何在Windows上使用libusb
:-在连接Microchip卡的情况下执行ZADIG安装-然后从ZADIG弹出的"列出所有设备"允许我检测并选择我的设备"CDC RS-232仿真演示"ID = 04d8:000a-然后多个驱动程序是可能的:我安装了WINUSB (microsoft)
现在设备枚举的第一阶段工作正常
其他解释都不能解决我的问题。我的解决方案是放弃某些驱动相关的函数调用,如is_kernel_driver_active
。pyusb-users最下面的解释:
…在Windows中,libusb需要附加一个驱动程序,所以没有意义卸载驱动程序的函数