windows平台USB驱动接口开发之libusb以及pyUSB安装使用要点

本文介绍了在Windows平台上进行USB驱动接口开发时,使用libusb和pyUSB遇到的权限问题及解决方案。针对libusb出现的权限错误,以及pyUSB的"No Backend available"错误,提出了通过Zadig.exe工具来更换驱动的方法,以WinUSB驱动解决libusb问题,使用libusb-win32驱动解决pyUSB问题。Zadig.exe提供了方便的驱动选择和安装,简化了用户操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     最近在帮助我们芯片组开发一个新的工具,最重要的是USB控制接口和python脚本解释器的嵌入,USB接口按照之前的做法是使用如下函数:


BOOL WINAPI DeviceIoControl(
  _In_        HANDLE       hDevice,
  _In_        DWORD        dwIoControlCode,
  _In_opt_    LPVOID       lpInBuffer,
  _In_        DWORD        nInBufferSize,
  _Out_opt_   LPVOID       lpOutBuffer,
  _In_        DWORD        nOutBufferSize,
  _Out_opt_   LPDWORD      lpBytesReturned,
  _Inout_opt_ LPOVERLAPPED lpOverlapped
);

当时能够使用这个接口满足我们的需求是因为如下对应关系:

lpInBuffer[0] ->bmRequest

lpInBuffer[1] ->windex

lpInBuffer[2] ->。。。(记不清楚了 ^_^)

由于芯片版本的更新导致之前做法不能实现,从而考虑使用其它方法,当前考虑两种做法:

做法1:使用libusb生成dll,再通过python 的ctypes导入调用

做法2:直接使用python 自己的库pyUSB,通过pip安装后导入调用

这两种做法初期都很顺利,一旦涉及到open device或者usb.core.find都会报错,libusb会报权限错误,而pyUSB会报<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值