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

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

?? usbci.c

?? zlg_usb協議棧是周立功公司開發的一款開放的usb源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:

	return USB_GetData(tmp | USBDAT_SEL_ENDP);
}


/***************************************************************************************************************
** 函數名稱 : USB_SelectClrIntEndpoint()				Name	 : USB_SelectClrIntEndpoint()
** 功能描述 : 選擇端點,并獲取端點信息和清除對應端點的	Function : select the endpoint, and get the endpoint information 
			  中斷												   and clear the interrupt of the correspond endpoint
** 輸	 入 : INT8U endp: 物理端點號					Input	 : INT8U endp: the physical endpoint number
** 輸	 出 : 對應端點的信息							Output	 : the endpoint information
****************************************************************************************************************/
INT8U USB_SelectClrIntEndpoint(INT8U endp)
{
	INT8U i;
	INT32U tmp = (INT32U)((endp + 0x40) << 16);

	USB_SendCmd(tmp | USBCMD_SEL_CLRINT_ENDP, 0);
	i = USB_GetData(tmp | USBDAT_SEL_CLRINT_ENDP);
	
	USBEpIntClr = (0x01 << endp);
	
	return i;
}

/***************************************************************************************************************
** 函數名稱 : USB_SetEndpointStatus()					Name	 : USB_SetEndpointStatus()
** 功能描述 : 設置端點狀態							 	Function : set endpoint status 
** 輸	 入 : INT8U endp    : 物理端點號				Input	 : INT8U endp    : the physical endpoint number
			  INT8U bStalled: 1 - stall 端點		               INT8U bStalled: 1 - stall endpoint
					          0	- unstall 端點					   				   0 - unstall endpoint
** 輸	 出 : 無										Output	 : NULL
****************************************************************************************************************/
void USB_SetEndpointStatus(INT8U endp, INT8U bStalled)
{
	INT32U tmp1 = (INT32U)((endp + 0x40) << 16);
	INT32U tmp2 = (INT32U)(bStalled << 16); 

	USB_SendCmd(tmp1 | USBCMD_SET_ENDP_STATUS, tmp2 | USBDAT_SET_ENDP_STATUS);
}


/***************************************************************************************************************
** 函數名稱 : USB_ClearBuffer()							Name	 : USB_ClearBuffer()
** 功能描述 : 清除OUT端點緩沖區						 	Function : clear the OUT endpoint buffer
** 輸	 入 : 無										Input	 : NULL
** 輸	 出 : 一個字節									Output	 : read a byte
****************************************************************************************************************/
INT8U USB_ClearBuffer(void)
{
	/* no data phase */
	USB_SendCmd(USBCMD_CLEAR_BUFFER, 0);				/* 該命令沒有數據階段 */				
	
	return USB_GetData(USBDAT_CLEAR_BUFFER);
}


/***************************************************************************************************************
** 函數名稱 : USB_ValidBuffer()							Name	 : USB_ClearBuffer()
** 功能描述 : 使能 IN 端點緩沖區						Function : validate the IN endpoint buffer
** 輸	 入 : 無										Input	 : NULL
** 輸	 出 : 無										Output	 : NULL
****************************************************************************************************************/
void USB_ValidBuffer(void)
{
	USB_SendCmd(USBCMD_VALID_BUFFER, 0);
}


		/***********************************************************
			
			端點數據傳輸	 Endpoint Data Transfer
		
		***********************************************************/

/***************************************************************************************************************
** 函數名稱 : USB_ReadEndpoint() 						Name	 : USB_ReadEndpoint()
** 功能描述 : 讀物理端點							    Function : Read data from USB endpoint
** 入口參數 : INT8U endp: 物理端點號   					Input	 : INT8U endp:  the physical endpoint number
		   	  INT8U len : 要讀的字節長度						   INT8U len :  the length that will be read
		      INT8U *buf: 接收緩沖區							   INT8U *buf:  receiving buffer 
** 輸	 出 : 實際讀到的字節數							Output	 : the actual length that be read 
****************************************************************************************************************/
INT8U USB_ReadEndpoint(INT8U endp, INT8U len, INT8U *buf)
{
	INT32U tmp;
	INT32U i,j;
	INT32U reclen;

	/* select logical endpoint and enable read operate */
	USBCtrl = (INT32U)((endp >> 1) << 2) | 0x01;		 /* 選擇邏輯端點并使能讀操作 */
 
 	/* wait for the data ready */
	if((endp % 2 == 0))
	 	while((USBRxPLen & 0x00000C00) ==0);	   		 /* 等待數據就緒 */
	
	/* get the receive length */
	reclen = USBRxPLen & 0x3FF;							 /* 獲取收到的數據的字節長度 */	  			
	if (reclen > len)
		reclen = len; 
	
	/* read data from ep ram */ 		 				 /* 從 EP RAM 中讀取數據 */
	for (i = 0; i < (reclen / 4); i++)					
	{	
		tmp = USBRxData;		
		*buf++ = (INT8U)tmp; 
		*buf++ = (INT8U)(tmp >> 8);
		*buf++ = (INT8U)(tmp >> 16);
		*buf++ = (INT8U)(tmp >> 24);
	}	
		
	j = reclen % 4;
	if (j != 0)
	{ 
		tmp = USBRxData;	

		for(i = 0; i < j; i++)
		   *buf++ = (INT8U)(tmp >> (i << 3));
	}
	
	/* clear the RxENDPKT bit in USBDevIntClr register */
	USBDevIntClr = RxENDPKT; 						 	 /* 清除 RxENDPKT 位 */  
	 
	/* clear the OUT buffer */
	USB_SelectEndpoint(endp);						  	  
	USB_ClearBuffer();									 /* 清除OUT緩沖區 */ 
	
	USBCtrl = 0;	
	return reclen;										 /* 返回實際收到的字節數 */
}


/***************************************************************************************************************
** 函數名稱 : USB_ReadEndpoint() 						Name	 : USB_WriteEndpoint()
** 功能描述 : 向物理端點寫入數據					    Function : Write data to USB endpoint
** 入口參數 : INT8U endp: 物理端點號   					Input	 : INT8U endp:  the physical endpoint number
		   	  INT8U len : 要寫的字節長度						   INT8U len :  the length that will be written
		      INT8U *buf: 發送緩沖區							   INT8U *buf:  sending buffer
** 輸	 出 : 實際寫入的字節數							Output	 : the actual length that have being written
****************************************************************************************************************/
INT8U USB_WriteEndpoint(INT8U endp, INT8U len, INT8U *buf)
{
	INT32U tmp;
	INT32U i,j;

	/* select logical endpoint and enable writing operation */
	tmp = ((endp >> 1) << 2) | 0x02;					  /* 選擇邏輯端點并使能寫操作 */
	USBCtrl = (INT32U)tmp;
	
	/* write the length that will be written into endpoint */
	USBTxPLen = (INT32U)len;							  /* 寫入要發送的數據的字節長度 */
	
	/* write Data into Transmit Data Register */		  /* 寫入要發送的數據到發送數據寄存器 */
	j = len >> 2;
	for(i = 1; i <= j; i++)
	{
		tmp =  (INT32U)*buf++;
		tmp += (INT32U)(*buf++ << 8);
		tmp += (INT32U)(*buf++ << 16);
		tmp += (INT32U)(*buf++ << 24);
		USBTxData = tmp;
		
		while((USBTxPLen & 0x3FF) != len - (i << 2)); 
	}
	
	j = len % 4;
	if (j != 0)
	{
		tmp = 0;	
		for(i = 0; i < j; i++)
		{
		   tmp |= ((INT32U)*buf) << (i << 3);
		   buf++;
 		}
		USBTxData = tmp;
		
		while((USBTxPLen & 0x3FF) != 0);					/* 等待 USBTxPLen 為 0 */
		
	}
	
	if (len != 0)
	{
		while((USBDevIntSt & TxENDPKT) ==0);				/* 等待寫入完成 */
		USBDevIntClr = TxENDPKT;
	}
		
	/* Validate buffer */
	USB_SelectEndpoint(endp);								/* 使能發送緩沖區 */
	USB_ValidBuffer();		
	
	USBCtrl = 0;	
	return len;												/* 返回實際寫入長度 */
}


/************************************************************
** Name	   : disconnect_USB 
** Function: disconnect USB bus
************************************************************/
void disconnect_USB(void)
{
	USB_SetDevStatus(0x00);
}

/************************************************************
** Name	   : connect_USB
** Function: connect USB bus
************************************************************/
void connect_USB(void)
{
	USB_SetDevStatus(0x01);
}

/************************************************************
** Name	   : reconnect_USB
** Function: reconnect USB bus
************************************************************/
void reconnect_USB(void)
{
	INT32U clk_cnt;

	disconnect_USB();							    /* disconnect USB bus */
    for (clk_cnt = 0;clk_cnt<= 0x1FFFF;clk_cnt++);  /* delay */
    
    connect_USB();								    /* connect USB bus */
}

/*******************************************************************************************************
**                            End Of File
********************************************************************************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区二区三区四区| 亚洲美女少妇撒尿| 国产精品青草综合久久久久99| 国产精品久久毛片| 五月综合激情网| 丁香六月久久综合狠狠色| 欧美日韩一区二区在线观看视频| 久久蜜桃av一区精品变态类天堂| 国内成人精品2018免费看| 99精品视频在线免费观看| 日韩一区二区免费在线观看| 亚洲天堂成人网| 激情综合色综合久久综合| 91高清视频在线| 国产精品天干天干在线综合| 日韩精品一级二级| 欧美中文字幕久久| 亚洲日本在线天堂| 粉嫩av一区二区三区在线播放 | 亚洲国产视频一区| 国产盗摄精品一区二区三区在线| 欧美丰满少妇xxxbbb| 一区二区三区欧美| 97se亚洲国产综合自在线观| 久久久欧美精品sm网站| 美女网站色91| 欧美精品丝袜中出| 亚洲成人7777| 在线免费观看一区| 亚洲精品免费一二三区| 91老师国产黑色丝袜在线| 国产精品久99| 91香蕉视频污在线| 亚洲欧美一区二区三区极速播放| 成人黄色片在线观看| 国产日韩视频一区二区三区| 国产在线精品免费| 欧美成人伊人久久综合网| 成人黄色软件下载| 成人免费一区二区三区视频| 成人性生交大片免费看视频在线 | 狠狠色2019综合网| 日韩欧美国产一区二区三区| 免费成人在线观看视频| 91精品国产综合久久香蕉麻豆| 亚洲第一激情av| 欧美日韩性生活| 男女男精品网站| 日韩一区二区三区三四区视频在线观看| 视频一区二区不卡| 91精品福利在线一区二区三区 | 美女精品自拍一二三四| 欧美va日韩va| 国产精品亚洲视频| 国产精品动漫网站| 91激情在线视频| 视频一区在线播放| 欧美tickle裸体挠脚心vk| 国产精品一区免费在线观看| 国产精品美日韩| 91黄色免费看| 丝袜国产日韩另类美女| 精品国产sm最大网站免费看| hitomi一区二区三区精品| 亚洲男人都懂的| 91精品国产欧美一区二区成人| 国产呦萝稀缺另类资源| 亚洲色图欧美偷拍| 91精品免费在线| 高清在线观看日韩| 亚洲成人动漫一区| 久久久久高清精品| 精品视频1区2区3区| 国产一区中文字幕| 亚洲精品美腿丝袜| 精品国内二区三区| 91蜜桃婷婷狠狠久久综合9色| 日韩成人一区二区| 国产精品三级电影| 欧美一区二区黄| 波多野结衣亚洲一区| 亚洲成av人片在www色猫咪| 精品国产乱码久久久久久免费| 91亚洲午夜精品久久久久久| 美女脱光内衣内裤视频久久影院| 亚洲国产精品黑人久久久| 日韩午夜精品视频| 色老头久久综合| 国产成人精品一区二| 日本视频中文字幕一区二区三区| 中文字幕一区二区三区四区不卡| 日韩三级免费观看| 色婷婷久久久综合中文字幕| 国产伦精品一区二区三区免费 | 日本视频一区二区三区| 亚洲女同ⅹxx女同tv| 国产亚洲综合色| 在线播放国产精品二区一二区四区 | 欧美国产欧美综合| 日韩视频永久免费| 欧美性极品少妇| 成人a区在线观看| 国产伦精品一区二区三区在线观看| 日韩在线卡一卡二| 午夜亚洲福利老司机| 亚洲制服丝袜在线| 亚洲啪啪综合av一区二区三区| 日本视频在线一区| 亚洲成人黄色小说| 亚洲高清中文字幕| 一区av在线播放| 欧美三级电影在线看| 91美女在线观看| 97超碰欧美中文字幕| 成人黄动漫网站免费app| 国产米奇在线777精品观看| 久久爱www久久做| 青娱乐精品在线视频| 日韩av二区在线播放| 日本aⅴ精品一区二区三区| 丝袜亚洲另类欧美| 日本伊人色综合网| 免费高清不卡av| 日韩精品一区第一页| 日日摸夜夜添夜夜添国产精品| 午夜日韩在线观看| 欧美aaaaa成人免费观看视频| 秋霞电影网一区二区| 日本不卡123| 麻豆精品视频在线观看视频| 久久er99精品| 国产精品一区二区x88av| 成人一区二区三区中文字幕| 成人av在线播放网站| 一本色道久久综合狠狠躁的推荐| 99re成人在线| 欧美性猛交xxxx乱大交退制版| 欧美理论电影在线| 日韩免费一区二区三区在线播放| 精品动漫一区二区三区在线观看| 2019国产精品| 国产精品国产三级国产aⅴ无密码| 一色屋精品亚洲香蕉网站| 亚洲激情图片qvod| 琪琪久久久久日韩精品| 狠狠色综合色综合网络| 欧美一区二区三区在线电影| 日韩欧美激情一区| 国产精品入口麻豆原神| 亚洲自拍偷拍九九九| 免费欧美高清视频| 成人免费视频视频| 欧美男人的天堂一二区| 精品处破学生在线二十三| 中文字幕av一区二区三区高| 一区二区三区精品| 另类小说一区二区三区| zzijzzij亚洲日本少妇熟睡| 欧美日韩在线直播| 国产欧美日本一区二区三区| 亚洲国产一区二区三区| 国产成人鲁色资源国产91色综| 日本福利一区二区| 久久婷婷一区二区三区| 亚洲一区二区偷拍精品| 国产一区二区免费在线| 欧美在线你懂得| 国产三级精品三级在线专区| 午夜av区久久| 91蜜桃视频在线| 久久综合久久鬼色| 午夜精品久久久久影视| 成人中文字幕合集| 日韩欧美一二三| 亚洲一区在线观看网站| 粉嫩久久99精品久久久久久夜| 91麻豆精品国产91久久久资源速度| 中文字幕欧美区| 另类调教123区| 欧美午夜精品久久久| 国产精品色噜噜| 国产精品一卡二| 欧美成人在线直播| 日韩国产精品大片| 精品视频在线免费看| 亚洲日本中文字幕区| 福利一区二区在线观看| 一区二区三区中文免费| 国产91精品在线观看| 精品国产凹凸成av人网站| 青青草原综合久久大伊人精品优势 | 欧美猛男男办公室激情| 亚洲欧美成aⅴ人在线观看| 成人网在线免费视频| 久久久久国产精品麻豆| 麻豆freexxxx性91精品| 91麻豆精品91久久久久久清纯| 一区二区高清免费观看影视大全| 成人avav影音| 国产精品久久一级|