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

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

?? usbci.c

?? zlg_usb協議棧是周立功公司開發的一款開放的usb源代碼
?? 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:	2007-07-09
** Last Version:		V1.0
** Descriptions:		LPC23xx USB 接口命令層
**						LPC23xx USB Interface command layer
**------------------------------------------------------------------------------------------------------
** Created by:			鄭明遠 		MingYuan Zheng
** Created date:		2007-07-09
** 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 位*/
	}	
}


	/****************************************************************
	
		LPC23xx USB控制器相關命令	Related	Command of LPC23xx 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);

	USB_SendCmd(tmp | USBCMD_SEL_ENDP, 0);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产激情一区二区三区四区| 亚洲三级电影全部在线观看高清| 亚洲网友自拍偷拍| 欧美在线色视频| 亚洲成人免费观看| 91精品国产综合久久精品| 麻豆91在线播放免费| 久久这里只有精品首页| 高清在线成人网| 亚洲欧美一区二区久久| 欧美三日本三级三级在线播放| 亚洲网友自拍偷拍| 欧美tickling网站挠脚心| 国产精品一区二区久激情瑜伽| 中文字幕不卡在线| 欧美在线短视频| 蓝色福利精品导航| 欧美国产日本韩| 欧美图区在线视频| 国产一区二区在线看| 国产精品你懂的在线| 欧美性极品少妇| 国产九色精品成人porny | 精品电影一区二区三区| 色94色欧美sute亚洲线路一久 | 中文字幕二三区不卡| 91国模大尺度私拍在线视频| 日韩二区在线观看| 欧美激情一区二区在线| 欧美日本国产一区| 国产99久久久国产精品潘金| 亚洲嫩草精品久久| 日韩免费视频一区| 色综合天天综合| 精品亚洲成av人在线观看| 自拍偷拍欧美精品| 久久久久久久一区| 欧美日韩国产一级| www.亚洲色图| 国产又黄又大久久| 亚洲成人在线网站| 中文字幕日韩精品一区 | 欧美一区二区三区视频在线观看| 国产一区二区三区四| 午夜影院久久久| 国产精品久久免费看| 日韩欧美在线网站| 欧美写真视频网站| 不卡的电影网站| 久久国产精品99精品国产 | 日欧美一区二区| 成人欧美一区二区三区| 亚洲精品一线二线三线| 欧美久久久久久久久中文字幕| 成人一级片在线观看| 久久99国产乱子伦精品免费| 亚洲一区二区免费视频| 亚洲天堂久久久久久久| 国产欧美一区二区精品秋霞影院| 日韩欧美综合在线| 717成人午夜免费福利电影| 91黄视频在线| 91首页免费视频| 99热这里都是精品| 成人sese在线| 成人深夜福利app| 国产精品一区三区| 国产一区二区三区观看| 久久99久久精品欧美| 日韩精品亚洲一区| 日日摸夜夜添夜夜添国产精品| 一区二区三区欧美在线观看| 亚洲欧美激情在线| 自拍偷在线精品自拍偷无码专区| 国产精品久久毛片a| 国产欧美精品日韩区二区麻豆天美| 日韩欧美久久一区| 精品三级在线观看| 久久一区二区三区四区| 欧美精品一区二区三区高清aⅴ| 日韩免费看的电影| 精品福利一二区| 久久精品一区四区| 国产精品人成在线观看免费| 国产亚洲精品bt天堂精选| 国产亚洲精品中文字幕| 中文字幕在线免费不卡| 亚洲人成人一区二区在线观看 | 欧美成人艳星乳罩| 日韩免费一区二区| 久久蜜桃av一区精品变态类天堂| 久久一日本道色综合| 中文字幕av在线一区二区三区| 国产精品你懂的在线| 亚洲激情欧美激情| 日韩成人免费在线| 国产一区二区伦理| 91小视频免费观看| 欧美日韩视频在线一区二区| 欧美高清视频在线高清观看mv色露露十八| 欧美日韩激情在线| 精品国产3级a| 亚洲欧美在线视频观看| 亚洲午夜精品一区二区三区他趣| 爽好久久久欧美精品| 久久99九九99精品| av中文字幕不卡| 欧美美女一区二区在线观看| 日韩欧美二区三区| 中文字幕亚洲电影| 日韩黄色免费网站| 国产suv一区二区三区88区| 一本色道久久综合亚洲aⅴ蜜桃| 欧美三级日韩三级| 久久精品欧美日韩精品| 亚洲在线中文字幕| 国产乱理伦片在线观看夜一区| 91在线国产观看| 欧美www视频| 亚洲激情成人在线| 国内精品久久久久影院色| 色先锋资源久久综合| 精品久久久久久久人人人人传媒 | 免费av网站大全久久| 丁香六月久久综合狠狠色| 欧美丝袜丝交足nylons图片| 国产亚洲午夜高清国产拍精品 | 欧美三级一区二区| 国产欧美视频在线观看| 天堂久久久久va久久久久| 成人av网站免费观看| 在线成人av网站| 1000精品久久久久久久久| 久久国产综合精品| 欧洲激情一区二区| 国产精品毛片久久久久久| 日本va欧美va欧美va精品| 91亚洲男人天堂| 国产欧美日韩亚州综合| 免费欧美在线视频| 欧美影院午夜播放| 国产精品成人一区二区艾草| 成人妖精视频yjsp地址| 日韩欧美成人激情| 亚洲成a人片综合在线| 91网站在线观看视频| 久久久久久毛片| 麻豆91在线看| 91精品国模一区二区三区| 亚洲综合男人的天堂| 91香蕉视频在线| 中文av一区二区| 国产福利不卡视频| 精品国产电影一区二区| 免费在线一区观看| 在线电影一区二区三区| 亚洲综合另类小说| 91官网在线观看| 亚洲色图19p| 99re这里只有精品视频首页| 欧美国产精品劲爆| 国产乱淫av一区二区三区| 欧美大度的电影原声| 免费高清在线一区| 欧美一区二区视频观看视频| 视频一区视频二区中文字幕| 欧美日韩国产片| 亚洲1区2区3区视频| 欧美日韩高清一区| 日韩影院精彩在线| 欧美精品777| 久久国产精品露脸对白| 日韩欧美一区中文| 精品在线观看视频| 久久综合久久综合久久综合| 韩国一区二区在线观看| 久久亚洲捆绑美女| 国产精品白丝jk黑袜喷水| 久久精品视频一区二区| 国产高清不卡二三区| 国产精品久久久久久一区二区三区| 成人毛片在线观看| 国产精品一二一区| 久久免费午夜影院| 9人人澡人人爽人人精品| 亚洲日本丝袜连裤袜办公室| 日本高清不卡视频| 亚洲va国产天堂va久久en| 91精品国产综合久久精品| 狂野欧美性猛交blacked| 国产亚洲一本大道中文在线| 成人av在线一区二区三区| 一区二区免费在线| 日韩一区二区三区三四区视频在线观看 | 成人av电影免费观看| 亚洲狠狠丁香婷婷综合久久久| 欧美色大人视频| 国产在线播放一区| 亚洲黄色小视频| 日韩一区二区在线观看视频|