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

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

?? usbci.c

?? philips系列產品之USB中的HID測試小程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
	USB_SendCmd(tmp | USBCMD_SEL_ENDP, 0);

	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 & 0x1FF;							 /* 獲取收到的數據的字節長度 */	  			
	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緩沖區 */ 
	
	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();		
	
	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久久在免费线 | 日韩美女在线视频| 国产亚洲欧美日韩日本| 一区二区三区在线高清| 激情文学综合网| 欧美日韩高清在线播放| 1024成人网色www| 国产一区二区三区四区五区美女| 欧美高清视频www夜色资源网| 国产精品乱码人人做人人爱| 久久er精品视频| 欧美二区乱c少妇| 亚洲综合成人在线视频| av色综合久久天堂av综合| 精品人伦一区二区色婷婷| 亚洲国产精品久久久男人的天堂| 99久久99久久久精品齐齐| 国产午夜精品一区二区三区四区| 视频一区欧美精品| 欧美视频在线一区| 亚洲美女视频在线| youjizz久久| 国产精品少妇自拍| 盗摄精品av一区二区三区| 久久久噜噜噜久久人人看 | 国产精品白丝av| 亚洲精品在线三区| 国精产品一区一区三区mba桃花| 69精品人人人人| 午夜久久久久久久久| 欧美特级限制片免费在线观看| 亚洲视频资源在线| 91在线免费看| 亚洲免费电影在线| 欧美综合一区二区| 图片区小说区区亚洲影院| 在线观看日产精品| 亚洲一区二区3| 欧美肥大bbwbbw高潮| 青青草97国产精品免费观看 | 蜜桃视频在线观看一区| 欧美电影影音先锋| 另类欧美日韩国产在线| 久久久久久久久久久久久女国产乱| 精品一二三四区| 国产欧美日产一区| 91在线一区二区| 午夜日韩在线观看| 欧美成人精品福利| 夫妻av一区二区| 一区二区三区四区五区视频在线观看 | 日韩电影在线免费观看| 欧美一区二区三区视频免费| 久久99国产精品免费网站| 久久免费看少妇高潮| 91丨porny丨首页| 五月天激情综合| 26uuu国产在线精品一区二区| 东方欧美亚洲色图在线| 综合电影一区二区三区 | 丝袜美腿亚洲一区| 久久久www成人免费毛片麻豆| 99精品在线免费| 亚洲成国产人片在线观看| 日韩欧美中文字幕精品| 国产**成人网毛片九色| 午夜激情久久久| 国产精品色哟哟| 在线综合+亚洲+欧美中文字幕| 国产福利精品导航| 亚洲国产cao| 国产免费成人在线视频| 欧美视频三区在线播放| 国产.欧美.日韩| 天堂午夜影视日韩欧美一区二区| 久久九九全国免费| 欧美日本在线视频| 成人激情av网| 久久国产人妖系列| 中文字幕一区二区日韩精品绯色| 欧美一区二区三区小说| 97久久精品人人做人人爽50路| 青青草国产精品97视觉盛宴| 亚洲欧美日本在线| 久久久亚洲精品一区二区三区| 欧美在线一二三四区| 国产999精品久久| 日韩成人精品视频| 亚洲精品国产无天堂网2021| 久久综合国产精品| 日韩欧美成人激情| 欧美日韩小视频| 91美女蜜桃在线| 懂色av一区二区三区免费观看| 麻豆成人91精品二区三区| 亚洲综合在线第一页| 中文字幕一区在线观看| 国产色一区二区| 国产日韩欧美麻豆| 7799精品视频| 欧美日韩在线播放一区| 91首页免费视频| 成人久久久精品乱码一区二区三区| 美国毛片一区二区三区| 五月开心婷婷久久| 婷婷综合在线观看| 亚洲一区二区av在线| 亚洲一区在线免费观看| 一区二区三区中文字幕精品精品| 中文字幕欧美日韩一区| 欧美韩国日本一区| 国产精品午夜久久| 国产精品久久久久一区| 国产精品卡一卡二| 国产精品免费视频网站| 国产精品青草久久| 国产欧美综合在线观看第十页| 久久九九影视网| 国产精品三级av在线播放| 久久久www免费人成精品| 国产免费成人在线视频| 欧美激情在线观看视频免费| 国产亚洲欧美色| 欧美激情一区二区在线| 17c精品麻豆一区二区免费| 夜夜嗨av一区二区三区网页| 亚洲综合一区在线| 蜜桃视频免费观看一区| 国产精品一区二区久久精品爱涩 | 欧美国产视频在线| 国产精品久久久一本精品| 国产精品情趣视频| 亚洲精品日产精品乱码不卡| 亚洲综合偷拍欧美一区色| 日日夜夜精品视频免费| 麻豆精品一二三| 成人激情黄色小说| 欧美日本精品一区二区三区| 日韩亚洲欧美高清| 中文在线免费一区三区高中清不卡| 国产精品乱子久久久久| 午夜精品久久久久久久蜜桃app| 蜜桃久久av一区| 99精品国产视频| 日韩三级视频中文字幕| 国产日韩欧美a| 亚洲综合免费观看高清完整版 | 五月激情综合色| 日本电影欧美片| 91精品国产色综合久久不卡电影| 久久综合久久综合久久综合| 亚洲人成7777| 黄页网站大全一区二区| 在线亚洲免费视频| 久久老女人爱爱| 亚洲成精国产精品女| 成人一区二区视频| 91麻豆精品国产91久久久久久| 国产日韩精品一区| 日韩在线播放一区二区| www.亚洲色图.com| 日韩免费电影网站| 亚洲国产欧美在线| 成人av动漫网站| 久久久国产午夜精品 | 99精品国产99久久久久久白柏| 欧美精品日韩一区| 亚洲欧美日韩国产中文在线| 国产在线播放一区三区四| 欧美精品久久一区二区三区| 亚洲色图在线播放| 国产高清不卡一区| 精品日韩99亚洲| 日韩国产高清在线| 欧洲精品一区二区三区在线观看| 亚洲国产激情av| 精品亚洲成a人在线观看 | 蜜臀精品一区二区三区在线观看| 色呦呦日韩精品| 国产精品麻豆久久久| 韩国女主播一区二区三区| 51精品久久久久久久蜜臀| 亚洲激情图片qvod| 99国产精品久久久久久久久久久| 久久久久久久电影| 国产一区999| 久久婷婷成人综合色| 麻豆中文一区二区| 日韩久久久精品| 蜜臀久久久99精品久久久久久| 4438x亚洲最大成人网| 亚洲自拍偷拍欧美| 91成人免费网站| 亚洲一区在线电影| 在线观看免费视频综合| 亚洲香肠在线观看| 欧美美女bb生活片| 日韩影视精彩在线| 欧美电影免费观看高清完整版在线| 日本一不卡视频|