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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? sl811.c

?? ls811的USB FAT文件系統(tǒng)
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
			
			if(!usbXfer())
				return FALSE;
				
			usbstack.pid  = PID_OUT;
		}
		else											// device-to-host : OUT token
   		{							
			usbstack.pid  = PID_OUT;
				
			if(!usbXfer())
				return FALSE;
			usbstack.pid  = PID_IN;
		}
	}
	usbstack.wLen=0;
	
	if(!usbXfer())
		return FALSE;

	return TRUE;											
}


unsigned char epBulkSend(unsigned char *pBuffer,unsigned int len)
{
	usbstack.usbaddr=0x1;
	usbstack.endpoint=usbstack.epbulkout;
	usbstack.pid=PID_OUT;
	usbstack.wPayload=64;
	usbstack.wLen=len;
	usbstack.buffer=pBuffer;
	
	if(usbstack.wLen)
	{
	      while(!usbXfer());
	}
	return TRUE;	
}

unsigned char epBulkRcv(unsigned char *pBuffer,unsigned int len)
{
	usbstack.usbaddr=0x1;
	usbstack.endpoint=usbstack.epbulkin;
	usbstack.pid=PID_IN;
	usbstack.wPayload=64;
	usbstack.wLen=len;
	usbstack.buffer=pBuffer;
	if(usbstack.wLen)
	{
		while(!usbXfer());
	}
	return TRUE;
}

unsigned char SetAddress(unsigned char addr)
{
	usbstack.usbaddr=0;
	usbstack.setup.bmRequest=0;
	usbstack.setup.bRequest=SET_ADDRESS;
	usbstack.setup.wValue=addr;
	usbstack.setup.wIndex=0;
	usbstack.setup.wLength=0;
	
	return ep0Xfer();
}

unsigned char Set_Configuration(void)
{
	usbstack.setup.bmRequest=0;
	usbstack.setup.bRequest=SET_CONFIG;
	usbstack.setup.wIndex=0;
	usbstack.setup.wLength=0;
	usbstack.buffer=NULL;
	
	return ep0Xfer();
}

unsigned char GetDesc(void)
{ 
	usbstack.setup.bmRequest=0x80;
	usbstack.setup.bRequest=GET_DESCRIPTOR;
	usbstack.setup.wValue=WordSwap(usbstack.setup.wValue);
	usbstack.wPayload=uDev.wPayLoad[0];
	
	return ep0Xfer();
}

unsigned char EnumUsbDev(BYTE usbaddr)
{  
	unsigned char i;											// always reset USB transfer address 
	unsigned char uAddr = 0;							// for enumeration to Address #0
	unsigned char epLen;
	
	pDevDesc  pDev;	
	pCfgDesc pCfg;
	pIntfDesc pIfc;
	pEPDesc pEnp;
	uDev.wPayLoad[0] = 64;	// default 64-byte payload of Endpoint 0, address #0
	
	if(usbaddr == 1)		// bus reset for the device attached to SL811HS only
		USBReset();		// that will always have the USB address = 0x01 (for a hub)
    	
    DelayMs(25);
	pDev =(pDevDesc)DBUF;					// ask for 64 bytes on Addr #0
	
	usbstack.usbaddr=uAddr;
	usbstack.setup.wValue=DEVICE;
	usbstack.setup.wIndex=0;
	usbstack.setup.wLength=18;
	usbstack.buffer=DBUF;
	
	if (!GetDesc())			// and determine the wPayload size
		return FALSE;								// get correct wPayload of Endpoint 0
	
	uDev.wPayLoad[0]=pDev->bMaxPacketSize0;// on current non-zero USB address

	if (!SetAddress(usbaddr)) 						// set to specific USB address
		return FALSE;								//
	
	uAddr = usbaddr;								// transfer using this new address

	pDev =(pDevDesc)DBUF;
	usbstack.usbaddr=uAddr;
	
	usbstack.setup.wLength=pDev->bLength;
	usbstack.setup.wValue=DEVICE;
	usbstack.setup.wIndex=0;
	
	usbstack.buffer=DBUF;
	
	if (!GetDesc()) 	
		return FALSE;								// For this current device:
	uDev.wVID  = pDev->idVendor;			// save VID
	uDev.wPID  = pDev->idProduct;			// save PID
	uDev.iMfg  = pDev->iManufacturer;		// save Mfg Index
	uDev.iPdt  = pDev->iProduct;			// save Product Index

	pCfg = (pCfgDesc)DBUF;	
	
	usbstack.usbaddr=uAddr;
	usbstack.setup.wValue=CONFIGURATION;
	usbstack.setup.wIndex=0;
	usbstack.setup.wLength=64;
	usbstack.buffer=DBUF;
		
	if (!GetDesc()) 		
		return FALSE;	
	
	pIfc = (pIntfDesc)(DBUF + 9);					// point to Interface Descp
	uDev.bClass 	= pIfc->iClass;			// update to class type
	uDev.bNumOfEPs = (pIfc->bEndPoints <= MAX_EP) ? pIfc->bEndPoints : MAX_EP;
	
	if(uDev.bClass==8) //mass storage device
		bXXGFlags.bits.bMassDevice=TRUE;

	usbstack.usbaddr=uAddr;
	usbstack.setup.wValue=DEVICE;
	
	if(!Set_Configuration())		// connected directly to SL811HS
		return FALSE;

	epLen = 0;
	
	for (i=1; i<=uDev.bNumOfEPs; i++)				// For each data endpoint
	{
		pEnp = (pEPDesc)(DBUF + 9 + 9 + epLen);	   			// point to Endpoint Descp(non-HID)
		uDev.bEPAddr[i]  	= pEnp->bEPAdd;			// Ep address and direction
		uDev.bAttr[i]		= pEnp->bAttr;			// Attribute of Endpoint
		uDev.wPayLoad[i] 	= WordSwap(pEnp->wPayLoad);		// Payload of Endpoint
		uDev.bInterval[i] 	= pEnp->bInterval;		// Polling interval
	    uDev.bData1[i] = 0;			            // init data toggle
		epLen += 7;

		if(uDev.bAttr[i]==0x2)
		{
		    if(uDev.bEPAddr[i]&0x80)
		    	usbstack.epbulkin=uDev.bEPAddr[i];
		    else
		    	usbstack.epbulkout=uDev.bEPAddr[i];
		}
	}
	return TRUE;
}

void SL811_Init(void)
{	
	bXXGFlags.bits.SLAVE_ONLINE = FALSE;
	bXXGFlags.bits.SLAVE_FOUND = FALSE;
	bXXGFlags.bits.SLAVE_REMOVED=FALSE;
	
	bXXGFlags.bits.SLAVE_ENUMERATED = FALSE;
	bXXGFlags.bits.SLAVE_IS_ATTACHED = FALSE;
	
	SL811_CS=0;
	
	SL811Write(cDATASet,0xe0);
	SL811Write(cSOFcnt,0xae);
	SL811Write(CtrlReg,0x5);
			
	SL811Write(EP0Status,0x50);
	SL811Write(EP0Counter,0);
	SL811Write(EP0Control,0x01);
			
	
	SL811Write(IntEna,0x20);      		// USB-A, Insert/Remove, USB_Resume.
	SL811Write(IntStatus,INT_CLEAR);	// Clear Interrupt enable status
}

/*-----------------------------------------------------------------------------------
名稱: void check_key_LED(void)
功能: 檢測(cè)磁盤(pán)狀態(tài).
-----------------------------------------------------------------------------------*/
void check_key_LED(void)
{
	static unsigned char last_key=0x7;
	unsigned char *pBuf;						//=(unsigned char *)&UartCmdBlock;
	unsigned int *wpBuf;
	unsigned char intr;
	unsigned int i,len;
	
	intr=SL811Read(IntStatus);					//讀取SL811狀態(tài)
	
	if(intr & USB_RESET)
	{
		if(bXXGFlags.bits.SLAVE_ONLINE ==TRUE)	//磁盤(pán)連接狀態(tài)
		{
			bXXGFlags.bits.SLAVE_REMOVED=TRUE;	//磁盤(pán)移除
		   	bXXGFlags.bits.SLAVE_ONLINE =FALSE;
		}
	}
	else
	{
		if(bXXGFlags.bits.SLAVE_ONLINE == FALSE)
		{
			bXXGFlags.bits.SLAVE_FOUND=TRUE;	//創(chuàng)建磁盤(pán)
			bXXGFlags.bits.SLAVE_ONLINE =TRUE;	//創(chuàng)建連接
		}
	}
	SL811Write(IntStatus,INT_CLEAR);
	SL811Write(IntStatus,INSERT_REMOVE);
	
	intr=SWM0;
	intr&=0x1;
			
	if(intr!=last_key)		//假如SWM0被按下,則產(chǎn)生創(chuàng)建文件命令,模擬串口進(jìn)行測(cè)試
	{
		if(intr==0)
		{
			pBuf=(unsigned char *)&UartCmdBlock;
					
			for(i=0;i<64;i++)
				*(pBuf+i)=*(cmd_test_createfile+i);
						
			bXXGFlags.bits.bUartInDone=1;
			last_key=0;
		}
		else
			last_key=1;
	}
			
	intr=SWM1;
	intr&=0x1;
			
	if(intr!=last_key)		//假如SWM1被按下,則產(chǎn)生寫(xiě)入數(shù)據(jù)到磁盤(pán)命令,模擬串口進(jìn)行測(cè)試
	{
		if(intr==0)
		{
			pBuf=(unsigned char *)&UartCmdBlock;
					
			for(i=0;i<64;i++)
				*(pBuf+i)=*(cmd_test_writefile+i);
						
			wpBuf=(unsigned int *)UARTBUF;
			len=SwapINT16(UartCmdBlock.CmdBlock.Cmd_WriteFile.writeLength)/2;
					
			for(i=0;i<len;i++)
				*(wpBuf+i)=i;
						
			bXXGFlags.bits.bUartInDone=1;
			last_key=0;
		}
		else
			last_key=1;
	}
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产91久久久久久一区二区 | 亚洲观看高清完整版在线观看| 日韩欧美第一区| 欧美日本国产视频| 欧美性色aⅴ视频一区日韩精品| 成人性生交大合| 成人在线综合网| 高清免费成人av| 成人免费黄色大片| 波多野结衣亚洲| 99精品国产一区二区三区不卡| 不卡在线观看av| 91九色最新地址| 色综合久久99| 欧美日韩国产一级| 制服丝袜亚洲色图| 精品国产乱子伦一区| 久久久久久久久久久电影| 欧美精彩视频一区二区三区| 久久久久国产精品麻豆| 中文文精品字幕一区二区| 国产精品精品国产色婷婷| 亚洲精品中文在线| 性做久久久久久久久| 毛片不卡一区二区| 国产精品1024| 色婷婷亚洲一区二区三区| 欧美高清性hdvideosex| 精品久久久久久久久久久院品网| 精品欧美黑人一区二区三区| 国产女同互慰高潮91漫画| 亚洲免费电影在线| 老司机免费视频一区二区| 国产91综合网| 欧美日韩国产一级片| 久久久亚洲精品石原莉奈 | 亚洲视频香蕉人妖| 亚洲成人免费影院| 国产盗摄一区二区| 欧美日韩电影一区| 欧美极品xxx| 亚洲成人在线观看视频| 国产经典欧美精品| 欧美精品1区2区| 中文字幕人成不卡一区| 蜜桃视频免费观看一区| 99久久99久久综合| 欧美大片顶级少妇| 亚洲乱码中文字幕| 国产精选一区二区三区| 欧美日韩国产电影| 中文字幕一区二区三| 麻豆精品视频在线| 色先锋久久av资源部| 久久久久久久久久久99999| 亚洲国产日韩综合久久精品| 成人免费毛片片v| 欧美电视剧免费全集观看| 一区二区在线观看视频| 国产麻豆精品在线观看| 在线观看91精品国产麻豆| 成人欧美一区二区三区视频网页 | 国产suv精品一区二区883| 欧美电影一区二区三区| 亚洲日本免费电影| 从欧美一区二区三区| 精品国产免费一区二区三区香蕉| 亚洲在线观看免费| 99久久免费视频.com| 国产三级一区二区| 国产一区91精品张津瑜| 欧美va日韩va| 久久精品免费观看| 欧美一区永久视频免费观看| 婷婷国产在线综合| 在线观看日韩毛片| 亚洲激情图片一区| 91成人网在线| 亚洲国产精品久久人人爱| 在线观看视频91| 亚洲高清久久久| 91成人国产精品| 天堂午夜影视日韩欧美一区二区| 日本久久精品电影| 亚洲国产欧美另类丝袜| 欧美亚洲国产bt| 性做久久久久久免费观看 | 日韩午夜中文字幕| 蜜臂av日日欢夜夜爽一区| 日韩欧美国产三级| 久久成人免费网| 久久久精品影视| 成人综合婷婷国产精品久久| 国产精品成人免费在线| 日本高清免费不卡视频| 亚洲sss视频在线视频| 日韩一区二区在线播放| 国产在线播放一区| 自拍视频在线观看一区二区| 91久久精品一区二区三区| 五月综合激情网| 欧美mv和日韩mv国产网站| 大白屁股一区二区视频| 一区二区三区日韩| 日韩一区二区三区电影在线观看| 黑人巨大精品欧美黑白配亚洲| 国产日产亚洲精品系列| 91蜜桃视频在线| 日本欧美大码aⅴ在线播放| 久久久精品2019中文字幕之3| av激情综合网| 青青国产91久久久久久| 国产精品美女久久久久久| 色婷婷av一区二区三区软件| 日韩精品免费专区| 国产精品视频线看| 欧美日韩国产经典色站一区二区三区| 久久成人免费日本黄色| 亚洲精品免费在线播放| 精品国产乱码久久久久久牛牛 | 91在线观看视频| 亚洲国产精品一区二区www| 久久一区二区三区四区| 色婷婷综合中文久久一本| 精品亚洲porn| 亚洲福利一区二区| 欧美激情一区二区三区蜜桃视频| 色乱码一区二区三区88| 黑人巨大精品欧美黑白配亚洲| 亚洲另类春色国产| 国产欧美一区二区三区网站| 欧美日韩免费在线视频| 99久久免费视频.com| 国产精一品亚洲二区在线视频| 一区二区三区免费看视频| 久久午夜羞羞影院免费观看| 欧美伦理视频网站| 91蜜桃网址入口| 国产aⅴ精品一区二区三区色成熟| 调教+趴+乳夹+国产+精品| 国产精品久久久久久妇女6080 | 亚洲人成伊人成综合网小说| 精品国产青草久久久久福利| 欧美在线制服丝袜| 99精品黄色片免费大全| 国产成人免费高清| 激情六月婷婷久久| 久久精品国产久精国产| 日韩电影免费在线| 亚洲第一二三四区| 亚洲成人av电影| 亚洲一区二区三区在线看 | 91成人在线免费观看| zzijzzij亚洲日本少妇熟睡| 成人性生交大片免费看视频在线| 国产精品系列在线观看| 国产成人精品免费一区二区| 国产在线精品一区二区不卡了| 久久99久久久久久久久久久| 日韩av中文字幕一区二区三区 | 日韩欧美综合一区| 日韩一区二区三区四区五区六区| 7777精品伊人久久久大香线蕉 | 日韩av一区二区三区四区| 视频一区在线播放| 视频一区视频二区中文字幕| 午夜视频久久久久久| 日产国产高清一区二区三区| 日韩电影在线一区| 国产一区二区不卡| 不卡电影一区二区三区| jizzjizzjizz欧美| 91在线观看污| 欧美日韩在线综合| 91精品国产91久久久久久最新毛片| 欧美乱妇15p| 日韩精品一区二区三区蜜臀 | eeuss鲁片一区二区三区| 99精品视频在线观看| 欧美亚洲综合在线| 日韩你懂的电影在线观看| 精品国产一区二区精华| 欧美国产日韩一二三区| 亚洲图片激情小说| 首页综合国产亚洲丝袜| 国产在线视频不卡二| 成人丝袜18视频在线观看| 欧美午夜精品久久久久久超碰 | 国产色产综合色产在线视频| 国产精品久久久久影院| 亚洲第一主播视频| 国产一区二区不卡在线 | 图片区小说区国产精品视频| 久久99在线观看| 91在线一区二区三区| 91精品国产综合久久精品图片| 久久综合久色欧美综合狠狠| 亚洲三级小视频| 久色婷婷小香蕉久久| 91麻豆精品一区二区三区|