一、libusb简介 libusb库提供的api接口供应用层调用,可以对系统中的usb设备操作,如reset一个usb设备,或者获取其具体信息,如configuration、interface及settings等。libusb遵循posix协议,可以跨平台使用,Linux下默认预装libusb1.0版本,开发者可以直接使用,只是在编译时需要链接lib库。
二、libusb的api介绍
1. libusb_init和libusb_exit及struct libusb_context
代码中调用libusb接口函数需要先建立上下文环境,其中结构体struct libusb_context代表一段libusb的会话,官方文档中有对这个结构的说明[libusb]。libusb_init()表示开启会话,libusb_exit()表示结束会话。通俗的理解就是struct libusb_context* ctx中的ctx代表一把钥匙,libusb_init(&ctx)表示开启,libusb_exit(null)表示锁上。
2. libusb中几个重要的数据结构体和接口函数
libusb_device **list;这个结构体用来列举当前系统中的usb设备。
libusb_device_handle * handle;这个结构体是用来处理具体list中的usb设备的。
上面两个结构体的使用方式:
ssize_t num_devs = libusb_get_device_list(ctx, &list);根据ctx获取系统中的usb设备,返回设备个数,list指向链表头。
libusb_device *dev = list[i];
libusb_open(dev,&handle);
获取第i个设备并使用handle进行处理。
struct libusb_device_descri
1980



被折叠的 条评论
为什么被折叠?



