⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usb_base.cpp

📁 arm_bootloader _flash writter &USB
💻 CPP
字号:
#include <stdio.h>
#include <stdlib.h>

#include "libusb/usb.h"
#include "usb_base.h"

#define BUF_SIZE			(1024*512)

unsigned char tx_buf[BUF_SIZE];


int bulk_write(usb_dev_handle *dev, void* data_ptr, int byte_to_send)
{
	int ret = usb_bulk_write(dev, ENDPOINT_OUT, (char*)data_ptr, byte_to_send, TX_TIMEOUT);
		
	if(ret != byte_to_send)
	{
		printf("byte_to_send=%d, ret=%d\n", byte_to_send, ret);
		printf("error: bulk write failed\n");
		return -1;
	}
	else
	{
		return 0;
	}
}

int bulk_read(usb_dev_handle *dev, void* data_ptr, int byte_to_read)
{
	int ret = usb_bulk_read(dev, ENDPOINT_IN, (char*)data_ptr, byte_to_read, RX_TIMEOUT);
	if(ret != byte_to_read)
	{
		printf("byte_to_read=%d, ret=%d\n", byte_to_read, ret);
		printf("error: bulk read failed\n");
		return -1;
	}
	else
	{
		return 0;
	}
}

/* --------- */

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;
}

usb_dev_handle* init_usb_if(void)
{
	usb_init();			/* initialize the library */
	usb_find_busses();	/* find all busses */
	usb_find_devices();	/* find all connected devices */

	usb_dev_handle *dev = open_dev();
	if(dev == NULL)
	{
		printf("Can't find device !!\n");
		return NULL;
	}

	// This command will send "SetConfiguration command" with a number
	// indicating which interface to use.
	if(usb_set_configuration(dev, 1) < 0)
	{
		printf("error: setting config 1 failed\n");
		usb_close(dev);
		return NULL;
	}

	// Claim to use interface 0
	if(usb_claim_interface(dev, 0) < 0)
    {
		printf("error: claiming interface 0 failed\n");
		usb_close(dev);
		return NULL;
    }
	return dev;
}

⌨️ 快捷键说明

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