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

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

?? usbvariables.h

?? MSP 430 計算機USB接口之間的通訊代碼
?? H
字號:
//這里定義了USB通信程序用到的所有常量數據


/******************數據類型宏定義******************/
/*
typedef unsigned char unsigned char;
typedef unsigned int unsigned int;*/
/*************數據移位的宏定義**************/
#define BIT(x)	(1 << (x))
/******************USB常量******************/
#define WR_N    0       //寫使能,P2.0
#define RD_N    1       //讀使能,P2.1
#define C_D     2       //命令數據位(1:命令,0:數據),P2.2
#define D12_CS  3       //USB片選位,P2.3   
#define D12_INT 5       //USB中斷,P2.5
#define USBINT_IE     P1IE
#define USBINT_IES    P1IES
#define USBINT_IFG    P1IFG
#define USBINT_SEL    P1SEL
#define USBINT_DDR    P1DIR
#define USBCTL_DDR    P2DIR
#define USBCTL_PORT   P2OUT
#define USBDAT_DDR    P5DIR
#define USBDAT_PORT   P5OUT
#define USBDAT_PIN    P5IN

#define CMD     0x01
#define DAT     0x00

#define UEN_GINT() _DINT()   //打開全局中斷
#define EN_GINT()  _EINT()   //關閉全局中斷

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

#define MAX_ENDPOINTS      (unsigned char)0x3

#define NOLAZYCLOCK			0x02
#define CLOCKRUNNING                    0x04
#define INTERRUPTMODE		        0x08
#define SOFTCONNECT			0x10
#define ENDP_NONISO			0x00
#define ENDP_ISOOUT			0x40
#define ENDP_ISOIN			0x80
#define ENDP_ISOIO			0xC0

#define CLOCK_12M			0x03
#define CLOCK_4M			0x0b
#define SETTOONE                        0x40
#define SOFONLY				0x80

#define NORMALPLUSSOF		        0x20
#define ENDP4INTENABLE		        0x40
#define ENDP5INTENABLE		        0x80

#define INT_ENDP0OUT		        0x01
#define INT_ENDP0IN			0x02
#define INT_ENDP1OUT	                0x04
#define INT_ENDP1IN			0x08
#define INT_ENDP2OUT		        0x10
#define INT_ENDP2IN			0x20
#define INT_BUSRESET		        0x40
#define INT_SUSPENDCHANGE	        0x80

#define SETUPPACKET			0x20
#define BUFFER0FULL			0x20
#define BUFFER1FULL			0x40

#define FULLEMPTY			0x01
#define STALL				0x02

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

#define MAX_CTLDAT_SIZE	    8

#define USB_ENDPOINT_DIRECTION_MASK     0x80
#define USB_REQUEST_MASK         (unsigned char)0x0F
#define USB_REQUEST_TYPE_MASK    (unsigned char)0x60
#define USB_STANDARD_REQUEST     (unsigned char)0x00

#define DEVICE_ADDRESS_MASK      0x7F

#define USB_FEATURE_ENDPOINT_STALL          (unsigned int)0x0000
#define USB_FEATURE_REMOTE_WAKEUP           (unsigned int)0x0001

#define EP0_PACKET_SIZE    16
#define EP1_PACKET_SIZE    16
#define EP2_PACKET_SIZE    64

#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_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_CLASS_CODE_TEST_CLASS_DEVICE                    0xdc
/*****   D12 配置描述符長度  ******/
#define CONFIG_DESCRIPTOR_LENGTH    sizeof(USB_CONFIGURATION_DESCRIPTOR) \
									+ sizeof(USB_INTERFACE_DESCRIPTOR) \
									+ (NUM_ENDPOINTS * sizeof(USB_ENDPOINT_DESCRIPTOR))
/*****   D12 接口描述符中: 除端點0的端點索引數目  ******/
#define NUM_ENDPOINTS	4
/* 設備描述符: 測試設備類型 */
#define USB_CLASS_CODE_TEST_CLASS_DEVICE                    0xdc

/* 接口描述符: 子類代碼 */
#define USB_SUBCLASS_CODE_TEST_CLASS_D12                    0xA0

/* 接口描述符: 協議代碼 */
#define USB_PROTOCOL_CODE_TEST_CLASS_D12                    0xB0
/*******************************************************
	      USB 端點描述符結構體: 端點屬性
********************************************************/
#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

//這里定義了USB通信程序用到的所有全局變量
typedef struct flags
{
	unsigned char bus_reset;	        //總線復位標志
	unsigned char suspend;	            //掛起改變標志
	unsigned char setup_packet;	        //收到SETUP包
	unsigned char remote_wakeup;
	unsigned char in_isr;	            //USB中斷服務標志
	unsigned char control_state;	    //控制端點處理標志
									    //0: IDLE	   空閑狀態
										//1: TRANSMIT  數據發送狀態
										//2: RECEIVE   數據接收狀態
 	unsigned char configuration;	    //配置標志(0: 未配置; 1: 已經配置)		
	unsigned char ep1_rxdone;	        //端點 1 收到數據標志
	unsigned char ep2_rxdone;	        //端點 2 收到數據標志
	unsigned char ep2buf_full;	        //端點 2 接收雙緩沖區滿標志
} All_Usb_Flags;
All_Usb_Flags USB_FLAG={0,0,0,0,0,0,0,0,0,0};

typedef struct request
{
	unsigned char bmRequestType;
	unsigned char bRequest;
	unsigned int wValue;
	unsigned int wIndex;
	unsigned int wLength;
}DEVICE_REQUEST;

typedef struct xfer
{
	DEVICE_REQUEST DeviceRequest;
	unsigned int wLength;
	unsigned int wCount;
	unsigned char * pData;
	unsigned char dataBuffer[MAX_CTLDAT_SIZE];
}CONTROL_XFER;

typedef struct _USB_DEVICE_DESCRIPTOR 
{
    unsigned char bLength;
    unsigned char bDescriptorType;
    unsigned char bcdUSB0;
    unsigned char bcdUSB1;
    unsigned char bDeviceClass;
    unsigned char bDeviceSubClass;
    unsigned char bDeviceProtocol;
    unsigned char bMaxPacketSize0;
    unsigned char idVendor0;
    unsigned char idVendor1;
    unsigned char idProduct0;
    unsigned char idProduct1;
    unsigned char bcdDevice0;
    unsigned char bcdDevice1;
    unsigned char iManufacturer;
    unsigned char iProduct;
    unsigned char iSerialNumber;
    unsigned char bNumConfigurations;
} USB_DEVICE_DESCRIPTOR;

/***********  USB  接口描述符結構體  ****************/
typedef struct _USB_INTERFACE_DESCRIPTOR 
{
    unsigned char bLength;
    unsigned char bDescriptorType;
    unsigned char bInterfaceNumber;
    unsigned char bAlternateSetting;
    unsigned char bNumEndpoints;
    unsigned char bInterfaceClass;
    unsigned char bInterfaceSubClass;
    unsigned char bInterfaceProtocol;
    unsigned char iInterface;
} USB_INTERFACE_DESCRIPTOR;

/***********  USB  配置描述符結構體  ****************/
typedef struct _USB_CONFIGURATION_DESCRIPTOR 
{
    unsigned char bLength;
    unsigned char bDescriptorType;
    unsigned char wTotalLength0;
    unsigned char wTotalLength1;
    unsigned char bNumInterfaces;
    unsigned char bConfigurationValue;
    unsigned char iConfiguration;
    unsigned char bmAttributes;
    unsigned char MaxPower;
} USB_CONFIGURATION_DESCRIPTOR;

/***********  USB  端點描述符結構體  ****************/
typedef struct _USB_ENDPOINT_DESCRIPTOR 
{
    unsigned char bLength;
    unsigned char bDescriptorType;
    unsigned char bEndpointAddress;
    unsigned char bmAttributes;
    unsigned char wMaxPacketSize0;
    unsigned char wMaxPacketSize1;
    unsigned char bInterval;
} USB_ENDPOINT_DESCRIPTOR;

/***********  D12 USB 各種描述符結構體 *********************/
typedef struct _USB_DESCRIPTOR 
{
	USB_CONFIGURATION_DESCRIPTOR ConfigDescr;		//配置描述符
	USB_INTERFACE_DESCRIPTOR InterfaceDescr;		//接口描述符
	USB_ENDPOINT_DESCRIPTOR EP1_TXDescr;			//端點1輸入描述符
	USB_ENDPOINT_DESCRIPTOR EP1_RXDescr;			//端點1輸出描述符
	USB_ENDPOINT_DESCRIPTOR EP2_TXDescr;			//端點2輸入描述符
	USB_ENDPOINT_DESCRIPTOR EP2_RXDescr;			//端點2輸出描述符
} USB_DESCRIPTOR;

CONTROL_XFER ControlData;
unsigned char Ep1Buf[EP1_PACKET_SIZE];			        //端點1接收緩沖區
unsigned char Ep2Buf[EP2_PACKET_SIZE];				//端點2接收緩沖區

//設備描述符
USB_DEVICE_DESCRIPTOR DeviceDescr =
{
	sizeof(USB_DEVICE_DESCRIPTOR),				//設備描述符長度,= 12H
	USB_DEVICE_DESCRIPTOR_TYPE,				//設備描述符類型,= 01H
	0x00,0x10,						//協議版本,= 1.10
	USB_CLASS_CODE_TEST_CLASS_DEVICE,			//測試設備類型, = 0DCH	
	0, 0,							//設備子類,設備協議
	EP0_PACKET_SIZE,					//端點0最大數據包大小,= 10H	
	0x71,0x04,						//PHILIPS公司的設備ID	
	0x14,0x41,						//設備制造商定的產品ID
	0x00,0x01,						//設備系列號
	0, 0, 0,						//索引
	1							//可能的配置數
};

USB_DESCRIPTOR usb_descr =
{
//配置描述符
{
	sizeof(USB_CONFIGURATION_DESCRIPTOR),		        //配置描述符長度,= 09H
	USB_CONFIGURATION_DESCRIPTOR_TYPE,			//配置描述符類型,= 02H
	CONFIG_DESCRIPTOR_LENGTH,0x00,				//描述符總長度, = 002EH
	1,							//只支持1個接口
	1,							//配置值
	0,							//字符串描述符指針(無)
	0xa0,							//自供電,支持遠程喚醒
	0x32							//最大功耗(100mA)
},
//接口描述符
{
	sizeof(USB_INTERFACE_DESCRIPTOR),			//接口描述符長度,= 09H
	USB_INTERFACE_DESCRIPTOR_TYPE,				//接口描述符類型,= 04H
	0,						        //接口數,只有1個
	0,							//可選配置,只有1個
	NUM_ENDPOINTS,						//除端點0的端點索引數目,= 04H
	USB_CLASS_CODE_TEST_CLASS_DEVICE,			//測試設備類型,= 0DCH
	USB_SUBCLASS_CODE_TEST_CLASS_D12,			//子類代碼,= 0A0H	
	USB_PROTOCOL_CODE_TEST_CLASS_D12,			//協議代碼,= 0B0H
	0							//字符串描述符索引
},
//端點描述符,端點1輸入
{
	sizeof(USB_ENDPOINT_DESCRIPTOR),			//端點描述符長度,= 07H
	USB_ENDPOINT_DESCRIPTOR_TYPE,				//端點描述符類型,= 05H
	0x81,							//端點1 IN
	USB_ENDPOINT_TYPE_INTERRUPT,				//中斷傳輸, = 03H
	EP1_PACKET_SIZE,0x00,					//端點最大包的大小,= 0010H
	1							//傳輸間隔時間,= 1ms
},
//端點描述符,端點1輸出
{
	sizeof(USB_ENDPOINT_DESCRIPTOR),			//端點描述符長度,= 07H
	USB_ENDPOINT_DESCRIPTOR_TYPE,				//端點描述符類型,= 05H
	0x01,							//端點1 OUT
	USB_ENDPOINT_TYPE_INTERRUPT,				//中斷傳輸,= 03H
	EP1_PACKET_SIZE,0x00,					//端點最大包的大小,= 0010H
	1						        //傳輸間隔時間,= 1ms
},
//端點2輸入
{
	sizeof(USB_ENDPOINT_DESCRIPTOR),			//端點描述符長度,= 07H
	USB_ENDPOINT_DESCRIPTOR_TYPE,				//端點描述符類型,= 05H
	0x82,							//端點2 OUT
	USB_ENDPOINT_TYPE_BULK,					//批量傳輸,= 02H
	EP2_PACKET_SIZE,0x00,					//端點最大包的大小,= 0040H
	1							//批量傳輸時該設置無效
},
//端點2輸出
{
	sizeof(USB_ENDPOINT_DESCRIPTOR),			//端點描述符長度,= 07H
	USB_ENDPOINT_DESCRIPTOR_TYPE,				//端點描述符類型,= 05H
	0x02,							//端點2 IN	
	USB_ENDPOINT_TYPE_BULK,					//批量傳輸,= 02H
	EP2_PACKET_SIZE,0x00,					//端點最大包的大小,= 0040H
	1							//批量傳輸時該設置無效
} 
};

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91视频观看免费| 激情深爱一区二区| 欧美日韩一区二区在线观看| 亚洲综合色自拍一区| 欧美综合一区二区三区| 亚洲午夜久久久久久久久电影网 | 久久久噜噜噜久久人人看| 国内精品第一页| 亚洲国产高清在线| 欧美午夜一区二区三区免费大片| 日韩影院在线观看| 欧美tickling挠脚心丨vk| 国产**成人网毛片九色| 亚洲欧美一区二区三区久本道91| 欧美日韩国产区一| 国产一区二区福利视频| 亚洲天堂免费在线观看视频| 欧美绝品在线观看成人午夜影视| 经典三级在线一区| 椎名由奈av一区二区三区| 7777精品伊人久久久大香线蕉| 国内外成人在线| 日韩伦理电影网| 在线播放欧美女士性生活| 国产高清视频一区| 性欧美疯狂xxxxbbbb| 久久久久久久综合日本| 欧美系列一区二区| 国产精品中文字幕日韩精品| 一区二区三区丝袜| 欧美成人午夜电影| 色94色欧美sute亚洲线路一久 | 亚洲三级电影全部在线观看高清| 欧美日韩国产免费| 国产白丝精品91爽爽久久 | 亚洲视频中文字幕| 日韩女优av电影在线观看| 99精品久久99久久久久| 久草在线在线精品观看| 亚洲美女偷拍久久| 国产拍欧美日韩视频二区| 91麻豆精品91久久久久同性| 成人av在线影院| 久久精品国产亚洲aⅴ| 一区二区三区四区精品在线视频| 精品国产乱码久久| 欧美亚洲综合色| 成人激情动漫在线观看| 久久精品国产精品亚洲红杏| 亚洲第一综合色| 中文字幕在线观看不卡| 精品成人免费观看| 欧美一卡二卡三卡| 欧美亚洲国产一区二区三区va| 成人丝袜18视频在线观看| 麻豆国产精品一区二区三区 | 蜜臀久久久久久久| 一二三区精品视频| 国产精品电影一区二区| 久久综合久久综合亚洲| 在线播放国产精品二区一二区四区| 99热国产精品| 丁香六月久久综合狠狠色| 精品一区二区成人精品| 石原莉奈在线亚洲二区| 午夜久久久久久久久| 亚洲影院久久精品| 亚洲综合精品久久| 亚洲精品视频自拍| 亚洲卡通欧美制服中文| 国产精品福利影院| 国产精品国产自产拍高清av王其 | 日本大胆欧美人术艺术动态 | 久色婷婷小香蕉久久| 麻豆极品一区二区三区| 久久国内精品自在自线400部| 丝袜a∨在线一区二区三区不卡| 亚洲已满18点击进入久久| 一区二区三区在线观看网站| 亚洲精品少妇30p| 一区二区三区四区五区视频在线观看| 亚洲精品欧美综合四区| 亚洲一区二区在线免费看| 亚洲国产一区在线观看| 视频在线观看一区| 免费看黄色91| 国产一区二区三区黄视频| 国产成人综合在线观看| 91香蕉视频mp4| 在线观看91视频| 91精品国产综合久久香蕉麻豆| 日韩欧美中文字幕公布| 久久天天做天天爱综合色| 日本一区二区免费在线| 亚洲色图一区二区三区| 亚洲一区二区三区四区五区中文| 亚洲一卡二卡三卡四卡五卡| 日韩精品乱码av一区二区| 久久精品72免费观看| 成人久久18免费网站麻豆| 日本丰满少妇一区二区三区| 欧美精品黑人性xxxx| 久久影院午夜片一区| 自拍偷自拍亚洲精品播放| 亚洲成av人影院| 国产传媒一区在线| 欧美日韩一区二区三区四区 | 国产成人精品免费| 一本久久a久久精品亚洲| 欧美猛男男办公室激情| 26uuu久久天堂性欧美| 亚洲日本在线a| 天天av天天翘天天综合网| 精品无人区卡一卡二卡三乱码免费卡 | 1024精品合集| 麻豆精品新av中文字幕| 午夜激情久久久| 亚洲在线免费播放| 琪琪久久久久日韩精品| 国产成人一级电影| 欧美精品自拍偷拍动漫精品| 久久久久国产一区二区三区四区 | av中文字幕亚洲| 337p亚洲精品色噜噜| 中文一区在线播放| 免费人成在线不卡| 色婷婷综合久久久中文字幕| 日韩欧美在线网站| 亚洲国产日韩一区二区| 成人天堂资源www在线| 日韩欧美中文字幕精品| 亚洲综合丁香婷婷六月香| 高清久久久久久| 日韩女优电影在线观看| 一区二区三区免费看视频| 国产麻豆成人传媒免费观看| 欧美肥胖老妇做爰| 亚洲裸体在线观看| 成人一区二区三区中文字幕| 欧美大尺度电影在线| 亚洲综合在线第一页| gogo大胆日本视频一区| 久久久久久97三级| 久久国产三级精品| 欧美一级二级在线观看| 一区二区三区不卡在线观看 | 国产盗摄视频一区二区三区| 日韩一区二区在线观看| 亚洲永久精品大片| 在线观看日韩一区| 亚洲日本免费电影| 成人教育av在线| 国产女主播一区| 国产精品99久久久久久久vr| 日韩亚洲欧美在线| 日韩二区在线观看| 欧美日本乱大交xxxxx| 亚洲一区欧美一区| 欧美性猛交xxxx乱大交退制版| 亚洲少妇中出一区| 99久久精品免费看国产| 国产精品伦理一区二区| 不卡一区二区中文字幕| 国产精品三级av在线播放| 成人免费毛片a| 国产精品五月天| www.日韩在线| 亚洲男同性视频| 欧美又粗又大又爽| 亚洲va中文字幕| 日韩欧美中文字幕精品| 加勒比av一区二区| 中文字幕免费观看一区| 94-欧美-setu| 亚洲国产美女搞黄色| 欧美日韩一区二区在线视频| 日本欧美一区二区在线观看| 欧美电影免费观看高清完整版在线观看 | 成人h动漫精品一区二区| 17c精品麻豆一区二区免费| 91久久人澡人人添人人爽欧美| 亚洲小少妇裸体bbw| 日韩午夜激情视频| 国产激情一区二区三区桃花岛亚洲| 欧美国产欧美亚州国产日韩mv天天看完整| 成人永久看片免费视频天堂| 亚洲天堂福利av| 欧美日韩国产片| 激情五月激情综合网| 中文字幕成人在线观看| 91国产免费观看| 精品一区中文字幕| 成人欧美一区二区三区| 在线成人免费观看| 国产高清在线精品| 亚洲资源在线观看| 精品美女被调教视频大全网站| 成人动漫精品一区二区| 日韩国产高清影视| 国产精品国产三级国产aⅴ原创 |