libusb windows下判断USB的插入跟拔出
1. 要判断插入,目前的方法是不停的调用函数去打开一个设备(打开时指定PID 跟VID)
2. 从打开的设备句柄跟拿到设备的地址。因为一台电脑上分配给USB的设备地址是唯一的。下面函数可以拿到设备地址:
//拿到USB的设备地址,并记录下来
device = libusb_get_device(dev_handle);
Device_Addr = libusb_get_device_address(device);
3. 再开个定时器,不停的读取系统中的所有设备,并读出设备地址。如果打开的设备的这地址,也就是Device_Addr从列表上找不到了。证明设备拔出了。
4. 代码实现
libusb_device **devs;
bool isFindDevice = false;
uint8_t index=0;
for (; index < cnt; index++)
{
if(Device_Addr == libusb_get_device_address(devs[index]))
{
isFindDevice = true;
break;
}
}
//打不到对应的设备地址
if(isFindDevice == false)
{
isDeviceOpen = false;
}
libusb_free_device_list(devs, 1);
由于百度网盘会更新,可以进群看QQ公告.所以资料都会在同一个地址分享.
群号:339420387