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

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

?? udisk.c

?? 單片機(jī)編程語(yǔ)言 51單片機(jī)讀寫(xiě)U盤(pán)例程 U盤(pán)作為數(shù)據(jù)的載體目前已廣泛應(yīng)用于嵌入式行業(yè)
?? C
字號(hào):

//#include "stdafx.h"
//#include "CommPort.h"
//extern CCommPort Comm;
//#define SendResponse(buff,len)	Comm.SendData(buff, NULL, len, 10000, 1, 0, FALSE);  //發(fā)送數(shù)據(jù)

#include "config.h"
#include "string.h"
#include "udisk.h"


#ifndef NULL
#define NULL	0
#endif

#define MAX_FILE_SIZE 	512
#define WAIT_TIME_OUT	0x2fff


FHANDLE	g_handle={0xff,0};


CONTR_DISK	rwdisk;
void SendResponse(uint8 *buff,uint16 len);
void FreeFHandle(void);
void ReceOneChar(uint8 ReceChar);

/*********************************************************************************************************
** 函數(shù)名稱: wait_ack
** 功能描述: 等待應(yīng)答幀
**
** 輸 入: 無(wú)
** 輸 出: 正常應(yīng)答返回:TRUE,超時(shí)出錯(cuò)返回:FALSE
********************************************************************************************************/
uint8 wait_ack(void)
{
	uint32 i;
	rwdisk.state = 0;

	for(i=0;i<WAIT_TIME_OUT;i++)	// 軟件延時(shí)等待
	{
		if(0xff==rwdisk.state)
			return TRUE;
	}
	return FALSE;
}

/*
uint8 wait_ack(void)
{
	uint8	rt = TRUE ,ret;
	uint32 i;
	rwdisk.state = 0;
	uint8 tempbuff[512];
	while(0xff!=rwdisk.state)
	{
		ret = Comm.ReadBlock(tempbuff, 6,500);					   // 讀出數(shù)據(jù)
		if(ret==0)
		{
			for(i=0;i<6;i++)
				ReceOneChar(tempbuff[i]);
		}
		else
		{
			rt = FALSE;
			break;
		}
		
		if(rwdisk.rlen==0)
			break;
		ret = Comm.ReadBlock(tempbuff, rwdisk.rlen,500);					   // 讀出數(shù)據(jù)
		if(ret==0)
		{
			for(i=0; i<rwdisk.rlen; i++)
				ReceOneChar(tempbuff[i]);
		}
		else
		{
			rt = FALSE;
			break;
		}
	}
	return rt;
}
*/
//********************************************************************************************************
// 函數(shù)名稱:ReceOneChar
// 輸入?yún)?shù):ReceCharacter
// 輸出參數(shù):無(wú)
// 功能描述:接收一個(gè)字符處理
//           要求:接收到一個(gè)字符后立即傳入該函數(shù)處理。
//********************************************************************************************************
void ReceOneChar(uint8 ReceChar)
{
	static uint8 	HFNumber = 0;
	static uint8	HFBuffer[6];
	static uint16	DataLen;
	static uint8	state=0;

	if(rwdisk.state!=0)
		return;

	switch(state)
	{
		case 0:
			HFBuffer[HFNumber++] = ReceChar;
			if(HFBuffer[0]!='S')				// 
				if( HFNumber == 2 )
					if(HFBuffer[1]!=':')
						HFNumber = 0;
			if( HFNumber == 6 )
			{	HFNumber = 0;
				rwdisk.cmd 	= HFBuffer[2];
				rwdisk.cmds	= HFBuffer[3];
				DataLen = HFBuffer[4] + HFBuffer[5]*0x100;
				rwdisk.rlen = DataLen;
				rwdisk.wlen = 0;
				if(DataLen!=0)
				{
					state = 1;
				}
				else
				{
					rwdisk.state = 0xff;		// 設(shè)置狀態(tài)
				}
			}
			break;
		case 1:
			rwdisk.write_ptr[rwdisk.wlen++] = ReceChar;
			if(DataLen==rwdisk.wlen)
			{
				rwdisk.state = 0xff;		// 設(shè)置狀態(tài)
				state = 0;
			}
			break;
		default :
            break;
	}
}


void DriverIni(void)
{
   FreeFHandle();				// 釋入文件句柄
   rwdisk.state = 0xff;			// 不接收串口數(shù)據(jù)
}

/*********************************************************************************************************
** 函數(shù)名稱: GetFHandle
** 功能描述: 獲取文件操作包柄
**
** 輸 入: 無(wú)
** 輸 出: 無(wú)
********************************************************************************************************/
FHANDLE *GetFHandle(void)
{
	if(g_handle.fh==0xff)
		return &g_handle;
	else
		return NULL;
}

/*********************************************************************************************************
** 函數(shù)名稱: FreeFHandle
** 功能描述: 釋放文件操作句柄
**
** 輸 入: 無(wú)
** 輸 出: 無(wú)
********************************************************************************************************/
void FreeFHandle(void)
{
	g_handle.fh = 0xff;
	g_handle.fsize = 0;
}





/*********************************************************************************************************
** 函數(shù)名稱: GetDiskInfo
** 功能描述: 獲取系統(tǒng)信息
**
** 輸 入: sysinfptr:系統(tǒng)信息數(shù)據(jù)結(jié)構(gòu)指針
** 輸 出: 正常設(shè)置返回:TRUE,出錯(cuò)返回:FALSE
********************************************************************************************************/
uint8 GetDiskInfo(SYSINF *sysinfptr)
{
	uint8	reqbuff[14];
	
	reqbuff[0] = 'U';	reqbuff[1]= ':';	reqbuff[2] = 0x00;
	reqbuff[3] = 0;		reqbuff[4] = 0;	reqbuff[5] = 0;
	SendResponse(reqbuff,6);		// 發(fā)送命令請(qǐng)求幀
	sysinfptr->DiskIn = 0;			//  標(biāo)記U盤(pán)不存在
	rwdisk.write_ptr = reqbuff;

	if(wait_ack())					// 等待應(yīng)答
	{
		if(rwdisk.cmds==0)
		{	sysinfptr->Baud = reqbuff[0];
			sysinfptr->Year = reqbuff[1];
			sysinfptr->Month= reqbuff[2];
			sysinfptr->Dom = reqbuff[3];
			sysinfptr->Hour = reqbuff[4];
			sysinfptr->Min = reqbuff[5];
			sysinfptr->Sec = reqbuff[6];
				
			sysinfptr->DiskIn= reqbuff[7];
			sysinfptr->FH.fh= reqbuff[8];
			sysinfptr->FH.fsize= reqbuff[9]+
						reqbuff[10]*0x100+
						reqbuff[11]*0x10000+
						reqbuff[12]*0x1000000;
			sysinfptr->version = reqbuff[13];
			return	TRUE;
		}
	}
	
	return	FALSE;
}

/*********************************************************************************************************
** 函數(shù)名稱: SetDiskInfo
** 功能描述: 設(shè)置系統(tǒng)信息
**
** 輸 入: sysinfptr:系統(tǒng)信息數(shù)據(jù)結(jié)構(gòu)指針
** 輸 出: 正常設(shè)置返回:TRUE,出錯(cuò)返回:FALSE
********************************************************************************************************/
uint8  SetDiskInfo(SYSINF *sysinfptr)
{
	uint8	reqbuff[13];
	reqbuff[0] = 'U';	reqbuff[1]= ':';	reqbuff[2] = 0x01;
	reqbuff[3] = 0;		reqbuff[4] = 7;	reqbuff[5] = 0;
	
	reqbuff[6] = sysinfptr->Baud ;
	reqbuff[7] = sysinfptr->Year ;
	reqbuff[8] = sysinfptr->Month;
	reqbuff[9] = sysinfptr->Dom;
	reqbuff[10] = sysinfptr->Hour;
	reqbuff[11] = sysinfptr->Min;
	reqbuff[12] = sysinfptr->Sec;
				
	SendResponse(reqbuff,13);		// 發(fā)送命令請(qǐng)求幀
	
	rwdisk.write_ptr = reqbuff;
	if(wait_ack())// 等待應(yīng)答
	{
		if(rwdisk.cmds==0)
		{	
			return	TRUE;
		}
	}
	
	return	FALSE;
}

/*********************************************************************************************************
** 函數(shù)名稱: FileOpen
** 功能描述: 以指定方式打開(kāi)文件
**
** 輸 入: DirFileName:用戶使用的文件名
** 輸 出: 文件句柄,NULL為不能打開(kāi)
**	   非零值為打開(kāi)文件的指針
**
********************************************************************************************************/
        FHANDLE *FileOpen(char *DirFileName)
{
	uint8	reqbuff[6];
	uint8	namelen;
	FHANDLE	*handle;
	handle = GetFHandle();
	if(handle==NULL)				// 沒(méi)有可用的包柄
		return handle;
	reqbuff[0] = 'U';reqbuff[1]= ':';
	reqbuff[2] = 0x10;reqbuff[3] = 0xff;
	namelen = strlen(DirFileName);			// 獲取文件名字符串長(zhǎng)度
	reqbuff[4] = namelen; reqbuff[5] = 0;
	
	SendResponse(reqbuff,6);			// 發(fā)送命令請(qǐng)求幀
	SendResponse((uint8*)DirFileName,namelen);	// 發(fā)送命令請(qǐng)求幀
	
	rwdisk.write_ptr = reqbuff;
	
	if(wait_ack())// 等待應(yīng)答
	{
		if(rwdisk.cmds==0)
		{	handle->fh = reqbuff[0];
			handle->fsize = reqbuff[1]+
					reqbuff[2]*0x100+
					reqbuff[3]*0x10000+
					reqbuff[4]*0x1000000;	
		}
		else
			handle = NULL;
	}
	else	
		handle = NULL;
		
	return handle;
}

/*********************************************************************************************************
** 函數(shù)名稱: FileClose
** 功能描述: 關(guān)閉指定文件
**
** 輸 入: Handle:文件句柄
**
** 輸 出: RETURN_OK:成功
**        其它參考fat.h中關(guān)于返回值的說(shuō)明 
********************************************************************************************************/
uint8 FileClose(void)
{
	uint8 	reqbuff[6];
	
	reqbuff[0] = 'U';	reqbuff[1]= ':';	reqbuff[2] = 0x12;
	reqbuff[3] = 0;		reqbuff[4] = 0;		reqbuff[5] = 0;
	
	FreeFHandle();
	rwdisk.write_ptr = reqbuff;
	SendResponse(reqbuff,6);		// 發(fā)送命令請(qǐng)求幀
	
	if(wait_ack())// 等待應(yīng)答
	{
		
		return rwdisk.cmds;
	}
	else
		return	0xf0;				// 沒(méi)應(yīng)答
	
}

/*********************************************************************************************************
** 函數(shù)名稱: S_FileWrite
** 功能描述: 寫(xiě)文件
**
** 輸 入: Buf:要寫(xiě)的數(shù)據(jù)
**        Size:要寫(xiě)的字節(jié)數(shù)
**        Handle:文件句柄
** 輸 出: 實(shí)際寫(xiě)的字節(jié)數(shù)
********************************************************************************************************/
uint16	S_FileWrite(void *Buf, uint16 Size, FHANDLE *Handle)
{
	uint8	reqbuff[10];
	if(Handle==NULL)	return	0;
	reqbuff[0] = 'U';reqbuff[1]= ':';	reqbuff[2] = 0x20;
	if(Handle->fh!=0xff) reqbuff[3] = Handle->fh;
	else return	0;
	reqbuff[4] = (uint8)Size;
	reqbuff[5] = (uint8)(Size/0x100);
	rwdisk.write_ptr = &reqbuff[6];

	SendResponse(reqbuff,6);		// 發(fā)送命令請(qǐng)求幀
	SendResponse((uint8*)Buf,Size);		// 發(fā)送命令請(qǐng)求幀

/*	
	uint8	tempbuf[512+6];
	memcpy(tempbuf,reqbuff,6); 
	memcpy(tempbuf+6,Buf,Size); 
	SendResponse(tempbuf,6+Size);
*/

	if(wait_ack())// 等待應(yīng)答
	{	if(rwdisk.cmds!=0)
			return 0;
	}
	else	
		return 0;
	return (uint16)(reqbuff[6]+reqbuff[7]*0x100); // reqbuff[8],reqbuff[9] 不處理 
}

/*********************************************************************************************************
** 函數(shù)名稱: FileWrite
** 功能描述: 寫(xiě)文件
**
** 輸 入: Buf:要寫(xiě)的數(shù)據(jù)
**        Size:要寫(xiě)的字節(jié)數(shù)
**        Handle:文件句柄
** 輸 出: 實(shí)際寫(xiě)的字節(jié)數(shù)
********************************************************************************************************/
uint32 FileWrite(uint8 *Buf, uint32 Size, FHANDLE *Handle)
{
	uint32	allwrite=0;
	uint16  bewrite;
	
	while((Size/MAX_FILE_SIZE)>0)
	{
		Size -= MAX_FILE_SIZE;
		bewrite = S_FileWrite( Buf+allwrite,MAX_FILE_SIZE,Handle);
		if(bewrite == MAX_FILE_SIZE)
		{
			allwrite += bewrite;
		}
		else	// 寫(xiě)文件出錯(cuò)
		{
			return allwrite;
		}
	}

	bewrite = 0;
	if(Size)
	{
		bewrite = S_FileWrite(Buf+allwrite,(uint16) Size,Handle);
	}

	return allwrite+bewrite;
}

/*********************************************************************************************************
** 函數(shù)名稱: FileRead
** 功能描述: 讀取文件
**
** 輸 入: Buf:保存讀回的數(shù)據(jù)
**        Size:要讀的字節(jié)數(shù)
**        Handle:文件句柄
** 輸 出: 實(shí)際讀到的字節(jié)數(shù)
********************************************************************************************************/
uint16 S_FileRead(void *Buf, uint16 Size, FHANDLE *Handle)
{
	uint8	reqbuff[10];
	if(Handle==NULL)	return	0;
	reqbuff[0] = 'U';reqbuff[1]= ':';	reqbuff[2] = 0x30;
	if(Handle->fh!=0xff) reqbuff[3] = Handle->fh;
	else return	0;
	reqbuff[4] = 4;
	reqbuff[5] = 0;
	reqbuff[6] = (uint8)Size;
	reqbuff[7] = (uint8)(Size/0x100);
	reqbuff[8] = 0;
	reqbuff[9] = 0;
	
	rwdisk.write_ptr = (uint8*)Buf;
	SendResponse(reqbuff,10);		// 發(fā)送命令請(qǐng)求幀

	
	if(wait_ack())// 等待應(yīng)答
	{	if(rwdisk.cmds!=0)
			return 0;
	}
	else	return 0;
	return (uint16)rwdisk.wlen;
}

/*********************************************************************************************************
** 函數(shù)名稱: FileRead
** 功能描述: 讀取文件
**
** 輸 入: Buf:保存讀回的數(shù)據(jù)
**        Size:要讀的字節(jié)數(shù)
**        Handle:文件句柄
** 輸 出: 實(shí)際讀到的字節(jié)數(shù)
********************************************************************************************************/
uint32 FileRead(uint8 *Buf, uint32 Size, FHANDLE *Handle)
{
	uint32	allread=0;
	uint16  beread;
	
	while((Size/MAX_FILE_SIZE)>0)
	{
		Size -= MAX_FILE_SIZE;
		beread = S_FileRead( Buf+allread,MAX_FILE_SIZE,Handle);
		if(beread==MAX_FILE_SIZE)
		{
			allread += beread;
		}
		else	// 寫(xiě)文件出錯(cuò)
		{
			return allread;
		}
	}
	beread = 0;
	if(Size)
	{
		beread = S_FileRead(Buf+allread,(uint16) Size,Handle);
	}
	return allread+beread;
}



/*********************************************************************************************************
** 函數(shù)名稱: FileSeek
** 功能描述: 移動(dòng)文件讀\寫(xiě)位置
**
** 輸 入: Handle:文件句柄
**        offset:移動(dòng)偏移量
**        Whence:移動(dòng)模式SEEK_SET:從文件頭計(jì)算SEEK_CUR:從當(dāng)前位置計(jì)算SEEK_END:從文件尾計(jì)算
** 輸 出: 成功返回0
**         出錯(cuò)返回非0值
********************************************************************************************************/
uint8 FileSeek(FHANDLE *Handle, int32 offset, uint8 Whence)
{
	uint8	reqbuff[11];
	if(Handle==NULL)	return	PARAMETER_ERR;
	reqbuff[0] = 'U';	reqbuff[1]= ':';	reqbuff[2] = 0x40;
	if(Handle->fh!=0xff) 
		reqbuff[3] = Handle->fh;
	else 
		return	PARAMETER_ERR;
	reqbuff[4] = 5;
	reqbuff[5] = 0;
	
	reqbuff[6] = offset & 0xff;
	reqbuff[7] = (offset>>8) & 0xff ;
	reqbuff[8] = (offset>>16) & 0xff;
	reqbuff[9] = (offset>>24) & 0xff;
	
	reqbuff[10] = Whence;

	rwdisk.write_ptr = reqbuff;
	SendResponse(reqbuff,11);		// 發(fā)送命令請(qǐng)求幀
	
	if(wait_ack())// 等待應(yīng)答
	{	
		return rwdisk.cmds;
	}
	else	
		return 0xff;
}

/*********************************************************************************************************
** 函數(shù)名稱: MakeDir
** 功能描述: 建立目錄
**
** 輸 入: Path:路徑名
**
** 輸 出: 成功返回0
**         出錯(cuò)返回非0值
********************************************************************************************************/
uint8 MakeDir(char *Path)
{
	uint8	reqbuff[6];
	uint8	namelen;
	uint8	rt;

	reqbuff[0] = 'U';reqbuff[1]= ':';
	reqbuff[2] = 0x50;reqbuff[3] = 0xff;
	namelen = strlen(Path);					// 獲取文件夾名字符串長(zhǎng)度
	reqbuff[4] = namelen; reqbuff[5] = 0;
	
	SendResponse(reqbuff,6);				// 發(fā)送命令請(qǐng)求幀
	SendResponse((uint8*)Path,namelen);		// 發(fā)送命令請(qǐng)求幀
	
	rwdisk.write_ptr = reqbuff;
	
	if(wait_ack())							// 等待應(yīng)答
	{
		rt = rwdisk.cmds;
	}
	else	
		rt = 0xff;
		
	return rt;
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品婷婷国产综合久久性色| 国产美女精品在线| 美女mm1313爽爽久久久蜜臀| 国产自产v一区二区三区c| 国产精品12区| 色激情天天射综合网| 欧美精品v国产精品v日韩精品| 精品日韩一区二区三区免费视频| 国产精品久久久久久久久晋中| 一区二区免费在线播放| 美女mm1313爽爽久久久蜜臀| av中文一区二区三区| 欧美日韩三级一区二区| 久久久精品2019中文字幕之3| 亚洲欧洲99久久| 日本人妖一区二区| 成人免费av在线| 3d动漫精品啪啪一区二区竹菊| 久久精品视频网| 亚洲午夜久久久久久久久电影网| 国产一区二区三区黄视频| 91免费看`日韩一区二区| 欧美一区二区三区免费在线看| 日本一区二区视频在线观看| 亚洲国产一区二区三区青草影视| 国内精品久久久久影院薰衣草 | 日韩一区二区三区在线| 国产精品理论片| 蜜桃av一区二区在线观看| 99热在这里有精品免费| 日韩女优毛片在线| 亚洲二区视频在线| 成人免费va视频| 精品国内二区三区| 亚洲成人精品影院| 99久久亚洲一区二区三区青草| 欧美一区二区成人| 亚洲一区影音先锋| www.欧美色图| 久久久噜噜噜久噜久久综合| 午夜精品久久久久| 91在线播放网址| 久久精品一区二区| 免费在线成人网| 在线观看国产一区二区| 国产精品美女视频| 国产真实乱子伦精品视频| 欧美高清激情brazzers| 亚洲精品视频在线看| 成人免费视频视频| 精品国产乱码久久久久久老虎 | 欧美日韩一区二区电影| 国产精品伦一区二区三级视频| 激情五月激情综合网| 欧美浪妇xxxx高跟鞋交| 亚洲另类春色校园小说| eeuss鲁片一区二区三区在线看| 日韩欧美在线不卡| 日本美女一区二区三区| 欧美精品视频www在线观看| 一区二区三区四区不卡在线| 北条麻妃国产九九精品视频| 国产精品丝袜在线| 福利91精品一区二区三区| 久久久国产一区二区三区四区小说 | 精品在线播放免费| 欧美成人午夜电影| 免费高清视频精品| 日韩视频在线观看一区二区| 日本伊人精品一区二区三区观看方式| 在线免费av一区| 亚洲一区在线观看视频| 色欧美88888久久久久久影院| 综合久久综合久久| 91视频国产资源| 亚洲美女在线国产| 色综合久久综合网| 一区二区国产盗摄色噜噜| 91福利视频网站| 亚洲成人一区在线| 欧美精品日韩一区| 日本欧美加勒比视频| 日韩精品一区二区在线观看| 久久国产剧场电影| 久久久久久电影| 成人黄色软件下载| 中文字幕一区视频| 日本高清无吗v一区| 亚洲午夜久久久久久久久电影网 | 亚洲va天堂va国产va久| 欧美日韩小视频| 久久精品国产精品亚洲精品| 亚洲精品一线二线三线| 国产盗摄女厕一区二区三区| 国产精品欧美一级免费| 在线免费观看成人短视频| 日韩avvvv在线播放| 精品福利在线导航| 成人看片黄a免费看在线| 亚洲视频免费在线观看| 欧美美女激情18p| 精品一区二区三区蜜桃| 国产调教视频一区| 91捆绑美女网站| 婷婷成人综合网| 久久精品视频网| 色94色欧美sute亚洲13| 男女视频一区二区| 中文一区在线播放| 欧美三级电影网站| 国产在线精品一区二区不卡了 | 99精品欧美一区二区三区小说| 亚洲国产一区视频| 欧美精品一区二区久久婷婷| 波多野结衣中文字幕一区 | 7777精品伊人久久久大香线蕉最新版| 极品少妇一区二区| 中文字幕一区免费在线观看| 欧美精品日日鲁夜夜添| 国产不卡视频在线播放| 一区二区三区不卡在线观看| 欧美一区二区日韩| av一区二区三区四区| 日韩国产欧美三级| 中文字幕av一区二区三区| 欧美女孩性生活视频| 国产999精品久久久久久绿帽| 一区二区三区精品在线观看| 2020国产精品| 欧美午夜精品一区二区蜜桃 | 中文字幕 久热精品 视频在线| 欧美日韩免费一区二区三区| 国产成人午夜电影网| 亚洲妇熟xx妇色黄| 国产精品美女久久久久久久 | 国产专区综合网| 亚洲大片精品永久免费| 国产精品美女久久久久高潮| 91精品国产综合久久精品app| 成人av片在线观看| 麻豆免费精品视频| 亚洲一区在线视频观看| 日本一二三不卡| 日韩欧美成人一区二区| 欧美手机在线视频| 99久久久无码国产精品| 精品一二三四区| 亚洲国产精品精华液网站| 中文字幕在线一区免费| 久久影音资源网| 777精品伊人久久久久大香线蕉| 色综合婷婷久久| 福利视频网站一区二区三区| 裸体一区二区三区| 午夜精品一区二区三区电影天堂| 国产精品久久久99| 国产嫩草影院久久久久| 久久影院视频免费| 欧美α欧美αv大片| 欧美日韩高清影院| 欧美伊人久久久久久午夜久久久久| 国产成人欧美日韩在线电影| 美脚の诱脚舐め脚责91| 亚洲成人第一页| 亚洲国产乱码最新视频| 玉足女爽爽91| 亚洲欧美日韩国产另类专区| 久久久精品人体av艺术| 亚洲精品在线网站| 日韩精品专区在线影院观看| 欧美一区二区黄色| 7777精品伊人久久久大香线蕉完整版| 欧美系列一区二区| 欧美性猛交xxxx乱大交退制版| 色老汉一区二区三区| 91免费版pro下载短视频| 97se亚洲国产综合在线| 97精品国产97久久久久久久久久久久| 国产大陆精品国产| 成人三级在线视频| 波多野结衣中文字幕一区二区三区| 东方欧美亚洲色图在线| 国产精品99久久久久久久vr| 国产精品中文字幕一区二区三区| 九九视频精品免费| 激情国产一区二区| 美女免费视频一区| 国产一区在线不卡| 国产精品18久久久久久久久 | 日本一区二区三区在线不卡| 国产嫩草影院久久久久| 中文字幕欧美激情| 中文字幕日本不卡| 一区二区三区电影在线播| 夜夜爽夜夜爽精品视频| 亚洲一二三级电影| 日本不卡一区二区| 韩国视频一区二区| 成人综合婷婷国产精品久久蜜臀 | 亚洲自拍偷拍av|