谁用过libusb-1.0.9这个库啊~~请教问题啊

abc515952853 2012-10-25 01:55:31
#include <stdio.h>
#include <libusb.h>

static void printdev(libusb_device *dev)

{
struct libusb_device_descriptor desc;
struct libusb_config_descriptor *config;
libusb_device_handle *dev_handle;
int fd;
char data[4]={'1','2','3','4'};
int actual;

int r = libusb_get_device_descriptor(dev, &desc);
if (r < 0)
{
printf("获取设备描述符失败!\n");
return;
}
printf("产品ID:%d\n",desc.idVendor);
printf("供应商ID:%d\n",desc.idProduct);

libusb_get_config_descriptor(dev,0,&config);

printf("该设备的端口地址:%d\n",config->interface->altsetting->endpoint->bEndpointAddress);
printf("该设备的接口值:%d\n",config->interface->altsetting->bInterfaceNumber);


fd = libusb_open(dev,&dev_handle);
//printf("dev_handle:%d\n",dev_handle);
if(fd < 0)
{
printf("%d,can't open the device by device mode !\n",fd);
}
else
{
printf("open success!\n");
}

if(libusb_kernel_driver_active(dev_handle, 0) == 1)
{
printf("有驱动!\n");
}
else
{
printf("无驱动!\n");

}

r = libusb_claim_interface(dev_handle,0);
printf("%d\n",r);
if(r < 0)
{
printf("Claim Failed!\n");
return ;
}
printf("Claim Success!\n");

r = libusb_bulk_transfer(dev_handle, (129| LIBUSB_ENDPOINT_OUT),data ,4,&actual, 0);
if(r == 0 && actual == 4)
printf("write Successful!\n");
else
printf("write Error!\n");
printf("------------------------------------------\n");
}

int main(void)

{
libusb_device **devs;
libusb_context *ctx =NULL;
int r;
ssize_t cnt;
ssize_t i;

r = libusb_init(&ctx); //初始化,并且建立一个会话
if(r < 0) {
printf("初始化失败:%d\n",r);
return 1;
}
libusb_set_debug(ctx, 3); //设置信息等级三级

cnt = libusb_get_device_list(ctx, &devs); //获取的设备列表
if(cnt < 0)
{
printf("获取设备列表失败!\n");
return -1;
}
printf("%d个设备在列表中!\n",cnt);

for(i = 0; i<cnt ;i++)
{
printdev(devs[i]);
}
libusb_free_device_list(devs, 1);
libusb_exit(ctx);
getch();
return 0;
}


那个申请接口的时候总是返回错误,错误原因是资源繁忙啊。。。我就插着个U盘。其他什么都没做啊 ,这是什么情况啊。
...全文
269 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
shen_wei 2012-10-25
  • 打赏
  • 举报
回复
你也可以使用 WMI 用这个来判断电脑硬件。。。

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧