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

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

?? usb_prop.c

?? STR912的usb例程
?? C
字號:
/******************** (C) COPYRIGHT 2006 STMicroelectronics ********************
* File Name          : usb_prop.c
* Author             : MCD Application Team
* Date First Issued  : 2/6/2006
* Description        : All processings related to Mouse device
********************************************************************************
* History:
  2/6/2006 : V0.1
********************************************************************************
* THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
* CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
*******************************************************************************/
#include "91x_lib.h"
#include "USB_lib.h"
#include "USB_conf.h"
#include "USB_prop.h"
#include "USB_desc.h"
#include "USB_pwr.h"

BYTE *Mouse_GetHidDescriptor(WORD Length);
BYTE *Mouse_GetReportDescriptor(WORD Length);
BYTE *Mouse_GetProtocolValue(WORD Length);
RESULT Mouse_SetProtocol(void);
BYTE ProtocolValue;

/*  Structures initializations */
DEVICE Device_Table = {
/*	ENDP0, */
	EP_NUM,
	1
};

DEVICE_PROP Device_Property = {
	MOUSE_init,
	MOUSE_Reset,
	MOUSE_Status_In,
	MOUSE_Status_Out,
	MOUSE_Data_Setup,
	MOUSE_NoData_Setup,
	MOUSE_Get_Interface_Setting,
	MOUSE_GetDeviceDescriptor,
	MOUSE_GetConfigDescriptor,
	MOUSE_GetStringDescriptor,
	/*MOUSE_EP0Buffer*/0,
	STD_MAXPACKETSIZE
};


void MOUSE_init()
{
	DEVICE_INFO *pInfo = &Device_Info;
	pInfo->Current_Configuration = 0;
	/* Connect the device */
	PowerOn();
	/* USB interrupts initialization */
	_SetISTR(0);               /* clear pending interrupts */
	wInterrupt_Mask = IMR_MSK;
	_SetCNTR(wInterrupt_Mask); /* set interrupts mask */
  pInfo->Current_Feature = 0x40; /* self-powered, Remote_Wakeup disable*/
  /* Wait until device is configured */
  while (pInfo->Current_Configuration == 0) NOP_Process();
  bDeviceState = CONFIGURED;
} /* MOUSE_init() */


void MOUSE_Reset()
{
	/* Set MOUSE_DEVICE as not configured */
	Device_Info.Current_Configuration = 0;
	/*correction AS default interface*/
	Device_Info.Current_Interface = 0;/*the default Interface*/
	SetBTABLE(BTABLE_ADDRESS);
	/* Initialize Endpoint 0 */
	SetEPType(ENDP0, EP_CONTROL);
	SetEPTxStatus(ENDP0, EP_TX_STALL/*EP_TX_NAK*/);
	SetEPRxAddr(ENDP0, ENDP0_RXADDR);
	SetEPRxCount(ENDP0,0x40/*STD_MAXPACKETSIZE*/);
	SetEPTxAddr(ENDP0, ENDP0_TXADDR);
	SetEPTxCount(ENDP0,0x40 /* STD_MAXPACKETSIZE*/);
	SetEPAddress(ENDP0,0);
	Clear_Status_Out(ENDP0);
	SetEPRxValid(ENDP0);

	/* Initialize Endpoint 1 */
	SetEPType(ENDP1, EP_INTERRUPT);
	SetEPTxAddr(ENDP1, ENDP1_TXADDR);
  SetEPTxCount(ENDP1,4);
	SetEPRxStatus(ENDP1, EP_RX_DIS);
	SetEPTxStatus(ENDP1, EP_TX_NAK);
	SetEPAddress(ENDP1,1);
	/* Set this device to response on default address */
	SetDeviceAddress(0);

} /* MOUSE_Reset() */


RESULT MOUSE_Data_Setup(BYTE RequestNo)
{
	DEVICE_INFO		*pInfo = &Device_Info;
	BYTE	*(*CopyRoutine)(WORD);
	BYTE *pbLen;
	WORD wLen;
	
	CopyRoutine = NULL;
	if (RequestNo == GET_DESCRIPTOR && Type_Recipient == (STANDARD_REQUEST | INTERFACE_RECIPIENT))
	{
		if (pInfo->USBwIndex0 != 0)
		return UNSUPPORT;
		switch (pInfo->USBwValue1)
		{
			case HID_DESCRIPTOR:
			CopyRoutine = Mouse_GetHidDescriptor;
			break;
			
			case REPORT_DESCRIPTOR:
			CopyRoutine = Mouse_GetReportDescriptor;
			break;
			default: return UNSUPPORT;
		}
	} /* End of GET_DESCRIPTOR */
	else
	
	/*** GET_IDLE/GET_PROTOCOL ***/
	if (Type_Recipient == (CLASS_REQUEST | INTERFACE_RECIPIENT))
	{
		if (RequestNo == GET_IDLE)
		{
			/*return the idle time*/
			/*not supported here*/
			return UNSUPPORT;
		}
		else
		if (RequestNo == GET_PROTOCOL)
		{
			CopyRoutine = Mouse_GetProtocolValue;
		}
		
		else return UNSUPPORT;
	}
	else return UNSUPPORT;
	
	if (CopyRoutine == NULL) return UNSUPPORT;
	pInfo->Ctrl_Info.CopyData = CopyRoutine;
	pInfo->Ctrl_Info.Usb_wOffset = 0;
	pbLen = (*CopyRoutine)(0);
	wLen = (WORD)((DWORD)pbLen);
	pInfo->Ctrl_Info.Usb_wLength = wLen;
	return USB_SUCCESS;
} /* MOUSE_Data_Setup */

RESULT MOUSE_NoData_Setup(BYTE RequestNo)
{
	DEVICE_INFO		*pInfo = &Device_Info;
	if (Type_Recipient == (CLASS_REQUEST | INTERFACE_RECIPIENT))
	{
		if (RequestNo == SET_IDLE)
		{
			/*set the idle time*/
			/*not supported here*/
			return UNSUPPORT;
		}
	   else if (RequestNo == SET_PROTOCOL) {
	   return Mouse_SetProtocol();

	   }
       else return UNSUPPORT;
	}

	return UNSUPPORT;

} /* MOUSE_NoData_Setup */


ONE_DESCRIPTOR Device_Descriptor = {
	(BYTE*)MOUSE_DeviceDescriptor,
	MOUSE_SIZ_DEVICE_DESC
};

BYTE *MOUSE_GetDeviceDescriptor(WORD Length)
{
	return Standard_GetDescriptorData( Length, &Device_Descriptor );
}

ONE_DESCRIPTOR Config_Descriptor = {
	(BYTE*)MOUSE_ConfigDescriptor,
	MOUSE_SIZ_CONFIG_DESC
};

BYTE *MOUSE_GetConfigDescriptor(WORD Length)
{
	return Standard_GetDescriptorData( Length, &Config_Descriptor );
}

ONE_DESCRIPTOR String_Descriptor = {
	(BYTE*)MOUSE_StringDescriptor,
	MOUSE_SIZ_STRING_DESC
};

BYTE *MOUSE_GetStringDescriptor(WORD Length)
{
	return Standard_GetStringDescriptor( Length, &String_Descriptor );
}


ONE_DESCRIPTOR Mouse_Hid_Descriptor = {
	(BYTE *)MOUSE_ConfigDescriptor + MOUSE_OFF_HID_DESC,
	MOUSE_SIZ_HID_DESC
};

BYTE *Mouse_GetHidDescriptor(WORD Length)
{
	return Standard_GetDescriptorData( Length, &Mouse_Hid_Descriptor );
}

ONE_DESCRIPTOR Mouse_Report_Descriptor = {
	(BYTE *)MOUSE_ReportDescriptor,
	MOUSE_SIZ_REPORT_DESC
};

BYTE *Mouse_GetReportDescriptor(WORD Length)
{
	return Standard_GetDescriptorData( Length, &Mouse_Report_Descriptor );
}

BYTE *Mouse_GetProtocolValue(WORD Length)
{
 	return (BYTE *)&ProtocolValue;
}

RESULT Mouse_SetProtocol(void)
{
	BYTE wValue0 = pInformation->USBwValue0;
	ProtocolValue = wValue0;
	return USB_SUCCESS;
}

RESULT MOUSE_Get_Interface_Setting(BYTE Interface,BYTE AlternateSetting)
{
	if(AlternateSetting >0) return UNSUPPORT; /*in this application we don't have AlternateSetting*/
	else if(Interface > 0) return UNSUPPORT;  /*in this application we have only 1 interfaces*/
	return USB_SUCCESS;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av不卡在线观看| 国产一区二三区好的| 色综合天天综合色综合av| 国产精品久久综合| av激情成人网| 亚洲一区免费观看| 911精品产国品一二三产区| 青草av.久久免费一区| 日韩午夜电影av| 国产精品夜夜嗨| 国产精品久久二区二区| 91久久久免费一区二区| 亚洲成在线观看| 欧美一级欧美三级| 国产经典欧美精品| 亚洲免费成人av| 777欧美精品| 国产高清在线观看免费不卡| 国产精品美女视频| 欧美在线看片a免费观看| 日本强好片久久久久久aaa| 精品久久久久一区| jiyouzz国产精品久久| 亚洲成人午夜电影| 久久香蕉国产线看观看99| 成人黄色av电影| 性久久久久久久| 久久久精品影视| 欧美最猛性xxxxx直播| 激情综合网激情| 中文字幕精品在线不卡| 欧美人xxxx| 国产91富婆露脸刺激对白| 亚洲地区一二三色| 国产精品无圣光一区二区| 精品视频999| 国产成人精品一区二| 亚洲aⅴ怡春院| 国产欧美一区二区三区在线老狼| 在线观看亚洲一区| 国产91精品精华液一区二区三区| 亚洲高清在线精品| 国产精品白丝在线| 欧美成人一区二区三区在线观看 | 日韩欧美精品在线视频| a4yy欧美一区二区三区| 久久成人久久爱| 亚洲不卡一区二区三区| 亚洲丝袜自拍清纯另类| 精品国产乱码久久久久久浪潮| 日本福利一区二区| 成人黄色电影在线 | 日韩视频在线永久播放| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 精品中文av资源站在线观看| 亚洲一区二区不卡免费| 国产精品免费人成网站| 2019国产精品| 欧美一区二区播放| 欧美午夜精品久久久久久孕妇 | 成人精品小蝌蚪| 国产真实乱偷精品视频免| 日本女人一区二区三区| 亚洲综合男人的天堂| 亚洲视频狠狠干| 一区免费观看视频| 中文字幕亚洲区| 国产精品天天看| 国产欧美一区二区精品秋霞影院 | 一本色道a无线码一区v| 成人福利在线看| 国产91精品一区二区麻豆网站 | 一区二区高清免费观看影视大全 | 国产精品久久久久aaaa| 国产人成一区二区三区影院| 精品日韩在线观看| 精品国产一区久久| 26uuu国产在线精品一区二区| 日韩欧美视频在线| 欧美成人精品3d动漫h| 精品国产一区a| 久久久久亚洲综合| 国产农村妇女毛片精品久久麻豆 | 国产一区二区三区精品视频| 久久国产精品72免费观看| 蜜臀av性久久久久av蜜臀妖精| 日韩成人伦理电影在线观看| 免费观看一级欧美片| 久久精品国产秦先生| 国产美女精品在线| 成人动漫中文字幕| 91在线观看下载| 在线免费精品视频| 日韩欧美资源站| 国产亚洲精品aa| 亚洲视频资源在线| 亚洲www啪成人一区二区麻豆| 亚洲成精国产精品女| 开心九九激情九九欧美日韩精美视频电影| 蜜桃av一区二区三区电影| 国产剧情一区二区三区| 91网站最新网址| 欧美日韩亚洲另类| 26uuu色噜噜精品一区二区| 国产精品久久久久久妇女6080| 亚洲欧美二区三区| 六月丁香婷婷久久| 国产91色综合久久免费分享| 日本伦理一区二区| 日韩欧美你懂的| 日韩一区欧美小说| 日韩高清一级片| 国产成人av电影| 在线观看欧美黄色| 久久综合色播五月| 一区二区三区不卡视频| 韩国精品一区二区| 在线看国产日韩| 欧美精品一区二区三区蜜臀 | 欧美成人综合网站| 亚洲日本在线a| 蜜桃av一区二区三区电影| 91欧美一区二区| 欧美大片国产精品| 一区二区高清视频在线观看| 美日韩一区二区三区| 91久久奴性调教| www久久精品| 亚洲电影视频在线| 99精品视频在线观看| 日韩网站在线看片你懂的| 一区二区三区在线观看视频| 国产自产2019最新不卡| 欧美午夜一区二区三区免费大片| 国产亚洲精品免费| 免费的国产精品| 一本久久a久久精品亚洲| 日韩精品一区二区三区蜜臀| 一区二区三区在线观看动漫| 国产呦萝稀缺另类资源| 91 com成人网| 亚洲黄色性网站| 成人av在线资源网| 久久久亚洲综合| 日韩av一级片| 欧美日韩国产一区| 一区二区三区四区蜜桃| 成人福利视频网站| 日本一区免费视频| 久久成人18免费观看| 这里只有精品视频在线观看| 亚洲精品免费视频| 99久久婷婷国产精品综合| 久久九九全国免费| 国产麻豆成人精品| 26uuu欧美| 国产一区二区三区av电影 | 国产福利精品导航| 久久色成人在线| 久久精品国产网站| 欧美成人猛片aaaaaaa| 男人的j进女人的j一区| 国产精品丝袜一区| 风间由美性色一区二区三区| 久久综合色播五月| 国产精品一区二区三区99| 精品国免费一区二区三区| 久久成人综合网| 欧美大尺度电影在线| 精品一区二区日韩| 精品久久久三级丝袜| 国产原创一区二区三区| 久久久久久久久久久电影| 国产一二三精品| 久久噜噜亚洲综合| 成人精品一区二区三区四区| 国产精品看片你懂得| 99久久夜色精品国产网站| 亚洲精品日韩专区silk| 欧美三级乱人伦电影| 日韩电影网1区2区| 欧美成人r级一区二区三区| 国产一区激情在线| 国产精品国产三级国产aⅴ原创| av一本久道久久综合久久鬼色| 亚洲欧洲韩国日本视频 | 欧美在线观看一二区| 爽爽淫人综合网网站| 精品国产免费一区二区三区四区 | 国产欧美精品区一区二区三区| 成人黄色一级视频| 一区二区三区高清不卡| 日韩欧美成人一区| 国产精品一二三四五| 中文字幕在线一区免费| 欧美在线小视频| 久久97超碰国产精品超碰| 亚洲欧洲性图库| 欧美另类久久久品| 国产凹凸在线观看一区二区|