python libusb多线程_Python libusb give me OSError:异常:访问冲突读取

在尝试使用libusb库进行Python多线程USB设备读取时遇到OSError:异常:访问冲突读取。问题出现在`handle.bulkRead()`函数中,可能由于并发访问导致。建议检查多线程同步机制,如使用锁来防止资源竞争。
摘要由CSDN通过智能技术生成

我一直在尝试将usb输入与libusb交叉。我可以成功检测并连接到设备,但无法读取设备。在

我有一个监控设备,我可以很好地使用它自己的软件。但我需要将数据传输到python进行进一步分析。在import usb.core

dev = usb.core.find(idVendor=0x09da, idProduct=0xc10a)

import usb1

with usb1.USBContext() as context:

handle = context.openByVendorIDAndProductID(0x09DA,0xC10A,skip_on_error=True)

Ep = dev[0][(0,0)][0]

while True:

data = handle.bulkRead(0x5, 8)

OSError Traceback(最近一次调用)

在里面

4 Ep=偏差[0][(0,0)][0]

5如果为真:

----&6;gt数据=手柄.散装(0x5,8)

c:\users\admin\appdata\local\programs\python 36\lib\site packages\usb1_yuinit_uU.py in bulkRead(self、endpoint、length、timeout)

1567 data,data_buffer=create_binary_buffer(长度)

1568试试:

->1569 transferred=self.\u bulkTransfer(端点、数据、长度、超时)

1570除usberrorrortim

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当你看到 "debug [libusb_get_device_list] Segmentation fault" 这样的错误信息时,这通常意味着在使用libusb库进行USB设备操作时,程序试图访问了未初始化的内存区域或者越界了。libusb是一个跨平台的USB库,用于访问和控制USB设备。 - libusb_get_device_list函数用于获取系统的USB设备列表,如果调用这个函数后出现Segmentation fault(段错误),可能是以下几个原因: 1. **库初始化不完整**:确保在使用libusb之前已经正确初始化了库,可能漏掉了`libusb_init`或`libusb_exit`等关键步骤。 2. **参数错误**:传给`libusb_get_device_list`的指针无效,或者设备描述符数组没有正确分配内存。 3. **资源不足**:系统中USB驱动程序没有正确加载,或者权限不足,无法访问USB设备。 4. **回调函数问题**:如果你在回调函数中引用了未初始化的变量,也可能会导致Segmentation fault。 为了解决这个问题,你可以按照以下步骤检查: - **检查代码**:确保所有涉及libusb的内存分配、初始化和释放操作都正确执行。 - **调试**:添加日志或断点来跟踪函数调用,定位到引发错误的具体行。 - **更新库或驱动**:确保使用的libusb版本是最新的,并检查是否有与你的操作系统兼容的驱动程序更新。 - **权限问题**:确认你的用户账户是否有足够的权限访问USB设备。 如果你需要进一步的帮助,提供具体的代码片段和错误堆栈信息会更有助于诊断。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值