libusb_test.cpp

来自「libusb win32 的VC++工程范例代码,内含libusb 函数refr」· C++ 代码 · 共 78 行

CPP
78
字号
// Libusb_test.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include "usb.h"

/* the device's vendor and product id */
#define MY_VID 0xABCD
#define MY_PID 0xEFFF

/* the device's endpoints */
#define EP_IN 0x82
#define EP_OUT 0x02

#define BUF_SIZE 512

usb_dev_handle *open_dev(void);

usb_dev_handle *open_dev(void)
{
  struct usb_bus *bus;
  struct usb_device *dev;

  for(bus = usb_get_busses(); bus; bus = bus->next) 
    {
      for(dev = bus->devices; dev; dev = dev->next) 
        {
          if(dev->descriptor.idVendor == MY_VID
             && dev->descriptor.idProduct == MY_PID)
            {
              return usb_open(dev);
            }
        }
    }
  return NULL;
}

int main(int argc, char* argv[])
{
	usb_dev_handle *dev = NULL; /* the device handle */
	int n;

	usb_init(); /* initialize the library */
	usb_find_busses(); /* find all busses */
	n = usb_find_devices(); /* find all connected devices */
	printf("%d\n", n);

	if(!(dev = open_dev())){
		printf("error: device not found!\n");
	}else{
		printf("device CCDDEEFF found :)\n");
		if(usb_set_configuration(dev, 1) < 0)
		{
			printf("error: setting config 1 failed\n");
			usb_close(dev);
			dev = NULL;
		}else{
			printf("set configuration succeeded.\n");
			if(usb_claim_interface(dev, 0) < 0)
			{
				printf("error: claiming interface 0 failed\n");
				usb_close(dev);
				dev = NULL;
			}else{
				printf("claim interface succeeded.\n");
			}
		}
	}
	
	if (dev){
		usb_release_interface(dev, 0);
		usb_close(dev);
	}

	getch();
	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?