python读写usb端口
- 系统:win10 64位
- python版本:3.6.5
- usb设备:stm32f411
stm32f411模拟了一个简单的hid设备,有一个in端口和一个out端口,当out端口收到数据后,再把收到的数据写回到in端口,这样就可以做一个环回测试
代码:
import usb.core
import usb.util
import sys
import threading
import time
vid=0x0483
pid=0x5750
dev = usb.core.find(idvendor=vid, idproduct=pid)
cfg = dev.get_active_configuration()
intf = cfg[(0,0)]
print(intf)
write_ep = usb.util.find_descriptor(
intf,
custom_match = \
lambda e: \
usb.util.endpoint_direction(e.bendpointaddress) == \
usb.util.endpoint_out
)
read_ep = usb.util.find_descriptor(
intf,
custom_match = \
lambda e: \
usb.util.endpoint_direction(e.bendpointaddress) == \
usb.util.endpoint_in
)
def write_endpoint_thread():
while true:
try:
write_ep.write("0123456789")
except:
print("write error")
def read_endpoint_thread():
while true:
try:
data = read_ep.read(64)
size = len(data)
if size > 0:
print("recv %d bytes:"%size,end='')
for i in range(0,size):
print ("%c"%data[i],end='')
print ('')
except:
print("no data")
def main():
r = threading.thread(target=read_endpoint_thread)
w = threading.thread(target=write_endpoint_thread)
r.start()
w.start()
r.join()
w.join()
dev.reset()
if __name__ == '__main__':
main()
输出结果

总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论