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

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

?? copy of usb.h

?? 基于C51的U盤開發源代碼!是從事移動硬盤開發者不可或缺的參考代碼!
?? H
?? 第 1 頁 / 共 2 頁
字號:
					+ sizeof(USBInterfaceDescriptor)
					+ sizeof(USBEndpoint1Descriptor)
					+ sizeof(USBEndpoint2Descriptor);
			else
				USBBuffer.OutLength=USBConfigurationDescriptor[0];
			break;
		case USB_GET_DESC_STRING		:
			switch (USBBuffer.In[2])
			{
				case 0x00		:
					USBBuffer.Out=USBString1Descriptor;
					USBBuffer.OutLength=sizeof(USBString1Descriptor);
					break;
				case 0x01		:
					USBBuffer.Out=USBString3Descriptor;
					USBBuffer.OutLength=sizeof(USBString3Descriptor);
					break;
				case 0x02		:
					USBBuffer.Out=USBString3Descriptor;
					USBBuffer.OutLength=sizeof(USBString3Descriptor);
					break;
				case 0x03		:
					USBBuffer.Out=USBString3Descriptor;
					USBBuffer.OutLength=sizeof(USBString3Descriptor);
					break;
			}
			break;
		case USB_GET_DESC_INTERFACE		:
			USBBuffer.Out=USBInterfaceDescriptor;
			USBBuffer.OutLength=sizeof(USBInterfaceDescriptor);
			break;
		case USB_GET_DESC_ENDPOINT		:
			USBBuffer.Out=USBEndpoint1Descriptor;
			USBBuffer.OutLength=sizeof(USBEndpoint1Descriptor);
			break;
		default							:
			break;
	}
}

void USBSetConfig(void)
{
	printf("SetConfig:%x \n",USBSetup->wValue);
	if (USBSetup->wValue)
		SET_BIT_1(USBCON);			//設置CONFIG
	else
		CLEAR_BIT_1(USBCON);
	UEPNUM=0x01;				//設置Endpoint1
	UEPCONX=USB_EPMOD_BULK_OUT;
	UEPNUM=0x02;				//設置Endpoint2
	UEPCONX=USB_EPMOD_BULK_IN;
	UEPNUM=0x00;				//設置Endpoint0
	USB_SEND_ZERO_PACKET;			//發送0字節包
}

void USBClearFeature(void)
{
	if (USBSetup->wValue)
	{

	}
	else
	{
		if (USBSetup->wIndex==0x0000)
			USB_SEND_ZERO_PACKET;
	}
}

void USBSetupDevice(void)
{
	switch (USBSetup->bRequest)
	{
		case USB_GET_STATUS			:
			USB_SEND_STALL_PACKET;
			break;
		case USB_CLEAR_FEATURE		:
			USBClearFeature();
			break;
		case USB_SET_FEATURE		:
			USB_SEND_STALL_PACKET;
			break;
		case USB_SET_ADDRESS		:
			USBSetAddress();
			break;
		case USB_GET_DESCRIPTOR		:
			USBGetDescriptor();
			USBWritePacket();
//			if (USBBuffer.OutLength==0x20)				//發送0字節包
			if (USBBuffer.OutLength==0x20&&USBSetup->wLength>0x2000)				//發送0字節包
			{
				SET_BIT_7(UEPSTAX);						//設置DIR
				SET_BIT_4(UEPSTAX);						//設置TXRDY
				while(!( UEPSTAX & 0x01 ));				//等待TXCMP
				CLEAR_BIT_0(UEPSTAX);					//清除TXCMP
			}
			break;
		case USB_SET_DESCRIPTOR		:
			USB_SEND_STALL_PACKET;
			break;
		case USB_GET_CONFIGURATION	:
			USB_SEND_STALL_PACKET;
			break;
		case USB_SET_CONFIGURATION	:
			USBSetConfig();
			break;
		case USB_GET_INTERFACE		:
			USB_SEND_STALL_PACKET;
			break;
		case USB_SET_INTERFACE		:
			USB_SEND_STALL_PACKET;
			break;
		case USB_SYNCH_FRAME		:
			USB_SEND_STALL_PACKET;
			break;
		default						:
//			USB_EP0_RESET;
			USB_SEND_STALL_PACKET;
			printf("not support request\n");
			break;
	}
}

void InterruptUSB(void) interrupt 13
{
	register USBIntFlag,UEPIntFlag;

	USB_DISABLE_INT_USB;				//禁止USB中斷

	USBIntFlag=USBINT&USBIEN;
	UEPIntFlag=UEPINT&UEPIEN;

//	USBIntFlag=USBINT;
//	UEPIntFlag=UEPINT;
//	printf("STAX:%02bx,CONX:%02bx,USB:%02bx,UEP:%02bx\n",UEPSTAX,UEPCONX,USBIntFlag,UEPIntFlag);
	if (USBIntFlag&USB_INT_EORINT)
	{
		printf("EORINT \n");
		USBADDR = 0x80;				//enable function
		USBCON = 0x80;
//		USBIEN=0x39;				//開全局中斷
		UEPIEN=0x07;
		CLEAR_BIT_4(USBINT);		//清中斷標志
	}

	if (USBIntFlag&USB_INT_SPINT)		//掛起中斷
	{
		printf("SPINT \n");
		SET_BIT_6(USBCON);			//停USB時鐘
		CLEAR_BIT_0(USBINT);		//清中斷標志
	}

	if (USBIntFlag*USB_INT_WUPCPU)		//CPU喚醒中斷
	{
		printf("WUPCPU \n");
		CLEAR_BIT_6(USBCON);		//啟動USB時鐘
		CLEAR_BIT_0(USBINT);		//清SPINT中斷標志
		CLEAR_BIT_5(USBINT);		//清WUPCPU中斷標志
	}

	if (USBIntFlag&USB_INT_SOFINT)		//幀同步中斷
	{
		printf("SOFINT \n");
		CLEAR_BIT_3(USBINT);		//清中斷標志
	}

	if (UEPIntFlag&USB_INT_EP0)						//EndPoint0 中斷
	{
		UEPNUM=0x00;
		printf("Endpoint 0 Interrupt UEPSTAX:%02bx\n",UEPSTAX);
		if (UEPSTAX&USB_INT_RXSETUP)			//setup packet
		{
			printf("Receive Setup packet:");
			USBReadPacket();
			CLEAR_BIT_2(UEPSTAX);				//清除RXSETUP
			USBSetupDevice();
//			CLEAR_BIT_4(UEPCONX);
		}
		if (UEPSTAX&USB_INT_RXOUTB0)
		{
			printf(" RXOUTB0 ");
			USBReadPacket();
			CLEAR_BIT_1(UEPSTAX);
		}
		if (UEPSTAX&USB_INT_RXOUTB1)
		{
			printf(" RXOUTB1 ");
			USBReadPacket();
			CLEAR_BIT_6(UEPSTAX);
		}
		if (UEPCONX&USB_INT_NAKOUT)
		{
			printf(" NAKOUT ");
			CLEAR_BIT_5(UEPCONX);
		}
		if (UEPCONX&USB_INT_NAKIN)
		{
			printf(" NAKIN ");
			CLEAR_BIT_4(UEPCONX);
		}
		if (UEPSTAX&USB_INT_STLCRC)
		{
			printf(" STALCRC%02bx",UEPSTAX);
//			CLEAR_BIT_5(UEPSTAX);
			CLEAR_BIT_3(UEPSTAX);
		}
		if (UEPSTAX&USB_INT_TXCMP)
		{
			printf(" TXCMP ");
			CLEAR_BIT_0(UEPSTAX);
		}
		EP0INT=0;
	}

	if (UEPIntFlag&USB_INT_EP1)
	{
		printf("Endpoint 1 Interrupt\n");
		UEPNUM=0x01;
		if (UEPSTAX&USB_INT_RXOUTB0)
		{
			printf(" RXOUTB0 ");
			USBReadPacket();
			CLEAR_BIT_1(UEPSTAX);
		}
		if (UEPSTAX&USB_INT_RXOUTB1)
		{
			printf(" RXOUTB1 ");
			USBReadPacket();
			CLEAR_BIT_6(UEPSTAX);
		}
		if (UEPCONX&USB_INT_NAKOUT)
		{
			printf(" NAKOUT ");
			CLEAR_BIT_5(UEPCONX);
		}
		if (UEPCONX&USB_INT_NAKIN)
		{
			printf(" NAKIN ");
			CLEAR_BIT_4(UEPCONX);
		}
		if (UEPSTAX&USB_INT_STLCRC)
		{
			printf(" STALCRC%02bx",UEPSTAX);
//			CLEAR_BIT_5(UEPSTAX);
			CLEAR_BIT_3(UEPSTAX);
		}
		if (UEPSTAX&USB_INT_TXCMP)
		{
			printf(" TXCMP ");
			CLEAR_BIT_0(UEPSTAX);
		}
	}

	if (UEPIntFlag&USB_INT_EP2)
	{
		printf("Endpoint 2 Interrupt\n");
		UEPNUM=0x02;
		if (UEPSTAX&USB_INT_RXOUTB0)
		{
			printf(" RXOUTB0 ");
			USBReadPacket();
			CLEAR_BIT_1(UEPSTAX);
		}
		if (UEPSTAX&USB_INT_RXOUTB1)
		{
			printf(" RXOUTB1 ");
			USBReadPacket();
			CLEAR_BIT_6(UEPSTAX);
		}
		if (UEPCONX&USB_INT_NAKOUT)
		{
			printf(" NAKOUT ");
			CLEAR_BIT_5(UEPCONX);
		}
		if (UEPCONX&USB_INT_NAKIN)
		{
			printf(" NAKIN ");
			CLEAR_BIT_4(UEPCONX);
		}
		if (UEPSTAX&USB_INT_STLCRC)
		{
			printf(" STALCRC%02bx",UEPSTAX);
//			CLEAR_BIT_5(UEPSTAX);
			CLEAR_BIT_3(UEPSTAX);
		}
		if (UEPSTAX&USB_INT_TXCMP)
		{
			printf(" TXCMP ");
			CLEAR_BIT_0(UEPSTAX);
		}
		EP2INT=0;
	}
	USB_ENABLE_INT_USB;				//啟動USB中斷
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆精品视频在线观看免费| 成人免费看的视频| 色嗨嗨av一区二区三区| 久久综合久久久久88| 偷拍亚洲欧洲综合| 欧美在线不卡视频| 国产精品久久久久久亚洲毛片 | 韩国中文字幕2020精品| 亚洲精品欧美激情| 不卡欧美aaaaa| 偷拍亚洲欧洲综合| 精品国产3级a| 成人午夜激情视频| 亚洲精品伦理在线| 欧美一区二区成人6969| 久久精品国产亚洲高清剧情介绍| xfplay精品久久| www.日韩精品| 亚洲二区在线观看| 精品免费日韩av| 在线中文字幕一区二区| 精品一区二区精品| 亚洲精品视频在线观看免费| 在线观看视频91| 国产河南妇女毛片精品久久久| 亚洲欧洲av在线| 精品欧美乱码久久久久久1区2区| 不卡的av电影| 国产精品一二三| 午夜欧美电影在线观看| 中文字幕制服丝袜成人av | 国产一区二区三区精品视频| 亚洲免费av观看| 国产欧美日韩视频在线观看| 精品视频在线看| 成人涩涩免费视频| 青青国产91久久久久久| 亚洲精品视频一区| 国产欧美日韩亚州综合 | 91丨porny丨国产| 国产剧情一区二区三区| 美女视频黄 久久| 洋洋av久久久久久久一区| 国产精品美女视频| 久久色在线观看| 欧美猛男超大videosgay| 在线欧美日韩国产| 欧美日韩在线播放三区四区| 欧美三级电影网| 欧美丰满一区二区免费视频 | 91丝袜美女网| 欧美aaaaaa午夜精品| 婷婷综合五月天| 日本不卡1234视频| 精品午夜一区二区三区在线观看| 欧美a级理论片| 国产精品主播直播| 色哟哟亚洲精品| 欧美午夜精品一区二区三区| 欧美性色aⅴ视频一区日韩精品| 欧美午夜影院一区| 精品电影一区二区| 亚洲精品美腿丝袜| 麻豆一区二区三| 不卡区在线中文字幕| 在线播放一区二区三区| 中文字幕在线观看不卡| 国产精品国产三级国产专播品爱网| 欧美高清一级片在线观看| 亚洲国产日日夜夜| 老色鬼精品视频在线观看播放| 久久精品免费看| 91在线精品一区二区三区| 7777精品伊人久久久大香线蕉 | 91麻豆精品国产自产在线观看一区 | 色综合久久中文综合久久牛| 91在线观看美女| 欧美成人猛片aaaaaaa| 依依成人综合视频| 麻豆精品一二三| 国产精品第五页| 国内精品在线播放| 3d成人动漫网站| 欧美aaa在线| 欧美高清hd18日本| 性做久久久久久| 欧美曰成人黄网| 亚洲精品欧美专区| 欧美一区二区三区爱爱| 欧美国产精品专区| 成人综合日日夜夜| 国产精品美女久久久久久久久久久| av成人老司机| 亚洲女人的天堂| 色噜噜狠狠一区二区三区果冻| 国产精品第四页| 国产不卡在线一区| 亚洲丝袜制服诱惑| 成人高清免费观看| 亚洲欧美激情视频在线观看一区二区三区| 成人激情黄色小说| 亚洲激情男女视频| 555www色欧美视频| 精品在线视频一区| 国产欧美视频一区二区| 91国偷自产一区二区开放时间| 亚洲激情一二三区| 精品久久久久久亚洲综合网 | 亚洲国产精品久久一线不卡| 91影视在线播放| 国模娜娜一区二区三区| 久久久久青草大香线综合精品| 99国产欧美另类久久久精品| 免费人成黄页网站在线一区二区| 亚洲视频1区2区| 欧洲av在线精品| 国产精品18久久久久久久久| 亚洲精品免费在线观看| 26uuu精品一区二区在线观看| 色综合久久中文综合久久97| 午夜日韩在线电影| 国产精品久久久久桃色tv| 欧美电视剧在线观看完整版| 91网站视频在线观看| 精品一区二区三区在线观看 | 精品国产免费久久| 97久久精品人人爽人人爽蜜臀| 亚洲一区二区三区不卡国产欧美| 久久日韩粉嫩一区二区三区| 欧美精品tushy高清| 91国偷自产一区二区开放时间 | 日韩免费一区二区| 色婷婷久久久综合中文字幕| 国产一区二区三区综合| 免费成人在线影院| 欧美aⅴ一区二区三区视频| 亚洲午夜久久久久中文字幕久| 亚洲欧洲精品一区二区三区| 国产女人aaa级久久久级| 26uuuu精品一区二区| 欧美成人video| 中文字幕精品在线不卡| 国产精品久久久久精k8 | 日本中文字幕不卡| 极品少妇xxxx偷拍精品少妇| 日韩福利电影在线观看| 亚洲狠狠丁香婷婷综合久久久| 日韩国产欧美在线视频| 蜜桃视频在线一区| 成人中文字幕电影| 欧美日韩精品专区| 91麻豆精品国产自产在线观看一区 | 91香蕉视频污| 7777精品伊人久久久大香线蕉经典版下载 | 日韩手机在线导航| 国产精品不卡在线| 亚洲成人av中文| 99久久精品情趣| 久久午夜免费电影| 欧美—级在线免费片| 一区二区在线观看免费视频播放| 一区二区三区四区不卡在线 | 日韩精品一区二区三区蜜臀 | 亚洲色图第一区| 偷拍亚洲欧洲综合| 丁香婷婷综合激情五月色| 欧日韩精品视频| 久久久亚洲欧洲日产国码αv| 亚洲日本护士毛茸茸| 精品一区二区日韩| 色av一区二区| 国产精品国产三级国产| 天天av天天翘天天综合网色鬼国产| 精品影院一区二区久久久| 91小宝寻花一区二区三区| 日韩精品一区二区三区在线| 亚洲最新视频在线观看| 成人国产精品免费| 久久久久久久久久看片| 亚洲成人免费在线观看| 波多野结衣欧美| 久久―日本道色综合久久| 午夜精品久久久久影视| 99麻豆久久久国产精品免费优播| 精品久久国产老人久久综合| 亚洲一区在线视频观看| 91高清视频在线| 一区二区三区在线不卡| av综合在线播放| 亚洲欧美影音先锋| 99精品在线免费| 一区二区三区成人| 欧美写真视频网站| 亚洲高清不卡在线| 制服丝袜亚洲网站| 秋霞电影网一区二区| 精品精品国产高清a毛片牛牛| 激情综合色播激情啊| 国产日产欧美精品一区二区三区| 国产一区二区免费在线|