想用一下Python的usb讀寫功能,結果發現取不到USB的資訊。
代碼如下:
import usb
dev = usb.core.find(idVendor=0x04bb, idProduct=0x0c55)
print dev
>>>>None (可是明明已經插入了這個編號的USB)
PS:根據網上的一些說法,已經用Inf Wizard.exe 對這個USB設備進行過了驅動安裝。
各位大神看看有沒有碰到過類似問題?
uj5u.com熱心網友回復:
先用lsusb看看能不能列舉到設備uj5u.com熱心網友回復:
當年踩過坑的路過,反正我是不在windows下用pyusb玩了,我是搞不定了。我現在的解決方案:
1、在windows下:使用pywinusb庫,不過貌似只支持HID設備
2、在Linux(只在ubuntu和raspberry pi 的wheezy)上測驗過,使用pyusb。(記得用root)。
其中的USB部分供參考: http://git.oschina.net/jakey.chen/SlaveDebugTool
uj5u.com熱心網友回復:
也不行,列舉不到任何設備
uj5u.com熱心網友回復:
這。。。對于PYTHON來說不是很尷尬??。。。
uj5u.com熱心網友回復:
用Pyserial這個,一直在更新的uj5u.com熱心網友回復:
這是我復制的pyusb代碼,看看對你有用沒有import usb.core
import usb.util
import sys
dev = usb.core.find(idVendor= 0x5345, idProduct= 0x1234)
cfg = dev.get_active_configuration()
intf = cfg[(0,0)]
ep = usb.util.find_descriptor(
intf,
# match the first OUT endpoint
custom_match = \
lambda e: \
usb.util.endpoint_direction(e.bEndpointAddress) == \
usb.util.ENDPOINT_OUT
)
print 'The length of data(write USB) is:', ep.write('WANTFORGETTXT')
ep_read = usb.util.find_descriptor(
intf,
# match the first IN endpoint
custom_match = \
lambda e: \
usb.util.endpoint_direction(e.bEndpointAddress) == \
usb.util.ENDPOINT_IN
)
data_len = ep_read.read(4)
print 'Get USB data:',data_len
len = (data_len[3] << 24) + (data_len[2] << 16) + (data_len[1] << 8) + data_len[0]
print 'data len is:',len
dev.reset()
uj5u.com熱心網友回復:
你好,謝謝回復。
‘這個代碼也不行,
dev = usb.core.find(idVendor= 0x5345, idProduct= 0x1234)
用上面的介面回傳出來的是個NULL,
usb.core.findall也沒有找到任何設備
uj5u.com熱心網友回復:
這個不是用來開發串口程式的?我都用這個開發rs232程式。。。
uj5u.com熱心網友回復:
再頂一頂~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~uj5u.com熱心網友回復:
Ubuntu先 安裝libusbapt-get install libusb-dev
apt-get install libusb-1.0-0-dev
再安裝: pip install pyusb
測驗代碼:
import usb.core
usb.core.show_devices()
成功輸出:

另一測驗結果:
import usb
dev = usb.core.find(idVendor= 0x05fe, idProduct= 0x1010)
print dev
vuj5u.com熱心網友回復:
windows 下面需要 filter install 我也會小白 莫名自瞄剛開始沒有,后來用
然后>>> import usb.core
>>> usb.core.show_devices()
能把添加進去的驅動列印出來,但是別的findall 那個還是全空
uj5u.com熱心網友回復:
windows下需要以管理員身份運行,對指定設備重裝驅動
uj5u.com熱心網友回復:
你查看下你的usb設備上是不是有相應的開關,如果輸入 lsusb 指令沒有內容顯示,可能是相應的usb設備沒有打開(我的就是),或者說你的usb設備或者介面壞了uj5u.com熱心網友回復:
接上一條,或者可以查看idVendor和idProduct是否正確轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/75162.html
上一篇:設計一個vi,求大神指點
