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

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

?? usbci.c

?? philips系列產品之USB中的HID測試小程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
/****************************************Copyright (c)**************************************************
**                               Guangzou ZLG-MCU Development Co.,LTD.
**                                      graduate school
**                                 http://www.zlgmcu.com
**
**--------------File Info-------------------------------------------------------------------------------
** File name:			USBCI.c
** Last modified Date:	2005-8-6
** Last Version:		V1.0
** Descriptions:		LPC214x USB 接口命令層
**						LPC214x USB Interface command layer
**------------------------------------------------------------------------------------------------------
** Created by:			鄭明遠 		MingYuan Zheng
** Created date:		2005-8-6
** Version:				V1.0
** Descriptions:		初始版本	The original version
**
**------------------------------------------------------------------------------------------------------
** Modified by:			
** Modified date:
** Version:				
** Descriptions:
**
**------------------------------------------------------------------------------------------------------
** Modified by: 
** Modified date:
** Version:	
** Descriptions: 
**
********************************************************************************************************/

#include "config.h"
#include "USBConfig.h"
#include "USBCI.h"


		/********************************************************
		
			操作USB設備寄存器	operate USB device register
		
		*********************************************************/

/***************************************************************************************************************
** 函數名稱 : USB_ConfigEndpoint()						Name	 : USB_ConfigEndpoint()
** 功能描述 : 配置 USB 設備端點						    Function : Configurate the endpoint of the USB
** 輸	 入 : INT8U endp      :  物理端點號	  			Input	 : INT8U endp:  the physical endpoint number
			  INT8U packetsize:  該端點的最大包大小				   INT8U packetsize: the max packet size of the endpoint														   INT8U packetsize: the max packet size of the endpoint	
** 輸	 出 : 無										Output	 : NULL 
****************************************************************************************************************/
void USB_ConfigMaxPaketSize(INT8U endp, INT32U packetsize)
{
	/* or with the existing value of the register */
	USBReEp |= (INT32U)(0x01 << endp);								/* 與原來存在的寄存器值做或操作 */
	
	/* load endpoint index Reg with physical endpoint no. */
	USBEpInd = (INT32U)endp;										/* 選擇端點 */	
	
	/* load the max packet size Register */
	USBMaxPSize = (INT32U)packetsize;								/* 寫入端點最大包長度值 */	
	
	/* check whether the EP_RLSED bit is set */
	while((USBDevIntSt & EP_RLZEDINT) == 0);						/* 等待處理完成 */
	
	/* clear the EP_RLZED bit */
	USBDevIntClr = EP_RLZEDINT;										/* 清除中斷標志位 */	
}


		/*********************************************************
				
				協議引擎命令	Protocol Engine Command 
			
		**********************************************************/

/***************************************************************************************************************
** 函數名稱 : USB_GetData()								Name	 : USB_GetData()
** 功能描述 : 從USB命令數據寄存器中讀取數據			    Function : Read data from USB Command Data Register
** 輸	 入 : INT32U cmd : 命令		  					Input	 : INT32U cmd:  command word
** 輸	 出 : 讀到的一個字節							Output	 : the read byte 
****************************************************************************************************************/
INT8U USB_GetData(INT32U cmd)
{
	/* command */
	USBCmdCode = cmd;									/* 寫入命令字 */
	
	/* wait for CDFULL = 1 */
	while((USBDevIntSt & CDFULL) == 0);					/* 等待USBDevIntSt寄存器的CDFULL位置1*/
	
	/* clear the CDFULL bit */
	USBDevIntClr = CDFULL;								/* 清除CDFULL位 */

	/* get the received data */
	return USBCmdData;									/* 讀取數據 */
}


/***************************************************************************************************************
** 函數名稱 : USB_SendCmd()								Name	 : USB_SendCmd()
** 功能描述 : 向USB命令代碼寄存器寫入命令			    Function : write a command to Command Code Register
** 輸	 入 : INT32U cmd : 命令		  					Input	 : INT32U cmd : command
		   	  INT32U data: 數據 						  		   INT32U data: data 
** 輸	 出 : 無										Output	 : NULL
****************************************************************************************************************/
void USB_SendCmd(INT32U cmd, INT32U data)
{
	/* command */
	USBCmdCode = cmd;									/* 寫入命令字 */
	
	/* wait for CCEMPTY = 1 */
	while((USBDevIntSt & CCEMPTY) == 0);				/* 等待 USBDevIntSt 寄存器的 CCEMPTY 位置1 */
	
	/* clear the CCEMPTY bit */
	USBDevIntClr = CCEMPTY;								/* 清除 CCEMPTY 位*/
	
	if (data != 0)										/* 如果還有數據階段 */
	{
		/* command */
		USBCmdCode = data;								/* 將數據編碼寫入命令代碼寄存器 */
		
		/* wait for CCEMPTY = 1 */
		while((USBDevIntSt & CCEMPTY) == 0);			/* 等待 USBDevIntSt 寄存器的 CCEMPTY 位置1 */
	
		/* clear the CCEMPTY bit */
		USBDevIntClr = CCEMPTY;							/* 清除 CCEMPTY 位*/
	}	
}


	/****************************************************************
	
		LPC214x USB控制器相關命令	Related	Command of LPC214x USB
	
	*****************************************************************/

/***************************************************************************************************************
** 函數名稱 : USB_ReadTestRegister()					Name	 : USB_ReadTestRegister()
** 功能描述 : 讀測試寄存器				  			    Function : Read the Test Register of USB 
** 輸	 入 : 無							 			Input	 : NULL
** 輸	 出 : 測試寄存器的值							Output	 : the value of the Test Register
****************************************************************************************************************/
INT16U USB_ReadTestRegister(void)
{
	INT16U temp;

	USB_SendCmd(USBCMD_RDTEST_REG, 0);	

	temp = USB_GetData(USBDAT_RDTEST_REG);						/* read LSB byte */
	temp += (INT16U)USB_GetData(USBDAT_RDTEST_REG) << 8;		/* read MSB byte */
		
	return temp;
}	


/***************************************************************************************************************
** 函數名稱 : USB_SetAddressEnable()					Name	 : USB_SetAddressEnable()
** 功能描述 : 設置 USB 設備地址			  			    Function : set the USB device address 
** 輸	 入 : INT8U bAddress: 主機分配的地址值 			Input	 : INT8U bAddress:  the address value
		   	  INT8U bEnable:  1 - 使能USB設備 					   INT8U bEnable:  1: enable the USB device   
							  0 - 禁止USB設備                                      0: disable the device
** 輸	 出 : 無										Output	 : NULL
****************************************************************************************************************/
void USB_SetAddressEnable(INT8U bAddress, INT8U bEnable)
{
	if (bEnable)
		bAddress |= 0x80;	

	USB_SendCmd(USBCMD_SET_ADDRESS, ((INT32U)(bAddress << 16)) | USBDAT_SET_ADDRESS);
}	


/***************************************************************************************************************
** 函數名稱 : USB_SetEndpointEnable()					Name	 : USB_SetEndpointEnable()
** 功能描述 : 設置 USB 設備				  			    Function : Configure USB Device
** 輸	 入 : INT8U bEnble: 1 - 器件已配置				Input	 : INT8U bEnble: 1 - have finished configuring
		   	  				0 - 器件未配置         							     0 - have not configured
** 輸	 出 : 無										Output	 : NULL
****************************************************************************************************************/
void USB_SetEndpointEnable(INT8U bEnble)
{
	USB_SendCmd(USBCMD_CONFIG_DEV, ((INT32U)(bEnble << 16)) | USBDAT_CONFIG_DEV);
}


/***************************************************************************************************************
** 函數名稱 : USB_SetMode()								Name	 : USB_SetMode()
** 功能描述 : 設置模式					  			    Function : Set Mode
** 輸	 入 : INT8U value: 模式值						Input	 : INT8U value: the mode value
** 輸	 出 : 無										Output	 : NULL
****************************************************************************************************************/
void USB_SetMode(INT8U value)
{
	USB_SendCmd(USBCMD_SET_MODE, ((INT32U)(value << 16)) | USBDAT_SET_MODE);
}


/***************************************************************************************************************
** 函數名稱 : USB_SetDevStatus()						Name	 : USB_SetDevStatus()
** 功能描述 : 設置設備狀態				  			    Function : Set Device Status
** 輸	 入 : INT8U value: 狀態值						Input	 : INT8U value: the Device Status
** 輸	 出 : 無										Output	 : NULL
****************************************************************************************************************/
void USB_SetDevStatus(INT8U value)
{
	USB_SendCmd(USBCMD_SET_DEVSTATUS, ((INT32U)(value << 16)) | USBDAT_SET_DEVSTATUS);
}


/***************************************************************************************************************
** 函數名稱 : USB_GetDevStatus()						Name	 : USB_GetDevStatus()
** 功能描述 : 獲取設備狀態				  			    Function : Get Device Status
** 輸	 入 : NULL										Input	 : NULL
** 輸	 出 : USB 設備狀態字節							Output	 : the USB device status byte
****************************************************************************************************************/
INT8U USB_GetDevStatus(void)
{
	USB_SendCmd(USBCMD_GET_DEVSTATUS, 0);
	
	return USB_GetData(USBDAT_GET_DEVSTATUS);
}


/***************************************************************************************************************
** 函數名稱 : USB_SelectEndpoint()						Name	 : USB_SelectEndpoint()
** 功能描述 : 選擇端點,并獲取端點信息	  			    Function : select the endpoint, and get the endpoint information
** 輸	 入 : INT8U endp: 物理端點號					Input	 : INT8U endp: the physical endpoint number
** 輸	 出 : 對應端點的信息							Output	 : the endpoint information
****************************************************************************************************************/
INT8U USB_SelectEndpoint(INT8U endp)
{
	INT32U tmp = (INT32U)(endp << 16);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲电影激情视频网站| 91社区在线播放| 久久久久久99精品| 激情深爱一区二区| 2023国产精华国产精品| 美女高潮久久久| 制服丝袜一区二区三区| 亚洲va在线va天堂| 日韩视频中午一区| 欧美a级一区二区| 337p粉嫩大胆噜噜噜噜噜91av| 捆绑调教美女网站视频一区| 欧美精品一区在线观看| 高清国产午夜精品久久久久久| 国产亚洲精久久久久久| av午夜精品一区二区三区| 亚洲免费av高清| 欧美在线看片a免费观看| 一区二区视频在线| 欧美mv和日韩mv国产网站| 国产成人av资源| 久久国产精品72免费观看| 中文字幕+乱码+中文字幕一区| 99久久精品免费| 日本午夜精品一区二区三区电影 | 亚洲一二三专区| 91精品国产91久久综合桃花| 国产精品白丝jk白祙喷水网站| 亚洲欧洲日产国产综合网| 日韩欧美亚洲国产精品字幕久久久 | 亚洲婷婷综合色高清在线| 精品婷婷伊人一区三区三| 日本欧美一区二区在线观看| 亚洲色欲色欲www在线观看| 精品久久人人做人人爰| 6080亚洲精品一区二区| 97精品电影院| 国产精品亚洲一区二区三区在线| 亚洲高清中文字幕| 中文字幕一区二区日韩精品绯色| 欧美一级二级三级乱码| 色综合中文综合网| 麻豆精品蜜桃视频网站| 日日夜夜精品视频免费| 国内精品伊人久久久久影院对白| 国产精品一区久久久久| 国内欧美视频一区二区| 国产综合久久久久久久久久久久| 久草这里只有精品视频| 国产老妇另类xxxxx| 国产精品一区二区三区乱码 | 成人欧美一区二区三区黑人麻豆| 国产偷国产偷精品高清尤物| 欧美激情一区三区| 午夜久久久久久久久久一区二区| 五月婷婷久久丁香| 国产一区二区毛片| 丰满白嫩尤物一区二区| 色婷婷综合久久久久中文一区二区 | 成人黄色av电影| 国产精品久久久久久久裸模| 亚洲一区二区综合| 成人免费视频视频| 日韩精品一区二区三区蜜臀 | 亚洲3atv精品一区二区三区| 国产一区二区三区四| 91麻豆精品久久久久蜜臀| 国产精品白丝在线| 国产一区二区在线观看视频| 处破女av一区二区| 91免费精品国自产拍在线不卡| 日韩精品国产精品| 日韩欧美成人激情| 精品国产91乱码一区二区三区| 欧美视频中文字幕| 91女神在线视频| 欧美视频中文一区二区三区在线观看| 91蜜桃在线免费视频| 精品成人一区二区三区| 国产99久久精品| 美女一区二区三区| 国产乱码字幕精品高清av| 99久久综合狠狠综合久久| 欧美日本国产一区| 久久精品欧美日韩| 亚洲成人av一区二区| 国产精品自拍一区| 欧洲视频一区二区| 久久久久国产精品麻豆| 亚洲一区二区偷拍精品| 国产乱码字幕精品高清av | 欧美日韩综合在线免费观看| 日韩女优av电影| 亚洲男同性恋视频| 激情图区综合网| 欧美日韩精品二区第二页| 欧美国产日本韩| 日韩avvvv在线播放| 99久久综合精品| www国产成人| 日韩精品成人一区二区在线| 91网站在线播放| 亚洲精品在线观看视频| 亚洲成人av福利| 99精品一区二区三区| 精品国产露脸精彩对白| 亚洲电影你懂得| 91蝌蚪porny九色| 久久久99免费| 六月婷婷色综合| 欧美三区在线观看| 一区二区理论电影在线观看| 国产一区999| 亚洲精品一线二线三线| 免费成人在线观看视频| 欧美日韩免费观看一区二区三区| 国产精品久久久久久久久快鸭| 精品在线播放免费| 91精品国产综合久久久久久| 一区二区三区鲁丝不卡| 一本色道久久综合亚洲91| 亚洲国产成人在线| 国产乱子轮精品视频| 777色狠狠一区二区三区| 亚洲午夜成aⅴ人片| 色欧美片视频在线观看 | 日本美女一区二区三区视频| 欧美色爱综合网| 亚洲第一激情av| 欧美高清视频一二三区| 亚洲成a人在线观看| 欧美亚洲综合另类| 一区二区不卡在线播放 | 91丨九色丨黑人外教| 中文字幕制服丝袜成人av| 国产寡妇亲子伦一区二区| 精品国产123| 国产一区二区三区免费看| 亚洲精品在线观看视频| 国产精品一级黄| 国产亚洲视频系列| 国产不卡免费视频| 国产精品视频第一区| 91一区一区三区| 亚洲精品高清视频在线观看| 欧美综合亚洲图片综合区| 一区二区三区高清| 欧美日韩国产系列| 日韩极品在线观看| 精品91自产拍在线观看一区| 国内精品伊人久久久久av影院 | 欧美肥胖老妇做爰| 青娱乐精品视频| 久久蜜桃av一区二区天堂| 国产馆精品极品| 亚洲精品亚洲人成人网| 欧美日韩久久久| 毛片av中文字幕一区二区| 久久久综合视频| 99久久亚洲一区二区三区青草| 最新欧美精品一区二区三区| 在线亚洲高清视频| 免费高清在线视频一区·| 国产亚洲一二三区| 色狠狠桃花综合| 日本在线不卡视频| 国产亲近乱来精品视频| 欧洲精品视频在线观看| 毛片一区二区三区| 亚洲欧洲av另类| 91精品欧美福利在线观看| 国内一区二区视频| 国产精品乱码久久久久久| 欧美性猛交xxxx乱大交退制版| 日本va欧美va瓶| 国产欧美一二三区| 欧美性受xxxx| 精品一区二区三区免费播放 | 久久综合狠狠综合| av成人老司机| 麻豆一区二区三区| 最新国产精品久久精品| 在线播放91灌醉迷j高跟美女| 国产精品456| 午夜伊人狠狠久久| 国产精品久久久久久久久免费桃花 | 中文字幕在线不卡视频| 欧美日韩一区二区在线观看| 国产乱色国产精品免费视频| 亚洲国产成人精品视频| 久久久久久久久久久电影| 欧美性感一区二区三区| 国产成人丝袜美腿| 视频一区免费在线观看| 国产精品久久久久影院老司| 日韩欧美综合一区| 在线观看免费视频综合| 国产精品一区二区久激情瑜伽 | 欧美一区二区成人| 色婷婷综合激情|