21xrx.com
2024-12-22 16:18:47 Sunday
登录
文章检索 我的文章 写文章
C++ 读取 USB 简易教程
2023-07-05 03:23:39 深夜i     --     --
C++ USB 读取 简易教程 文件传输

USB(Universal Serial Bus)是一种常见的计算机接口,它可以用于连接不同种类的设备,从存储设备到输入设备,例如打印机、键盘、鼠标等等。在C++中,我们可以使用相应的库来读取USB设备。

步骤1:安装libusb库

libusb是一个跨平台的C库,用于访问USB设备。在Ubuntu中安装libusb库,我们可以使用apt-get命令,如下所示:

sudo apt-get install libusb-1.0-0-dev

步骤2:编写C++代码

下面是一个简单的C++程序,它读取USB设备的制造商和产品信息:

#include

#include

int main(void)

{

  libusb_context *ctx = NULL;

  libusb_device** devices;

  libusb_init(&ctx);

  ssize_t count = libusb_get_device_list(ctx, &devices);

  if(count < 0)

    std::cout << "Failed to get device list" << std::endl;

    return 1;

  std::cout << "Number of devices: " << count << std::endl;

  for(ssize_t i = 0; i < count; i++)

  {

    libusb_device_descriptor desc;

    int r = libusb_get_device_descriptor(devices[i], &desc);

    if (r < 0)

      std::cout << "Failed to get device descriptor" << std::endl;

      break;

    std::cout << "Device " << i << ": VendorID = " << desc.idVendor << "\tProductID = " << desc.idProduct << std::endl;

  }

  libusb_free_device_list(devices, 1);

  libusb_exit(ctx);

  return 0;

}

在这个例子中,我们首先初始化了libusb库,然后获取了当前连接到计算机的所有USB设备的列表。之后,我们使用libusb_get_device_descriptor函数读取每个设备的描述符,并输出设备的制造商ID和产品ID。

步骤3:编译和运行程序

现在我们可以将上面的代码保存到一个名为usbtest.cpp的文件中,并编译它。如果我们使用GCC编译器,我们可以使用以下命令:

g++ -o usbtest usbtest.cpp -lusb-1.0

在编译成功后,我们可以使用以下命令运行程序:

./usbtest

程序将输出连接到计算机的所有USB设备的制造商名称和产品名称,如下所示:

Device 0: VendorID = 1452   ProductID = 341

Device 1: VendorID = 8087   ProductID = 0024

Device 2: VendorID = 046d   ProductID = c52b

总结

在C++中读取USB设备可能看起来有点棘手,但使用libusb库可以简化这个过程。这个简单的例子演示了如何读取连接到计算机的USB设备的制造商名称和产品名称。我们可以在这个基础上构建更复杂的应用程序。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复