亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? usb_inc.h

?? PDIUSBD12與51接口的固件KEIL6.23調試通過
?? H
?? 第 1 頁 / 共 2 頁
字號:
#include <stdio.h>
#include <string.h>
#include <At89x52.h>

//*************************************************************************
// basic #defines
//*************************************************************************

#define MAX_ENDPOINTS      (unsigned char)0x3


#define EP0_PACKET_SIZE    16


#define EP1_PACKET_SIZE    4


#define EP2_PACKET_SIZE    64


#define USB_IDLE           0
#define USB_TRANSMIT       1
#define USB_RECEIVE        2

#define USB_CLASS_CODE_TEST_CLASS_DEVICE                    0xdc
#define USB_SUBCLASS_CODE_TEST_CLASS_D12                    0xA0
#define USB_PROTOCOL_CODE_TEST_CLASS_D12                    0xB0

   //*************************************************************************
   // masks
   //*************************************************************************


#define USB_RECIPIENT            (unsigned char)0x1F
#define USB_RECIPIENT_DEVICE     (unsigned char)0x00
#define USB_RECIPIENT_INTERFACE  (unsigned char)0x01
#define USB_RECIPIENT_ENDPOINT   (unsigned char)0x02

#define USB_REQUEST_TYPE_MASK    (unsigned char)0x60
#define USB_STANDARD_REQUEST     (unsigned char)0x00
//#define USB_CLASS_REQUEST        (unsigned char)0x20
#define USB_VENDOR_REQUEST       (unsigned char)0x40

#define USB_REQUEST_MASK         (unsigned char)0x0F

#define DEVICE_ADDRESS_MASK      0x7F

/*
   //*************************************************************************
   // macros
   //*************************************************************************
*/
#define SWAP(x)   ((((x) & 0xFF) << 8) | (((x) >> 8) & 0xFF))

#define MSB(x)    (((x) >> 8) & 0xFF)
#define LSB(x)    ((x) & 0xFF)

#define FALSE   0
#define TRUE    (!FALSE)

#define DISABLE		EA=0
#define ENABLE		EA=1
/*
   //*************************************************************************
   // basic typedefs
   //*************************************************************************
*/
typedef unsigned char   UCHAR;
typedef unsigned short  USHORT;
typedef unsigned long   ULONG;
typedef unsigned char   BOOL;

/*
   //*************************************************************************
   // structure and union definitions
   //*************************************************************************
*/
typedef union _epp_flags
{
	struct _flags
	{
		unsigned char timer               	: 1;
		unsigned char bus_reset           	: 1;
		unsigned char suspend             	: 1;
		unsigned char setup_packet  	  	: 1;
		unsigned char remote_wakeup		   	: 1;
		unsigned char in_isr		      	: 1;
		unsigned char control_state			: 2;

		unsigned char configuration			: 1;
		unsigned char verbose				: 1;
		unsigned char ep1_rxdone			: 1;
		unsigned char setup_dma				: 2; // V2.3
		unsigned char dma_state      		: 2;
		unsigned char power_down			: 1; // Smart Board
	} bits;
	unsigned short value;
} EPPFLAGS;

typedef struct _device_request
{
	unsigned char bmRequestType;
	unsigned char bRequest;
	unsigned short wValue;
	unsigned short wIndex;
	unsigned short wLength;
} DEVICE_REQUEST;

typedef struct _IO_REQUEST {
	unsigned short	uAddressL;
	unsigned char	bAddressH;
	unsigned short	uSize;
	unsigned char	bCommand;
} IO_REQUEST, *PIO_REQUEST;

#define MAX_CONTROLDATA_SIZE	8

typedef struct _control_xfer
{
	DEVICE_REQUEST DeviceRequest;
	unsigned short wLength;
	unsigned short wCount;
	unsigned char * pData;
	unsigned char dataBuffer[MAX_CONTROLDATA_SIZE];
} CONTROL_XFER;

/*
   //*************************************************************************
   // USB utility functions
   //*************************************************************************
*/
//extern void D12_SetMode(unsigned char bConfig, unsigned char bClkDiv);
//extern void D12_SetDMA(unsigned char bMode);
//extern unsigned char D12_GetDMA(void);
//extern unsigned char D12_ReadEndpointStatus(unsigned char bEndp);
//extern void D12_SetEndpointStatus(unsigned char bEndp, unsigned char bStalled);
//extern void single_transmit(unsigned char * pData, unsigned char len);
//extern void stall_ep0(void);
//void D12_SendResume(void);

//#define IN_TOKEN_DMA 	1
//#define OUT_TOKEN_DMA 	0

#define DMA_BUFFER_SIZE		256

#define DMA_IDLE	0
#define DMA_RUNNING	1
#define DMA_PENDING	2

#define SETUP_DMA_REQUEST 		0x0471
#define GET_FIRMWARE_VERSION    0x0472
//#define GET_SET_TWAIN_REQUEST   0x0473
#define GET_BUFFER_SIZE		    0x0474
/*
typedef struct _TWAIN_FILEINFO {
	unsigned char	bPage;    // bPage bit 7 - 5 map to uSize bit 18 - 16
	unsigned char	uSizeH;    // uSize bit 15 - 8
	unsigned char	uSizeL;    // uSize bit 7 - 0
} TWAIN_FILEINFO, *PTWAIN_FILEINFO;
*/

//USB100.C-宏定義
//===============================================================
//===============================================================
#define MAXIMUM_USB_STRING_LENGTH 255

// values for the bits returned by the USB GET_STATUS command
#define USB_GETSTATUS_SELF_POWERED                0x01
#define USB_GETSTATUS_REMOTE_WAKEUP_ENABLED       0x02


#define USB_DEVICE_DESCRIPTOR_TYPE                0x01
#define USB_CONFIGURATION_DESCRIPTOR_TYPE         0x02
#define USB_STRING_DESCRIPTOR_TYPE                0x03
#define USB_INTERFACE_DESCRIPTOR_TYPE             0x04
#define USB_ENDPOINT_DESCRIPTOR_TYPE              0x05
#define USB_POWER_DESCRIPTOR_TYPE                 0x06

#define USB_DESCRIPTOR_MAKE_TYPE_AND_INDEX(d, i) ((USHORT)((USHORT)d<<8 | i))

//
// Values for bmAttributes field of an
// endpoint descriptor
//

#define USB_ENDPOINT_TYPE_MASK                    0x03

#define USB_ENDPOINT_TYPE_CONTROL                 0x00
#define USB_ENDPOINT_TYPE_ISOCHRONOUS             0x01
#define USB_ENDPOINT_TYPE_BULK                    0x02
#define USB_ENDPOINT_TYPE_INTERRUPT               0x03


//
// definitions for bits in the bmAttributes field of a
// configuration descriptor.
//
#define USB_CONFIG_POWERED_MASK                   0xc0

#define USB_CONFIG_BUS_POWERED                    0x80
#define USB_CONFIG_SELF_POWERED                   0x40
#define USB_CONFIG_REMOTE_WAKEUP                  0x20

//
// Endpoint direction bit, stored in address
//

#define USB_ENDPOINT_DIRECTION_MASK               0x80

// test direction bit in the bEndpointAddress field of
// an endpoint descriptor.
#define USB_ENDPOINT_DIRECTION_OUT(addr)          (!((addr) & USB_ENDPOINT_DIRECTION_MASK))
#define USB_ENDPOINT_DIRECTION_IN(addr)           ((addr) & USB_ENDPOINT_DIRECTION_MASK)

//
// USB defined request codes
// see chapter 9 of the USB 1.0 specifcation for
// more information.
//

// These are the correct values based on the USB 1.0
// specification

#define USB_REQUEST_GET_STATUS                    0x00
#define USB_REQUEST_CLEAR_FEATURE                 0x01

#define USB_REQUEST_SET_FEATURE                   0x03

#define USB_REQUEST_SET_ADDRESS                   0x05
#define USB_REQUEST_GET_DESCRIPTOR                0x06
#define USB_REQUEST_SET_DESCRIPTOR                0x07
#define USB_REQUEST_GET_CONFIGURATION             0x08
#define USB_REQUEST_SET_CONFIGURATION             0x09
#define USB_REQUEST_GET_INTERFACE                 0x0A
#define USB_REQUEST_SET_INTERFACE                 0x0B
#define USB_REQUEST_SYNC_FRAME                    0x0C


//
// defined USB device classes
//


#define USB_DEVICE_CLASS_RESERVED           0x00
#define USB_DEVICE_CLASS_AUDIO              0x01
#define USB_DEVICE_CLASS_COMMUNICATIONS     0x02
#define USB_DEVICE_CLASS_HUMAN_INTERFACE    0x03
#define USB_DEVICE_CLASS_MONITOR            0x04
#define USB_DEVICE_CLASS_PHYSICAL_INTERFACE 0x05
#define USB_DEVICE_CLASS_POWER              0x06
#define USB_DEVICE_CLASS_PRINTER            0x07
#define USB_DEVICE_CLASS_STORAGE            0x08
#define USB_DEVICE_CLASS_HUB                0x09
#define USB_DEVICE_CLASS_VENDOR_SPECIFIC    0xFF

//
// USB defined Feature selectors
//

#define USB_FEATURE_ENDPOINT_STALL          0x0000
#define USB_FEATURE_REMOTE_WAKEUP           0x0001
#define USB_FEATURE_POWER_D0                0x0002
#define USB_FEATURE_POWER_D1                0x0003
#define USB_FEATURE_POWER_D2                0x0004
#define USB_FEATURE_POWER_D3                0x0005

typedef struct _USB_DEVICE_DESCRIPTOR {
    UCHAR bLength;
    UCHAR bDescriptorType;
    USHORT bcdUSB;
    UCHAR bDeviceClass;
    UCHAR bDeviceSubClass;
    UCHAR bDeviceProtocol;
    UCHAR bMaxPacketSize0;
    USHORT idVendor;
    USHORT idProduct;
    USHORT bcdDevice;
    UCHAR iManufacturer;
    UCHAR iProduct;
    UCHAR iSerialNumber;
    UCHAR bNumConfigurations;
} USB_DEVICE_DESCRIPTOR, *PUSB_DEVICE_DESCRIPTOR;

typedef struct _USB_ENDPOINT_DESCRIPTOR {
    UCHAR bLength;
    UCHAR bDescriptorType;
    UCHAR bEndpointAddress;
    UCHAR bmAttributes;
    USHORT wMaxPacketSize;
    UCHAR bInterval;
} USB_ENDPOINT_DESCRIPTOR, *PUSB_ENDPOINT_DESCRIPTOR;

//
// values for bmAttributes Field in
// USB_CONFIGURATION_DESCRIPTOR
//

#define BUS_POWERED                           0x80
#define SELF_POWERED                          0x40
#define REMOTE_WAKEUP                         0x20

typedef struct _USB_CONFIGURATION_DESCRIPTOR {
    UCHAR bLength;
    UCHAR bDescriptorType;
    USHORT wTotalLength;
    UCHAR bNumInterfaces;
    UCHAR bConfigurationValue;
    UCHAR iConfiguration;
    UCHAR bmAttributes;
    UCHAR MaxPower;
} USB_CONFIGURATION_DESCRIPTOR, *PUSB_CONFIGURATION_DESCRIPTOR;

typedef struct _USB_INTERFACE_DESCRIPTOR {
    UCHAR bLength;
    UCHAR bDescriptorType;
    UCHAR bInterfaceNumber;
    UCHAR bAlternateSetting;
    UCHAR bNumEndpoints;
    UCHAR bInterfaceClass;
    UCHAR bInterfaceSubClass;
    UCHAR bInterfaceProtocol;
    UCHAR iInterface;
} USB_INTERFACE_DESCRIPTOR, *PUSB_INTERFACE_DESCRIPTOR;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品亚洲乱码伦伦中文| 国产一区二区伦理| 久久精品99国产精品| 高清在线不卡av| 日韩精品在线网站| 亚洲制服丝袜一区| 成人av在线资源网| 久久亚洲综合色| 日韩成人午夜精品| 在线观看一区不卡| 亚洲同性gay激情无套| 国产剧情一区在线| 日韩欧美在线1卡| 亚洲国产综合人成综合网站| 97久久人人超碰| 中文字幕第一区综合| 韩国av一区二区三区| 欧美成人欧美edvon| 日韩精品午夜视频| 欧美美女一区二区三区| 亚洲国产裸拍裸体视频在线观看乱了| 波多野结衣一区二区三区| www久久精品| 免费看日韩a级影片| 欧美挠脚心视频网站| 亚洲五码中文字幕| 欧美日韩一区二区在线视频| 一区二区在线电影| 色婷婷久久久亚洲一区二区三区| 国产精品久久久久久久久久免费看| 国产高清在线观看免费不卡| 国产无人区一区二区三区| 精品一区二区在线视频| 久久久噜噜噜久久中文字幕色伊伊| 奇米精品一区二区三区四区| 日韩色视频在线观看| 国内精品免费在线观看| 精品久久久久久久久久久久久久久| 蜜桃av一区二区在线观看| 91精品国产综合久久婷婷香蕉| 成人在线综合网| 国产农村妇女精品| youjizz国产精品| 亚洲女人的天堂| 欧美久久久久久蜜桃| 奇米综合一区二区三区精品视频| 日韩久久免费av| 国产激情精品久久久第一区二区 | 欧美一区二区三区男人的天堂| 视频一区视频二区中文字幕| 欧美电影免费观看高清完整版在 | 色综合久久天天综合网| 国产精品毛片高清在线完整版| av网站免费线看精品| 一区二区三区四区在线播放 | 欧美视频一区二区在线观看| 美女一区二区视频| 中文字幕av不卡| 色一情一乱一乱一91av| 亚洲国产精品一区二区久久恐怖片| 91精品国产综合久久香蕉麻豆 | 国产精品素人一区二区| 欧美亚洲一区三区| 91同城在线观看| 亚洲一区二区三区精品在线| 日韩精品在线一区| 色哦色哦哦色天天综合| 蜜桃免费网站一区二区三区| 亚洲欧洲精品天堂一级| 日韩免费电影网站| 99久久99久久精品国产片果冻| 人人狠狠综合久久亚洲| 亚洲丝袜另类动漫二区| 精品国产免费一区二区三区四区 | 成人h动漫精品一区二区| 天堂蜜桃91精品| 国产精品视频麻豆| 91精品国产综合久久福利| 丁香六月综合激情| 免费久久精品视频| 亚洲精品美腿丝袜| 国产欧美一区二区三区鸳鸯浴| 欧美人与z0zoxxxx视频| 97久久人人超碰| 国产乱人伦偷精品视频不卡| 午夜精品福利一区二区三区av| 国产精品福利在线播放| 久久影院电视剧免费观看| 欧美精品18+| 欧洲人成人精品| 99re热视频精品| 成人av网站在线观看| 国产在线麻豆精品观看| 日本视频一区二区三区| 亚洲福中文字幕伊人影院| 国产精品传媒视频| 久久精品网站免费观看| 亚洲精品一区二区三区影院| 欧美老肥妇做.爰bbww视频| 91热门视频在线观看| 成人av资源在线| 成人性视频免费网站| 国产在线麻豆精品观看| 激情都市一区二区| 精品综合久久久久久8888| 蜜臀av一区二区在线免费观看| 五月激情六月综合| 五月开心婷婷久久| 亚洲国产sm捆绑调教视频| 一区二区三区在线影院| 亚洲中国最大av网站| 亚洲综合丝袜美腿| 亚洲国产毛片aaaaa无费看| 亚洲综合激情另类小说区| 亚洲综合成人在线| 亚洲国产aⅴ成人精品无吗| 亚洲国产美女搞黄色| 午夜不卡av免费| 轻轻草成人在线| 国产最新精品精品你懂的| 国产精品一区二区在线看| 成人免费高清视频| 91麻豆蜜桃一区二区三区| 色播五月激情综合网| 欧美日韩你懂得| 91精品国产欧美日韩| 久久免费精品国产久精品久久久久| 337p日本欧洲亚洲大胆精品| 国产欧美日韩综合| 亚洲人成小说网站色在线 | 国产日韩欧美综合在线| 国产精品视频一二| 一区二区激情小说| 日韩高清在线观看| 国产精品一区二区在线看| 91在线国产观看| 在线播放91灌醉迷j高跟美女| 欧美一区永久视频免费观看| 久久久高清一区二区三区| 成人欧美一区二区三区视频网页 | 亚洲女人****多毛耸耸8| 香蕉影视欧美成人| 国内精品不卡在线| 色综合久久中文字幕综合网| 制服丝袜日韩国产| 国产精品乱人伦一区二区| 亚洲在线观看免费视频| 国产在线播放一区三区四| 色网站国产精品| 欧美成人精品高清在线播放| 亚洲欧洲精品成人久久奇米网| 日韩国产高清影视| 成人开心网精品视频| 欧美一区二区三区在线电影| 亚洲欧洲日韩在线| 美女高潮久久久| 91久久人澡人人添人人爽欧美| 欧美成人在线直播| 亚洲宅男天堂在线观看无病毒| 国产一区二区三区精品欧美日韩一区二区三区 | 91精品国产91久久综合桃花| 国产精品视频一二三| 日本成人在线一区| 色婷婷狠狠综合| 久久久久久99久久久精品网站| 亚洲国产精品一区二区尤物区| 国产精品99久久久久久久vr| 欧美精品黑人性xxxx| 亚洲精品国产无套在线观| 激情五月激情综合网| 欧美日韩视频在线一区二区| 中文字幕日本乱码精品影院| 久久国内精品自在自线400部| 91极品美女在线| 亚洲国产高清不卡| 国产一区二区0| 欧美一区二区三区播放老司机| 一区二区免费看| 99r国产精品| 国产精品午夜在线观看| 精品一区二区日韩| 777a∨成人精品桃花网| 亚洲超碰97人人做人人爱| 色哟哟一区二区| 亚洲人成影院在线观看| 99热精品一区二区| 日本一区二区综合亚洲| 国产一区二区三区在线观看免费视频 | 欧美日韩免费观看一区二区三区| 国产精品久久久久久久久免费樱桃| 韩国午夜理伦三级不卡影院| 日韩一级欧美一级| 日韩不卡在线观看日韩不卡视频| 欧美日韩精品一区二区天天拍小说| 一区二区三区高清在线| 色吊一区二区三区| 亚洲国产综合视频在线观看| 欧美午夜精品一区二区蜜桃 | 亚洲精品国产第一综合99久久| 99精品欧美一区|