亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
九九视频精品免费| 国产成人亚洲综合a∨婷婷| 日韩精品欧美精品| 粉嫩av一区二区三区在线播放 | 国产欧美日本一区二区三区| 亚洲免费av在线| 久草热8精品视频在线观看| 91视频国产资源| 久久精品人人做人人爽97| 午夜精品福利在线| 92精品国产成人观看免费| 亚洲精品一线二线三线无人区| 亚洲欧美激情小说另类| 成人做爰69片免费看网站| 欧美一区二区三区的| 亚洲午夜精品久久久久久久久| 成人福利视频网站| 欧美经典一区二区三区| 激情国产一区二区| 欧美老年两性高潮| 亚洲成在线观看| 91成人免费在线视频| 中文字幕精品一区| 豆国产96在线|亚洲| 久久夜色精品国产噜噜av| 日本vs亚洲vs韩国一区三区二区 | 综合久久综合久久| 大胆欧美人体老妇| 中文字幕视频一区| 91丝袜国产在线播放| 亚洲欧美影音先锋| 91美女片黄在线| 亚洲色图19p| 91国产成人在线| 亚洲国产va精品久久久不卡综合| 在线精品视频免费播放| 一区二区三区在线影院| 在线亚洲高清视频| 亚洲午夜一区二区三区| 538在线一区二区精品国产| 日韩精品国产欧美| 精品久久99ma| 国产+成+人+亚洲欧洲自线| 欧美国产乱子伦| 一本一道综合狠狠老| 亚洲免费在线电影| 欧美猛男gaygay网站| 麻豆一区二区99久久久久| 亚洲精品在线电影| 99久久精品免费观看| 一区二区三区蜜桃| 日韩一本二本av| 懂色av中文一区二区三区| 亚洲四区在线观看| 717成人午夜免费福利电影| 韩国女主播一区| 亚洲日本在线观看| 91精品国产综合久久久蜜臀图片| 极品少妇一区二区三区精品视频 | 国内精品久久久久影院薰衣草 | 色噜噜久久综合| 五月开心婷婷久久| 久久久蜜桃精品| 91久久精品一区二区| 免费成人美女在线观看.| 中文字幕不卡在线观看| 欧美性一二三区| 国产美女主播视频一区| 亚洲精品中文字幕在线观看| 欧美一卡二卡三卡| 成人h版在线观看| 奇米色一区二区| 亚洲日穴在线视频| 久久久亚洲高清| 欧美视频一二三区| 粉嫩av一区二区三区粉嫩| 爽爽淫人综合网网站| 亚洲国产精品成人综合| 欧美精三区欧美精三区| 成人美女在线观看| 久久国产麻豆精品| 亚洲成人一二三| 国产精品乱码妇女bbbb| 日韩三级中文字幕| 欧洲日韩一区二区三区| 国产成人av电影免费在线观看| 日日欢夜夜爽一区| 亚洲另类中文字| 国产精品麻豆久久久| 精品免费一区二区三区| 精品视频一区 二区 三区| 成人性视频免费网站| 狠狠久久亚洲欧美| 全部av―极品视觉盛宴亚洲| 亚洲美女淫视频| 中日韩免费视频中文字幕| 精品国产污网站| 日韩一级黄色大片| 91国偷自产一区二区开放时间| 成人蜜臀av电影| 成人免费毛片片v| 国产精品18久久久久久久网站| 免费国产亚洲视频| 日韩成人一区二区三区在线观看| 一区二区三区精密机械公司| 国产精品成人免费精品自在线观看| 欧美精品一区二区三区很污很色的 | 日韩经典中文字幕一区| 亚洲一区二区三区免费视频| 亚洲精品一卡二卡| 亚洲国产三级在线| 性欧美疯狂xxxxbbbb| 亚洲自拍偷拍网站| 午夜精品久久久久影视| 视频一区视频二区中文| 日韩影院免费视频| 美腿丝袜一区二区三区| 精品在线一区二区| 国产一区二区三区四| 国产精品香蕉一区二区三区| 国产精品一区二区在线播放| 国产成人自拍在线| 成人18精品视频| 一本到三区不卡视频| 在线国产电影不卡| 欧美日韩美女一区二区| 欧美一区二区三区四区高清| 日韩欧美一级二级三级久久久| 日韩免费视频一区| 国产欧美日本一区二区三区| 亚洲视频在线一区观看| 亚洲国产成人av| 日本不卡一区二区三区| 国产福利一区二区| 91麻豆国产精品久久| 欧美伊人精品成人久久综合97| 欧美精品1区2区3区| 久久久国产精品麻豆| 亚洲欧美日韩国产另类专区| 亚洲国产视频a| 国产成人亚洲综合色影视| 一本久道久久综合中文字幕| 91麻豆精品国产91久久久更新时间| 精品国产不卡一区二区三区| 欧美激情综合五月色丁香| 亚洲第一福利一区| 国产高清久久久| 欧美日韩国产片| 国产日韩欧美制服另类| 亚洲一区二区影院| 国产精品综合一区二区三区| 色偷偷成人一区二区三区91| 欧美一级在线观看| 自拍偷拍亚洲综合| 久久精品国产久精国产爱| 99久久夜色精品国产网站| 欧美二区三区的天堂| 国产精品传媒在线| 免费在线观看一区二区三区| 成人动漫视频在线| 精品国产凹凸成av人网站| 亚洲一区二区三区在线播放| 国产精品一区二区久久不卡| 欧美色窝79yyyycom| 中文字幕乱码亚洲精品一区| 日本v片在线高清不卡在线观看| 99久久免费国产| 久久综合成人精品亚洲另类欧美| 一区二区在线观看视频在线观看| 国产老肥熟一区二区三区| 欧美日韩黄色一区二区| 中文字幕中文字幕在线一区| 极品少妇一区二区| 日韩一级二级三级| 午夜久久久久久久久| 97se亚洲国产综合在线| 国产亚洲精品精华液| 另类小说欧美激情| 欧美精品第一页| 亚洲制服丝袜av| 91无套直看片红桃| 一区在线观看免费| 国产不卡高清在线观看视频| 欧美电影免费观看高清完整版在线 | 亚洲综合自拍偷拍| av一区二区三区| 国产日韩综合av| 精品无人码麻豆乱码1区2区| 制服丝袜日韩国产| 亚洲高清视频在线| 欧美日韩一二区| 亚洲国产精品影院| 欧美日韩免费一区二区三区视频| 国产精品初高中害羞小美女文| 国产成人精品综合在线观看| www亚洲一区| 国产精品综合二区| 国产亚洲va综合人人澡精品| 国产真实乱子伦精品视频| 精品国产乱码久久久久久夜甘婷婷 |