首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用地址声明USB接口

如何使用地址声明USB接口
EN

Stack Overflow用户
提问于 2022-02-07 22:20:02
回答 1查看 171关注 0票数 2

我使用pyusb库连接到两个相同的麦克风阵列,但是它们有相同的idVendor和idProduct编号。区分这两种设备的唯一方法是地址,但我不知道如何使用地址进行连接。

有没有办法用设备的地址而不是idVendor或idProduct来连接usb?

这是代码

代码语言:javascript
复制
import usb.core
import usb.util
import time
from tuning import Tuning
import dfu

device_list = dfu.DFU.find()
print(device_list)

dev1 = usb.core.find(idVendor=0x2886, idProduct=0x0018) #address = 0x013
dev2 = usb.core.find(idVendor=0x2886, idProduct=0x0018) #address = 0x012

if dev1:
    Mic_tuning1 = Tuning(dev1)
    Mic_tuning2 = Tuning(dev2)

    print(Mic_tuning1.direction)
    print(Mic_tuning2.direction)

    while True:
        try:
            print(Mic_tuning1.direction)
            print(Mic_tuning2.direction)
            time.sleep(1)
        except KeyboardInterrupt:
            break
        
else: print('failed to find microphone')
EN

回答 1

Stack Overflow用户

发布于 2022-08-26 23:36:27

免责声明:我不熟悉pyusb,但我对libusb有点熟悉,这是使用的底层库。

您调用以获取“dev1”和“dev2”的函数很可能是在幕后调用libusb_open_device_with_vid_pid()

https://libusb.sourceforge.io/api-1.0/group__libusb__dev.html#ga10d67e6f1e32d17c33d93ae04617392e

为了方便起见,添加了这个libusb方法,因为访问设备的通常方法是迭代设备列表以找到要连接的设备。在libusb中,这是通过libusb_get_device_list()完成的。您将遍历设备列表,在每个设备上调用libusb_get_device_address(),直到找到具有所需地址的设备:

https://libusb.sourceforge.io/api-1.0/group__libusb__dev.html#gac0fe4b65914c5ed036e6cbec61cb0b97

关于pyusb的文档是否提到类似于'get_device_list()‘方法的东西?这就是你所需要的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71026150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档