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

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

?? main_hid.c

?? Free Usb Stack for NXP LPC2xxx microcontrollers.
?? C
字號:
/*	LPCUSB, an USB device driver for LPC microcontrollers		Copyright (C) 2006 Bertrik Sikken (bertrik@sikken.nl)	Redistribution and use in source and binary forms, with or without	modification, are permitted provided that the following conditions are met:	1. Redistributions of source code must retain the above copyright	   notice, this list of conditions and the following disclaimer.	2. Redistributions in binary form must reproduce the above copyright	   notice, this list of conditions and the following disclaimer in the	   documentation and/or other materials provided with the distribution.	3. The name of the author may not be used to endorse or promote products	   derived from this software without specific prior written permission.	THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR	IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES	OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.	IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 	INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT	NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,	DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY	THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT	(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF	THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.*/#include "type.h"#include "usbdebug.h"#include "console.h"#include "usbapi.h"#include "startup.h"#define INTR_IN_EP		0x81#define MAX_PACKET_SIZE	64#define LE_WORD(x)		((x)&0xFF),((x)>>8)#define REPORT_SIZE			4static U8	abClassReqData[4];static U8	abReport[] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07};static int	_iIdleRate = 0;static int	_iFrame = 0;// see the joystick example from the usb.org HID Descriptor Toolstatic U8 abReportDesc[] = {	0x05, 0x01,	0x15, 0x00,	0x09, 0x04,	0xA1, 0x01,	0x05, 0x02,	0x09, 0xBB,	0x15, 0x81,	0x25, 0x7F,	0x75, 0x08,	0x95, 0x01,	0x81, 0x02,	0x05, 0x01,	0x09, 0x01,	0xA1, 0x00,	0x09, 0x30,	0x09, 0x31,	0x95, 0x02,	0x81, 0x02,	0xC0,	0x09, 0x39,	0x15, 0x00,	0x25, 0x03,	0x35, 0x00,	0x46, 0x0E, 0x01,	0x65, 0x14,	0x75, 0x04,	0x95, 0x01,	0x81, 0x02,	0x05, 0x09,	0x19, 0x01,	0x29, 0x04,	0x15, 0x00,	0x25, 0x01,	0x75, 0x01,	0x95, 0x04,	0x55, 0x00,	0x65, 0x00,	0x81, 0x02,	0xC0};static const U8 abDescriptors[] = {/* Device descriptor */	0x12,              			DESC_DEVICE,       			LE_WORD(0x0110),		// bcdUSB		0x00,              		// bDeviceClass	0x00,              		// bDeviceSubClass	0x00,              		// bDeviceProtocol	MAX_PACKET_SIZE0,  		// bMaxPacketSize	LE_WORD(0xFFFF),		// idVendor	LE_WORD(0x0001),		// idProduct	LE_WORD(0x0100),		// bcdDevice	0x01,              		// iManufacturer	0x02,              		// iProduct	0x03,              		// iSerialNumber	0x01,              		// bNumConfigurations// configuration	0x09,	DESC_CONFIGURATION,	LE_WORD(0x22),  		// wTotalLength	0x01,  					// bNumInterfaces	0x01,  					// bConfigurationValue	0x00,  					// iConfiguration	0x80,  					// bmAttributes	0x32,  					// bMaxPower// interface	0x09,   					DESC_INTERFACE, 	0x00,  		 			// bInterfaceNumber	0x00,   				// bAlternateSetting	0x01,   				// bNumEndPoints	0x03,   				// bInterfaceClass = HID	0x00,   				// bInterfaceSubClass	0x00,   				// bInterfaceProtocol	0x00,   				// iInterface// HID descriptor	0x09, 	DESC_HID_HID, 			// bDescriptorType = HID	LE_WORD(0x0110),		// bcdHID	0x00,   				// bCountryCode	0x01,   				// bNumDescriptors = report	DESC_HID_REPORT,   		// bDescriptorType	LE_WORD(sizeof(abReportDesc)),// EP descriptor	0x07,   			DESC_ENDPOINT,   			INTR_IN_EP,				// bEndpointAddress	0x03,   				// bmAttributes = INT	LE_WORD(MAX_PACKET_SIZE),// wMaxPacketSize	10,						// bInterval   		// string descriptors	0x04,	DESC_STRING,	LE_WORD(0x0409),	// manufacturer string	0x0E,	DESC_STRING,	'L', 0, 'P', 0, 'C', 0, 'U', 0, 'S', 0, 'B', 0,	// product string	0x12,	DESC_STRING,	'P', 0, 'r', 0, 'o', 0, 'd', 0, 'u', 0, 'c', 0, 't', 0, 'X', 0,	// serial number string	0x12,	DESC_STRING,	'D', 0, 'E', 0, 'A', 0, 'D', 0, 'C', 0, '0', 0, 'D', 0, 'E', 0,		// terminator	0};/*************************************************************************	HandleClassRequest	==================		HID class request handler		**************************************************************************/static BOOL HandleClassRequest(TSetupPacket *pSetup, int *piLen, U8 **ppbData){	U8	*pbData = *ppbData;	switch (pSetup->bRequest) {	   	// get_idle	case HID_GET_IDLE:		DBG("GET IDLE, val=%X, idx=%X\n", pSetup->wValue, pSetup->wIndex);		pbData[0] = (_iIdleRate / 4) & 0xFF;		*piLen = 1;		break;	// set_idle:	case HID_SET_IDLE:		DBG("SET IDLE, val=%X, idx=%X\n", pSetup->wValue, pSetup->wIndex);		_iIdleRate = ((pSetup->wValue >> 8) & 0xFF) * 4;		break;	default:		DBG("Unhandled class %X\n", pSetup->bRequest);		return FALSE;	}	return TRUE;}#define BAUD_RATE	115200/*************************************************************************	HIDHandleStdReq	===============		Standard request handler for HID devices.			This function tries to service any HID specific requests.		**************************************************************************/static BOOL HIDHandleStdReq(TSetupPacket *pSetup, int *piLen, U8 **ppbData){	U8	bType, bIndex;	if ((pSetup->bmRequestType == 0x81) &&			// standard IN request for interface		(pSetup->bRequest == REQ_GET_DESCRIPTOR)) {	// get descriptor				bType = GET_DESC_TYPE(pSetup->wValue);		bIndex = GET_DESC_INDEX(pSetup->wValue);		switch (bType) {		case DESC_HID_REPORT:			// report			*ppbData = abReportDesc;			*piLen = sizeof(abReportDesc);			break;		case DESC_HID_HID:		case DESC_HID_PHYSICAL:		default:		    // search descriptor space		    return USBGetDescriptor(pSetup->wValue, pSetup->wIndex, piLen, ppbData);		}				return TRUE;	}	return FALSE;}static void HandleFrame(U16 wFrame){	static int iCount;	_iFrame++;	if ((_iFrame > 1000)) {		// send report (dummy data)		abReport[0] = (iCount >> 8) & 0xFF;		abReport[1] = (iCount) & 0xFF;		iCount++;		USBHwEPWrite(INTR_IN_EP, abReport, REPORT_SIZE);		_iFrame = 0;	}}/*************************************************************************	main	====**************************************************************************/int main(void){	// PLL and MAM	Initialize();	// init DBG	ConsoleInit(60000000 / (16 * BAUD_RATE));	DBG("Initialising USB stack\n");		// initialise stack	USBInit();		// register device descriptors	USBRegisterDescriptors(abDescriptors);	// register HID standard request handler	USBRegisterCustomReqHandler(HIDHandleStdReq);	// register class request handler	USBRegisterRequestHandler(REQTYPE_TYPE_CLASS, HandleClassRequest, abClassReqData);	// register endpoint	USBHwRegisterEPIntHandler(INTR_IN_EP, NULL);	// register frame handler	USBHwRegisterFrameHandler(HandleFrame);	DBG("Starting USB communication\n");	// connect to bus	USBHwConnect(TRUE);	// call USB interrupt handler continuously	while (1) {		USBHwISR();	}		return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧洲av在线精品| 毛片一区二区三区| 91原创在线视频| 欧美国产日韩a欧美在线观看| 国产精品18久久久久久久久久久久 | 日韩不卡免费视频| 91精品国产一区二区三区蜜臀| 琪琪一区二区三区| 精品国产不卡一区二区三区| 国内精品久久久久影院薰衣草| 久久精品夜色噜噜亚洲aⅴ| 国产酒店精品激情| 亚洲欧美日韩国产综合| 欧美日韩三级视频| 久久精品国产**网站演员| 久久一区二区视频| 91在线精品一区二区| 亚洲成av人片www| 久久久久久久久久久电影| 99re在线精品| 日本不卡一二三| 久久久不卡影院| 91国在线观看| 九九国产精品视频| 日韩一区在线播放| 日韩欧美中文字幕制服| 成人国产视频在线观看| 日韩在线一区二区三区| 中文字幕不卡在线播放| 欧美色综合天天久久综合精品| 精品一区二区在线看| 亚洲三级电影全部在线观看高清| 9191精品国产综合久久久久久| 国产精品888| 天堂影院一区二区| 亚洲视频电影在线| www国产精品av| 欧美日韩国产综合视频在线观看| 国产一区二区三区免费观看| 亚洲综合区在线| 欧美激情综合在线| 日韩一区二区麻豆国产| 色综合色综合色综合色综合色综合| 日本伊人精品一区二区三区观看方式| 国产精品美女视频| 欧美成人一区二区三区| 91国产丝袜在线播放| 国产成人三级在线观看| 日本不卡中文字幕| 一区二区高清免费观看影视大全| 久久久亚洲综合| 欧美剧在线免费观看网站| 91丨porny丨户外露出| 国产黄人亚洲片| 精品在线亚洲视频| 日本女人一区二区三区| 一区二区三区不卡视频在线观看 | 欧美一级xxx| 在线观看日韩国产| 99精品视频中文字幕| 国产一区二区伦理| 精品在线视频一区| 久久99精品国产| 美国一区二区三区在线播放| 亚洲一级二级三级在线免费观看| 亚洲欧洲精品一区二区三区| 国产三级欧美三级日产三级99| 337p亚洲精品色噜噜| 欧美系列在线观看| 欧洲一区二区三区在线| 色婷婷亚洲综合| 色哟哟亚洲精品| 色国产综合视频| 在线观看日韩毛片| 欧美体内she精视频| 欧美视频一区二区三区四区 | 国产清纯白嫩初高生在线观看91 | 成人h动漫精品一区二| 国产成人午夜精品5599| 粉嫩在线一区二区三区视频| 国产成人综合亚洲网站| 国产成人av一区二区| 国产成人精品免费| 成人理论电影网| 91在线精品一区二区三区| 欧美综合一区二区三区| 欧美午夜精品电影| 91精品国产欧美一区二区成人| 欧美自拍偷拍一区| 欧美久久久久久久久| 欧美一区二区三区在线观看| 91精品国产全国免费观看| www激情久久| 国产精品久久久久久久久动漫| 综合色中文字幕| 亚洲最快最全在线视频| 日本亚洲电影天堂| 精品中文字幕一区二区| 不卡影院免费观看| 欧美做爰猛烈大尺度电影无法无天| 欧美日韩的一区二区| 欧美va亚洲va在线观看蝴蝶网| 久久久精品免费观看| 亚洲欧美另类久久久精品| 亚洲v中文字幕| 看片网站欧美日韩| 国产成人在线视频网站| 一本一道久久a久久精品综合蜜臀 一本一道综合狠狠老 | 国产日韩av一区二区| 亚洲色图欧美偷拍| 欧美a级理论片| 成人免费毛片app| 欧美日韩国产综合视频在线观看 | 五月天激情综合| 亚洲一区二区三区在线播放| 视频一区在线播放| 激情久久五月天| 91福利在线播放| 欧美xxxx老人做受| 亚洲人一二三区| 国产精品伦理在线| 国产成人午夜99999| 日韩欧美二区三区| 蜜桃视频在线一区| 欧美一区二区三区爱爱| 天涯成人国产亚洲精品一区av| 色综合天天综合网天天看片| 国产精品三级在线观看| 成人午夜精品在线| 国产精品色呦呦| 岛国一区二区在线观看| 国产日韩v精品一区二区| 国产成人免费在线观看不卡| 欧美精品一区二区三区四区| 91一区在线观看| 国产精品免费观看视频| 成人精品视频一区| 国产精品电影一区二区| 成人97人人超碰人人99| 亚洲欧美日韩国产成人精品影院| 91色综合久久久久婷婷| 一区二区视频免费在线观看| 91久久精品网| 亚洲成人综合在线| 欧美一区二区在线不卡| 另类专区欧美蜜桃臀第一页| 精品国精品国产| 国产91高潮流白浆在线麻豆| 国产精品视频一二三区| 99国产精品国产精品久久| 亚洲免费高清视频在线| 欧美日韩国产另类一区| 免费看精品久久片| 欧美国产精品一区二区| 91视频免费看| 五月激情综合婷婷| 精品久久国产字幕高潮| 成人午夜在线视频| 有码一区二区三区| 欧美一三区三区四区免费在线看 | 日韩一区二区在线观看视频播放| 麻豆国产欧美日韩综合精品二区| 久久综合久久综合亚洲| a美女胸又www黄视频久久| 亚洲一区影音先锋| 欧美哺乳videos| 成人app网站| 视频一区国产视频| 国产亚洲一区二区三区四区| 91女人视频在线观看| 日韩国产在线观看一区| 久久久久久免费网| 日本精品视频一区二区| 久久er精品视频| 亚洲色大成网站www久久九九| 欧美日韩日日夜夜| 粉嫩久久99精品久久久久久夜| 亚洲美女精品一区| 日韩精品一区二区三区老鸭窝| 丰满少妇在线播放bd日韩电影| 亚洲大尺度视频在线观看| 久久久久久**毛片大全| 国产精品视频线看| 欧美日韩久久久一区| 国产白丝精品91爽爽久久 | 亚洲欧洲色图综合| 欧美一区二区三区的| av在线不卡免费看| 日韩av中文字幕一区二区| 国产欧美精品一区aⅴ影院 | 国产精品欧美一级免费| 欧美疯狂性受xxxxx喷水图片| 高清免费成人av| 日韩二区三区在线观看| 中文字幕在线免费不卡| 日韩欧美国产成人一区二区| 色香蕉久久蜜桃| 国产剧情一区二区三区| 美腿丝袜亚洲一区| 亚洲一区二区三区四区在线免费观看|