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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? main.c

?? 這是用C語言寫的USB源程序,相信對(duì)大家有所幫助
?? C
字號(hào):
/*
//*************************************************************************
// USB protocol function pointer arrays
//*************************************************************************
*/


//USB標(biāo)準(zhǔn)請(qǐng)求
code void (*StandardDeviceRequest[])(void) =
{
	get_status,
	clear_feature,
	reserved,
	set_feature,
	reserved,
	set_address,
	get_descriptor,
	reserved,
	get_configuration,
	set_configuration,
	get_interface,
	set_interface,
	reserved,
	reserved,
	reserved,
	reserved
};

//用戶廠商請(qǐng)求
code void (*VendorDeviceRequest[])(void) =
{
	reserved,
	reserved,
	reserved,
	reserved,
	reserved,
	reserved,
	reserved,
	reserved,
	reserved,
	reserved,
	reserved,
	reserved,
	read_write_register,
	reserved,
	reserved,
	reserved
};

/*
//*************************************************************************
//  Public static data
//*************************************************************************
*/

extern EPPFLAGS bEPPflags;
extern unsigned long ClockTicks;
extern unsigned char idata GenEpBuf[];
extern IO_REQUEST idata ioRequest;

extern unsigned char ioSize, ioCount;
extern unsigned char idata EpBuf[];

CONTROL_XFER ControlData;
BOOL bNoRAM;

code char * _NAME_USB_REQUEST_DIRECTION[] =
{
"Host_to_device",
"Device_to_host"
};

code char * _NAME_USB_REQUEST_RECIPIENT[] =
{
"Device",
"Interface",
"Endpoint(0)",
"Other"
};

code char * _NAME_USB_REQUEST_TYPE[] =
{
"Standard",
"Class",
"Vendor",
"Reserved"
};

code char * _NAME_USB_STANDARD_REQUEST[] =
{
"GET_STATUS",
"CLEAR_FEATURE",
"RESERVED",
"SET_FEATURE",
"RESERVED",
"SET_ADDRESS",
"GET_DESCRIPTOR",
"SET_DESCRIPTOR",
"GET_CONFIGURATION",
"SET_CONFIGURATION",
"GET_INTERFACE",
"SET_INTERFACE",
"SYNC_FRAME"
};








//I/O口初始化程序
void init_port()
{
	P0 = 0xFF;
	P1 = 0xFF;
	P2 = 0xFF;
	P3 = 0xFF;
	MCU_D12CS = 0x0;
	D12SUSPD = 0;
}




void main(void)
{
	unsigned char key, i;

	init_port();//初始化I/O口




	MCU_D12CS = 0x1;
	
	MCU_D12CS = 0x0;

	D12_ReadChipID();

	if(MCU_SWM0 == 0 && MCU_SWM1 == 0) {
		MCU_D12RST = 0;
		MCU_D12RST = 1;
		D12_SetMODLE(0x0);
	}

	bEPPflags.value = 0;
	reconnect_USB();//重新連接USB

	/* Main program loop */

	while( TRUE ){

			if (bEPPflags.bits.bus_reset) {//設(shè)備復(fù)位處理
			DISABLE;
			bEPPflags.bits.bus_reset = 0;
			ENABLE;
			// Release D12's SUSPEND pin after bus reset
		
			D12SUSPD = 1;
		} // if bus reset

		if (bEPPflags.bits.suspend) {//掛起改變處理
			DISABLE;
			bEPPflags.bits.suspend= 0;
			ENABLE;

			if(D12SUSPD == 1) {//掛起處理
				D12SUSPD = 0;
				P0 = 0xFF;
				P1 = 0xFF;
				P2 = 0xFF;
				P3 = 0xFF;
				D12_SetDMA(0xC3);
				D12SUSPD = 1;
				PCON |= 0x02;
				while (1);
			}
		} // if suspend change

		if (bEPPflags.bits.setup_packet){//Setup包處理
			DISABLE;
			bEPPflags.bits.setup_packet = 0;
			ENABLE;
			control_handler();//調(diào)用請(qǐng)求處理子程序
			D12SUSPD = 1;
		} // if setup_packet

		
	} // Main Loop
}

//返回stall應(yīng)答
void stall_ep0(void)
{
	D12_SetEndpointStatus(0, 1);
	D12_SetEndpointStatus(1, 1);
}

//斷開USB總線
void disconnect_USB(void)
{
	// Initialize D12 configuration
	D12_SetMode(D12_NOLAZYCLOCK, D12_SETTOONE | D12_CLOCK_12M);
}

//連接USB總線
void connect_USB(void)
{
	// reset event flags
	DISABLE;
	bEPPflags.value = 0;//清除所有狀態(tài)
	ENABLE;

	// V2.1 enable normal+sof interrupt
	D12_SetDMA(D12_ENDP4INTENABLE | D12_ENDP5INTENABLE);

	// Initialize D12 configuration
	D12_SetMode(D12_NOLAZYCLOCK|D12_SOFTCONNECT, D12_SETTOONE | D12_CLOCK_12M);
}

//重新連接到USB總線
void reconnect_USB(void)
{
	unsigned long clk_cnt;

	MCU_LED0 = 0;
	MCU_LED1 = 0;

	// Pull-down D12's SUSPEND pin
	// Release D12's SUSPEND pin after receiving bus reset from host
	D12SUSPD = 0;
	disconnect_USB();



	clk_cnt = ClockTicks;
	while(ClockTicks < clk_cnt + 20)
		;

	connect_USB();

	MCU_LED0 = 1;
	MCU_LED1 = 1;
}

//恢復(fù)到未配置狀態(tài)
void init_unconfig(void)
{
//	unsigned char i;

	D12_SetEndpointEnable(0);	/* Disable all endpoints but EPP0. */
}

//設(shè)置配置狀態(tài)
void init_config(void)
{
	D12_SetEndpointEnable(1);	/* Enable  generic/iso endpoints. */
}

//從端點(diǎn)號(hào)1發(fā)送數(shù)據(jù)
void single_transmit(unsigned char * buf, unsigned char len)
{
	if( len <= EP0_PACKET_SIZE) {
		D12_WriteEndpoint(1, len, buf);
	}
}

//發(fā)送端點(diǎn)號(hào)1建立代碼
void code_transmit(unsigned char code * pRomData, unsigned short len)
{
	ControlData.wCount = 0;
	if(ControlData.wLength > len)
		ControlData.wLength = len;

	ControlData.pData = pRomData;
	if( ControlData.wLength >= EP0_PACKET_SIZE) {
		D12_WriteEndpoint(1, EP0_PACKET_SIZE, ControlData.pData);//發(fā)送16字節(jié)數(shù)據(jù)
		ControlData.wCount += EP0_PACKET_SIZE;
		DISABLE;
		bEPPflags.bits.control_state = USB_TRANSMIT;
		ENABLE;
	}
	else {
		D12_WriteEndpoint(1, ControlData.wLength, pRomData);//發(fā)送16字節(jié)內(nèi)數(shù)據(jù)
		ControlData.wCount += ControlData.wLength;
		DISABLE;
		bEPPflags.bits.control_state = USB_IDLE;
		ENABLE;
	}
}


//請(qǐng)求處理子程序
void control_handler()
{
	unsigned char type, req;

	type = ControlData.DeviceRequest.bmRequestType & USB_REQUEST_TYPE_MASK;
	req = ControlData.DeviceRequest.bRequest & USB_REQUEST_MASK;

	help_devreq(type, req); //顯示設(shè)備請(qǐng)求

	if (type == USB_STANDARD_REQUEST)
		(*StandardDeviceRequest[req])();//調(diào)用標(biāo)準(zhǔn)請(qǐng)求
	else if (type == USB_VENDOR_REQUEST)
		(*VendorDeviceRequest[req])();//調(diào)用廠商請(qǐng)求
	else
		stall_ep0();
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国免费一区二区三区| 欧美一级淫片007| 日韩欧美精品三级| 亚洲国产aⅴ天堂久久| 高清成人在线观看| 久久美女高清视频| 久久 天天综合| 在线91免费看| 欧美aaaaa成人免费观看视频| 在线免费观看一区| 中文字幕在线观看不卡| 国产白丝精品91爽爽久久| 亚洲国产日韩综合久久精品| 国产日韩欧美亚洲| 国产成人精品一区二区三区网站观看| 欧美成人伊人久久综合网| 寂寞少妇一区二区三区| 香蕉久久一区二区不卡无毒影院| 欧美日韩免费观看一区三区| 美女mm1313爽爽久久久蜜臀| 久久久精品免费网站| 欧美丰满少妇xxxxx高潮对白| 国产在线不卡一区| 亚洲国产精品t66y| 色综合久久久久综合体桃花网| 亚洲三级小视频| 欧美精品一级二级| 91福利精品第一导航| 老司机精品视频在线| 国产精品人成在线观看免费| 日本二三区不卡| www.av亚洲| 香蕉成人伊视频在线观看| 亚洲色图第一区| 亚洲欧美日韩国产中文在线| 欧美精品tushy高清| 欧美最猛性xxxxx直播| 色88888久久久久久影院野外| 99精品视频一区二区| 免费观看久久久4p| 日韩激情一二三区| 中文文精品字幕一区二区| 久久久一区二区| 久久久综合激的五月天| 久久综合狠狠综合久久综合88| 色综合久久99| 欧美性欧美巨大黑白大战| 国产精品综合在线视频| 亚洲一区二区视频在线| 精品日韩在线观看| 精品久久久久久久久久久久包黑料| 欧美精品1区2区| 欧美一级夜夜爽| 精品精品国产高清一毛片一天堂| 久久天天做天天爱综合色| 久久九九99视频| 欧美一区二区在线不卡| 日韩三级视频在线看| 91视频免费播放| 国产一区在线不卡| 粗大黑人巨茎大战欧美成人| 日韩不卡一区二区三区| 亚洲免费观看高清| 亚洲国产一区二区视频| 日本成人在线电影网| 麻豆国产精品视频| 国产资源在线一区| 久久se精品一区精品二区| 国产尤物一区二区| 99久久99久久精品免费观看 | 久久美女高清视频| 亚洲欧美影音先锋| 午夜精品久久久久影视| 亚洲欧美一区二区三区孕妇| 午夜欧美在线一二页| 久久99九九99精品| 91在线国内视频| 欧美一区二区三区在线观看视频| 久久―日本道色综合久久| 亚洲视频在线一区观看| 日本怡春院一区二区| 成人午夜电影小说| 欧美日本韩国一区二区三区视频| 色天天综合色天天久久| 日韩视频在线观看一区二区| 国产精品无人区| 视频一区视频二区中文字幕| 国产成人精品免费| 欧美群妇大交群中文字幕| 欧美激情一区二区三区不卡| 亚洲国产一区二区三区| 国产精品资源网| 欧美日韩美女一区二区| 国产精品久久久久久久久快鸭 | 欧美mv日韩mv国产网站| 亚洲欧洲日本在线| 精品一区二区三区影院在线午夜 | 日韩 欧美一区二区三区| jiyouzz国产精品久久| 日韩一区二区精品| 日韩美女视频19| 国产一区二区免费看| 欧美精品乱码久久久久久| 国产精品色一区二区三区| 麻豆精品在线播放| 欧美三级韩国三级日本一级| 国产精品麻豆视频| 国内精品伊人久久久久av一坑| 欧洲av一区二区嗯嗯嗯啊| 中文一区在线播放 | 在线观看日韩av先锋影音电影院| 26uuu欧美日本| 日日欢夜夜爽一区| 欧美伊人精品成人久久综合97| 久久久久青草大香线综合精品| 日韩高清一区在线| 色狠狠色噜噜噜综合网| 中文字幕在线一区二区三区| 国产一区二区剧情av在线| 337p亚洲精品色噜噜噜| 亚洲成人激情av| 91免费看视频| 亚洲欧洲成人自拍| 成人国产一区二区三区精品| 色综合一个色综合| 欧美蜜桃一区二区三区| 夜夜操天天操亚洲| 激情文学综合网| 欧美电影免费观看高清完整版在线| 亚洲国产精品综合小说图片区| 色婷婷久久一区二区三区麻豆| 中文字幕在线不卡| 不卡的av电影在线观看| 欧美国产日韩在线观看| 国产69精品久久777的优势| 精品国产99国产精品| 激情av综合网| 久久久蜜桃精品| 国模少妇一区二区三区| 26uuu国产日韩综合| 激情图片小说一区| 久久亚区不卡日本| 成人综合婷婷国产精品久久 | 成人av电影在线观看| 亚洲国产高清aⅴ视频| 成人性生交大片免费看在线播放| 国产日韩欧美一区二区三区综合| 国产成a人无v码亚洲福利| 国产精品午夜在线观看| 成人av在线网站| 亚洲欧美激情插| 欧美亚洲综合一区| 香蕉加勒比综合久久| 日韩欧美成人一区| 国产91在线观看丝袜| 亚洲欧洲av在线| 精品视频在线免费看| 免费在线成人网| 久久久不卡网国产精品一区| 波多野结衣精品在线| 伊人一区二区三区| 国产成人av一区| 亚洲色大成网站www久久九九| 色8久久人人97超碰香蕉987| 婷婷丁香久久五月婷婷| 精品福利一二区| av电影一区二区| 五月婷婷另类国产| 久久久久亚洲蜜桃| 一本大道av伊人久久综合| 五月综合激情婷婷六月色窝| 精品99一区二区三区| 99久久久国产精品免费蜜臀| 亚洲电影一区二区三区| 精品国产成人系列| 91福利国产成人精品照片| 麻豆成人免费电影| 国产精品国模大尺度视频| 欧美性受xxxx黑人xyx性爽| 久久精品国产精品亚洲综合| 亚洲欧洲美洲综合色网| 欧美日本一区二区| 国产成人午夜视频| 亚洲成人av福利| 国产欧美久久久精品影院| 欧美最猛性xxxxx直播| 久久电影国产免费久久电影| 亚洲黄色小视频| 久久只精品国产| 欧美丝袜自拍制服另类| 国产成人精品免费看| 肉丝袜脚交视频一区二区| 国产精品无人区| 欧美岛国在线观看| 欧美最猛黑人xxxxx猛交| 国产成人亚洲综合a∨婷婷图片| 亚洲一区二区四区蜜桃| 国产精品成人免费在线| 精品欧美乱码久久久久久1区2区| 91年精品国产|