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

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

?? radiomoduleswcmd.c

?? SI47**系列DSP的收音芯片驅(qū)動(dòng)C源代碼
?? C
字號(hào):
//***************************************************************
//  ARM BOOT ROUTE VER1.0 for NXP_ARM release
//  bjwork2007@gmail.com
//  chenjun @ 2008-7-19
//***************************************************************

#include "..\inc\NXP_ARM.h"
#include "..\inc\usart.h"
#include "..\inc\common.h"
#include "..\inc\RadioModuleTypeDEF.h"
#include "..\inc\RadioModuleHwDrv.h"
#include "..\inc\RadioModuleSwCmd.h"
#include "..\inc\RadioModuleGUI.h"
#include "..\inc\RadioModuleAPI.h"

#ifdef UseSI473X_Radio

	RevInfoStruct		RadioRevInfo;
	FmTuneStatusStruct	FmTuneStatusInfo;
	FmRSQStatusStruct	FmRSQStatusInfo;
	FmRDSStatusStruct	FmRDSStatusInfo;
	FMAGCStatusStruct	FMAGCStatusInfo;
	AmTuneStatusStruct	AmTuneStatusInfo;
	AmRSQStatusStruct	AmRSQStatusInfo;
	
	RM_U8 Wait_CTS_High(RM_U8 CMD);
	#ifdef Radio_Module_Console_Debug
	void WaitContinue(void);
	#endif
	
	//CMD1 0x01
	RM_U8 RadioModule_Power_Up(RM_U8 PowerUpMode)
	{
		RM_U8 Status;
		RM_U8 PowerUpArray[3];
		
		AM_FM_Receive_SEL = PowerUpMode;
		switch(PowerUpMode)
		{
			case FM_Receive:
				PowerUpArray[0] = 0x01;
				#if(Osc_source==UseExtCYC)
					PowerUpArray[1] = 0xd0;
				#else
					PowerUpArray[1] = 0xc0;
				#endif
				PowerUpArray[2] = 0x05;
				#ifndef SI474X_Radio
					AMAntATU();
				#else
					AMPreAmpSwitch(TurnOffAMAmp);
					AM_ATTU(AMAttuOn);
				#endif
				break;
				
			case AM_Receive:
				PowerUpArray[0] = 0x01;
				#if(Osc_source==UseExtCYC)
					PowerUpArray[1] = 0xd1;
				#else
					PowerUpArray[1] = 0xc1;
				#endif
				PowerUpArray[2] = 0x05;
				#ifndef SI474X_Radio
					AMAntNoATU();
				#else
					AMPreAmpSwitch(TurnOnAMAmp);
					AM_ATTU(AMAttuOff);
				#endif
				break;
				
			default:
				#ifdef Radio_Module_Console_Debug
					puts("Error:Want to send unknown power up mode!\n");
				#endif
				#ifndef SI474X_Radio
					AMAntATU();
				#else
					AMPreAmpSwitch(TurnOffAMAmp);
					AM_ATTU(AMAttuOn);
				#endif
				return UnknownPowerUpMode;
				break;
		}
		ResetRadioModule();
		Delay(6000);
		Status = OpRadioModule(WriteOp,PowerUpArray,3);
		if(Status != OK)
			return Status;
		
		Status = Wait_CTS_High(Power_Up);
		if(Status != OK)
			return Status;
			
		Delay(500000);
		
		Status = RadioModule_Set_Prop(Prop_REFCLK_FREQ,CYCFreq);
		if(Status != OK)
			return Status;
		
		Delay(6000);
		
		switch(PowerUpMode)
		{
			case FM_Receive:
				Status = Rds_Enable();
				if(Status != OK)
					return Status;
				break;
			case AM_Receive:
				Status = Rds_Disable();
				if(Status != OK)
					return Status;
				break;
			default:
				Status = Rds_Disable();
				if(Status != OK)
					return Status;
				break;
		}	
				
	    return OK;
	}
	
	//CMD2 0x10
	RM_U8 RadioModule_Get_Rev(void)
	{
		RM_U8 Status;
		RM_U8 GetRevArray[2];
		
		GetRevArray[0] = 0x10;
		GetRevArray[1] = 0x00;
		
		Status = OpRadioModule(WriteOp,GetRevArray,2);
		if(Status != OK)
			return Status;
		
		Status = Wait_CTS_High(Get_Rev);
		if(Status != OK)
			return Status;
			
		Status = OpRadioModule(ReadOp,(RM_U8 *)(&RadioRevInfo),9);
		if(Status != OK)
			return Status;
		
		return OK;
	}
	
	//CMD3 0x11
	RM_U8 RadioModule_Power_Down(void)
	{
		RM_U8 Status;
		RM_U8 PD_cmd;
		
		PD_cmd = 0x11;
		
		Status = OpRadioModule(WriteOp,(RM_U8 *)(&PD_cmd),1);
		if(Status != OK)
			return Status;
		
		Status = Wait_CTS_High(Get_Rev);
		AMPTurnOff();
		
		return Status;	
	}
	
	//CMD4 0x12
	RM_U8 RadioModule_Set_Prop(RM_U16 PropName,RM_U16 PropVal)
	{
		RM_U8 Status;
		RM_U8 SetPropArray[6];
		
		SetPropArray[0] = 0x12;
		SetPropArray[1] = 0x00;
		SetPropArray[2] = (RM_U8)((PropName >> 8) & 0xff);
		SetPropArray[3] = (RM_U8)(PropName & 0xff);
		SetPropArray[4] = (RM_U8)((PropVal >> 8) & 0xff);
		SetPropArray[5] = (RM_U8)(PropVal & 0xff);
		
		Status = OpRadioModule(WriteOp,SetPropArray,6);
		if(Status != OK)
			return Status;
		
		Status = Wait_CTS_High(Set_Prop);
		
		return Status;	
	}
	
	//CMD5 0x13
	RM_U8 RadioModule_Get_Prop(RM_U16 PropName,RM_U16 *PropVal)
	{
		RM_U8 Status;
		RM_U8 GetPropArray[4];
		
		GetPropArray[0] = 0x13;
		GetPropArray[1] = 0x00;
		GetPropArray[2] = (RM_U8)((PropName >> 8) & 0xff);
		GetPropArray[3] = (RM_U8)(PropName & 0xff);
		
		Status = OpRadioModule(WriteOp,GetPropArray,4);
		if(Status != OK)
			return Status;
		
		Status = Wait_CTS_High(Get_Prop);
		if(Status != OK)
			return Status;
			
		//WaitContinue();//only for debug
		Status = OpRadioModule(ReadOp,GetPropArray,4);
		if(Status != OK)
			return Status;
		
		*PropVal = (RM_U16)(((GetPropArray[2] << 8) | GetPropArray[3]) & 0xffff);
		
		return OK;
	}
	
	//CMD6 0x14
	RM_U8 RadioModule_Get_Int_Status(RM_U8 *IntStatus)
	{
		RM_U8 Status;
		RM_U8 GetIntStatus_cmd;
		
		GetIntStatus_cmd = 0x14;
		Status = OpRadioModule(WriteOp,(RM_U8 *)(&GetIntStatus_cmd),1);
		if(Status != OK)
			return Status;
		
		Status = Wait_CTS_High(Get_Int_Status);
		if(Status != OK)
			return Status;
			
		Status = OpRadioModule(ReadOp,IntStatus,1);
		return Status;	
	}
	
	//CMD7 0x20
	RM_U8 RadioModule_FM_Tune_Freq(RM_U16 FMFreqVal,RM_U8 ANTCAP)
	{
		RM_U8 Status;
		RM_U8 FMTuneFreqArray[5];
		
		FMTuneFreqArray[0] = 0x20;
		FMTuneFreqArray[1] = 0x00;
		FMTuneFreqArray[2] = (RM_U8)((FMFreqVal >> 8) & 0xff);
		FMTuneFreqArray[3] = (RM_U8)(FMFreqVal & 0xff);
		FMTuneFreqArray[4] = ANTCAP;
		
		Status = OpRadioModule(WriteOp,FMTuneFreqArray,5);
		if(Status != OK)
			return Status;
		
		Status = Wait_CTS_High(FM_Tune_Freq);
		
		return Status;
	}
		
	//CMD8 0x21
	RM_U8 RadioModule_FM_Seek_Start(RM_U8 SeekMode)
	{						
		RM_U8 Status;							//SeekUp_Halt		
		RM_U8 FMSeekStartArray[2];				//SeekUp_Wrap	
												//SeekDn_Halt
		FMSeekStartArray[0] = 0x21;				//SeekDn_Wrap
		FMSeekStartArray[1] = SeekMode;
		
		Status = OpRadioModule(WriteOp,FMSeekStartArray,2);
		if(Status != OK)
			return Status;
		
		Status = Wait_CTS_High(FM_Seek_Start);
		
		return Status;
	}
	
	//CMD9 0x22
	RM_U8 RadioModule_FM_Tune_Status(RM_U8 SetTuneStatus)
	{					
		RM_U8 Status;							//Clr_Seek_Tune_Int
		RM_U8 FMTuneStatusArray[2];				//Cancel_Seek
		
		FMTuneStatusArray[0] = 0x22;
		FMTuneStatusArray[1] = SetTuneStatus;
		
		Status = OpRadioModule(WriteOp,FMTuneStatusArray,2);
		if(Status != OK)
			return Status;
		
		Status = Wait_CTS_High(FM_Tune_Status);
		if(Status != OK)
			return Status;
		
		Status = OpRadioModule(ReadOp,(RM_U8 *)(&FmTuneStatusInfo),8);
		if(Status != OK)
			return Status;
		
		return OK;
	}
	
	//CMD10 0x23
	RM_U8 RadioModule_FM_RSQ_Status(RM_U8 ClrRSQInt)
	{				
		RM_U8 Status;							//Get_RSQ_Status
		RM_U8 FMRSQStatusArray[2];				//Clr_RSQ_Int
		
		FMRSQStatusArray[0] = 0x23;
		FMRSQStatusArray[1] = ClrRSQInt;
		
		Status = OpRadioModule(WriteOp,FMRSQStatusArray,2);
		if(Status != OK)
			return Status;
		
		Status = Wait_CTS_High(FM_RSQ_Status);
		if(Status != OK)
			return Status;
		
		Status = OpRadioModule(ReadOp,(RM_U8 *)(&FmRSQStatusInfo),8);
		if(Status != OK)
			return Status;
		
		return OK;
	}
	
	//CMD11 0x24
	RM_U8 RadioModule_FM_RDS_Status(RM_U8 GetRDSStatus)
	{
		RM_U8 Status;							//FM_RDS_Status_Only
		RM_U8 FMRDSStatusArray[2];				//FM_Empty_RDS_FIFO
												//FM_Clr_RDS_Int
		FMRDSStatusArray[0] = 0x24;
		FMRDSStatusArray[1] = GetRDSStatus;
		
		Status = OpRadioModule(WriteOp,FMRDSStatusArray,2);
		if(Status != OK)
			return Status;
		
		Status = Wait_CTS_High(FM_RSQ_Status);
		if(Status != OK)
			return Status;
		
		if(GetRDSStatus == FM_RDS_Status_Only)
		{
			Status = OpRadioModule(ReadOp,(RM_U8 *)(&FmRDSStatusInfo),13);
			if(Status != OK)
				return Status;
		}
		
		return OK;
	}
	
	//CMD12 0x27
	RM_U8 RadioModule_FM_AGC_Status(void)
	{
		RM_U8 Status;
		RM_U8 FMAGCStatusCMD;
		
		FMAGCStatusCMD = 0x27;
		
		Status = OpRadioModule(WriteOp,(RM_U8 *)(&FMAGCStatusCMD),1);
		if(Status != OK)
			return Status;
		
		Status = Wait_CTS_High(FM_AGC_Status);
		if(Status != OK)
			return Status;
		
		Status = OpRadioModule(ReadOp,(RM_U8 *)(&FMAGCStatusInfo),3);
		if(Status != OK)
			return Status;
		
		return OK;
	}	
	
	//CMD13 0x28
	RM_U8 RadioModule_FM_AGC_Override(RM_U8	AGC_Dis,RM_U8 LNA_Gain_Index)
	{	
		RM_U8 Status;
		RM_U8 FMAGCOverrideArray[3];
		
		FMAGCOverrideArray[0] = 0x28;
		FMAGCOverrideArray[1] = (AGC_Dis & 0x01);
		if(LNA_Gain_Index > 0x1a)
			FMAGCOverrideArray[2] = 0x1a;
		else
			FMAGCOverrideArray[2] = LNA_Gain_Index;
		
		Status = OpRadioModule(WriteOp,(RM_U8 *)(&FMAGCOverrideArray),1);
		if(Status != OK)
			return Status;
		
		Status = Wait_CTS_High(FM_AGC_Override);
		
		return Status;
	}
	
	//CMD14 0x40
	RM_U8 RadioModule_AM_Tune_Freq(RM_U16 AMFreqVal,RM_U16 ANTCAP)
	{
		RM_U8 Status;
		RM_U8 AMTuneFreqArray[6];
		
		AMTuneFreqArray[0] = 0x40;
		AMTuneFreqArray[1] = 0x00;
		AMTuneFreqArray[2] = (RM_U8)((AMFreqVal >> 8) & 0xff);
		AMTuneFreqArray[3] = (RM_U8)(AMFreqVal & 0xff);
		AMTuneFreqArray[4] = (RM_U8)((ANTCAP >> 8) & 0xff);
		AMTuneFreqArray[5] = (RM_U8)(ANTCAP & 0xff);
		
		Status = OpRadioModule(WriteOp,AMTuneFreqArray,6);
		if(Status != OK)
			return Status;
		
		Status = Wait_CTS_High(AM_Ture_Freq);
		
		return Status;
	}
	
	//CMD15 0x41
	RM_U8 RadioModule_AM_Seek_Start(RM_U8 SeekMode)
	{
		RM_U8 Status;							//SeekUp_Wrap
		RM_U8 AMSeekStartArray[2];				//SeekUp_Halt
												//SeekDn_Wrap
		AMSeekStartArray[0] = 0x41;				//SeekDn_Halt
		AMSeekStartArray[1] = SeekMode;
		
		Status = OpRadioModule(WriteOp,AMSeekStartArray,2);
		if(Status != OK)
			return Status;
		
		Status = Wait_CTS_High(AM_Seek_Start);
		
		return Status;
	}
	
	//CMD16 0x42
	RM_U8 RadioModule_AM_Tune_Status(RM_U8 SetTuneStatus)
	{		
		RM_U8 Status;							//Cancel_Seek
		RM_U8 AMTuneStatusArray[2];				//Clr_Seek_Tune_Int
		
		AMTuneStatusArray[0] = 0x42;
		AMTuneStatusArray[1] = SetTuneStatus;
		
		Status = OpRadioModule(WriteOp,AMTuneStatusArray,2);
		if(Status != OK)
			return Status;
		
		Status = Wait_CTS_High(AM_Tune_Status);
		if(Status != OK)
			return Status;
		
		Status = OpRadioModule(ReadOp,(RM_U8 *)(&AmTuneStatusInfo),8);
		if(Status != OK)
			return Status;
		
		return OK;
	}
	
	//CMD17 0x43
	RM_U8 RadioModule_AM_RSQ_Status(RM_U8 ClrRSQInt)
	{
		RM_U8 Status;
		RM_U8 AMRDSStatusArray[2];
		
		AMRDSStatusArray[0] = 0x43;
		AMRDSStatusArray[1] = ClrRSQInt & 0x01;
		
		Status = OpRadioModule(WriteOp,AMRDSStatusArray,2);
		if(Status != OK)
			return Status;
		
		Status = Wait_CTS_High(AM_RSQ_Status);
		if(Status != OK)
			return Status;
		
		Status = OpRadioModule(ReadOp,(RM_U8 *)(&AmRSQStatusInfo),6);
		if(Status != OK)
			return Status;
		
		return OK;	
	}
	
	//CMD18 0x80
	RM_U8 RadioModule_GPO_CTL(RM_U8 Mode)
	{
		RM_U8 Status;
		RM_U8 GPOCTLArray[2];
		
		GPOCTLArray[0] = 0x80;
		GPOCTLArray[1] = Mode & 0x0e;
		
		Status = OpRadioModule(WriteOp,GPOCTLArray,2);
		if(Status != OK)
			return Status;
		
		Status = Wait_CTS_High(AM_Seek_Start);
		
		return Status;
	}
	
	//CMD19 0x81
	RM_U8 RadioModule_GPO_SET(RM_U8 Level)
	{
		RM_U8 Status;
		RM_U8 GPOLevelArray[2];
		
		GPOLevelArray[0] = 0x81;
		GPOLevelArray[1] = Level & 0x0e;
		
		Status = OpRadioModule(WriteOp,GPOLevelArray,2);
		if(Status != OK)
			return Status;
		
		Status = Wait_CTS_High(AM_Seek_Start);
		
		return Status;	
	}
	
	RM_U8 Wait_CTS_High(RM_U8 CMD)
	{
		RM_U16 Loop;
		RM_U8 Status;
		RM_U8 CTS_Status;
		
		Loop = 0;
		do
		{
			Status = OpRadioModule(ReadOp,(RM_U8 *)(&CTS_Status),1);
			if(Status != OK)
				return Status;
			Loop++;	
		}
		while(((CTS_Status & 0x80) != 0x80) && (Loop<0xfff));
		//printf("Status = 0x%.2x  , CTS_Status = 0x%.2x\n",Status,CTS_Status);
		if(Loop>=0xfff)
		{
			#ifdef Radio_Module_Console_Debug
				switch(CMD)
				{
					case Power_Up:			puts("CMD Power_Up wait CTS to high EXP loop times limit!\n");break;
					case Get_Rev:			puts("CMD Get_Rev wait CTS to high EXP loop times limit!\n");break;
					case Power_Down:		puts("CMD Power_Down wait CTS to high EXP loop times limit!\n");break;
					case Set_Prop:			puts("CMD Set_Prop wait CTS to high EXP loop times limit!\n");break;
					case Get_Prop:			puts("CMD Get_Prop wait CTS to high EXP loop times limit!\n");break;
					case Get_Int_Status:	puts("CMD Get_Int_Status wait CTS to high EXP loop times limit!\n");break;
					case FM_Tune_Freq:		puts("CMD FM_Tune_Freq wait CTS to high EXP loop times limit!\n");break;
					case FM_Seek_Start:		puts("CMD FM_Seek_Start wait CTS to high EXP loop times limit!\n");break;
					case FM_Tune_Status:	puts("CMD FM_Tune_Status wait CTS to high EXP loop times limit!\n");break;
					case FM_RSQ_Status:		puts("CMD FM_RSQ_Status wait CTS to high EXP loop times limit!\n");break;
					case FM_RDS_Status:		puts("CMD FM_RDS_Status wait CTS to high EXP loop times limit!\n");break;
					case FM_AGC_Status:		puts("CMD FM_AGC_Status wait CTS to high EXP loop times limit!\n");break;
					case FM_AGC_Override:	puts("CMD FM_AGC_Override wait CTS to high EXP loop times limit!\n");break;
					case AM_Ture_Freq:		puts("CMD AM_Ture_Freq wait CTS to high EXP loop times limit!\n");break;
					case AM_Seek_Start:		puts("CMD AM_Seek_Start wait CTS to high EXP loop times limit!\n");break;
					case AM_Tune_Status:	puts("CMD AM_Tune_Status wait CTS to high EXP loop times limit!\n");break;
					case AM_RSQ_Status:		puts("CMD AM_RSQ_Status wait CTS to high EXP loop times limit!\n");break;
					case GPO_CTL:			puts("CMD GPO_CTL wait CTS to high EXP loop times limit!\n");break;
					case GPO_SET:			puts("CMD GPO_SET wait CTS to high EXP loop times limit!\n");break;
					default:break;
				}
			#endif
			return LoopEXPLimit;
		}		
		
		return OK;
	}
	
	//only for debug
	#ifdef Radio_Module_Console_Debug
	void WaitContinue(void)
	{
		RM_S8 key;
		
		puts("press c to continue!\n");
		for(;;)
		{
			if(kbhit())
			{
				key = getkey();
				if(key=='c'||key=='C')
					return;
			}
		}
	}
	#endif
	
#endif

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久99精品久久久| 国产成人精品免费看| 久久久久免费观看| 欧洲中文字幕精品| 高清日韩电视剧大全免费| 亚洲成人tv网| 亚洲九九爱视频| 久久久久国色av免费看影院| 欧美日韩一区二区三区四区五区 | 欧美日韩精品欧美日韩精品一| 久久99国产精品久久99| 午夜激情一区二区三区| 亚洲欧美日韩综合aⅴ视频| 精品对白一区国产伦| 亚洲欧美怡红院| 欧美videossexotv100| 欧美高清性hdvideosex| 91亚洲精品久久久蜜桃网站| 国产精品一区2区| 免费在线观看一区二区三区| 亚洲一区二区黄色| 亚洲三级在线观看| 国产精品视频一区二区三区不卡| 日韩欧美高清dvd碟片| 欧美日韩国产大片| 色婷婷久久99综合精品jk白丝| 丰满岳乱妇一区二区三区| 国产在线麻豆精品观看| 开心九九激情九九欧美日韩精美视频电影| 亚洲伦理在线精品| 亚洲女爱视频在线| 成人免费视频在线观看| 成人欧美一区二区三区在线播放| 国产日韩综合av| 久久尤物电影视频在线观看| 日韩欧美久久久| 欧美一区二区三区系列电影| 欧美巨大另类极品videosbest| 欧美日韩国产片| 欧美福利电影网| 欧美群妇大交群中文字幕| 欧美性受极品xxxx喷水| 精品视频999| 制服丝袜日韩国产| 日韩免费一区二区三区在线播放| 欧美美女直播网站| 欧美一区二区三区日韩| 日韩午夜在线观看视频| 久久婷婷国产综合精品青草| 欧美成人一区二区三区| 2023国产精品视频| 欧美国产禁国产网站cc| 亚洲欧洲中文日韩久久av乱码| 亚洲精品视频一区二区| 亚洲精品国产无套在线观| 一区二区三区国产精华| 婷婷综合五月天| 麻豆一区二区在线| 国产精品系列在线播放| 97成人超碰视| 精品视频免费看| 欧美videossexotv100| 亚洲国产成人在线| 亚洲一区二区精品3399| 免费久久精品视频| 国产91精品露脸国语对白| 色老汉一区二区三区| 欧美三电影在线| 久久品道一品道久久精品| 亚洲欧美在线aaa| 日韩va欧美va亚洲va久久| 久久99精品国产.久久久久久| 成人免费毛片app| 欧美精品国产精品| 国产欧美综合在线观看第十页 | 国产精品免费观看视频| 亚洲一区二区av电影| 老鸭窝一区二区久久精品| 不卡的av电影| 3atv一区二区三区| 欧美国产精品中文字幕| 亚洲6080在线| 国产69精品久久久久777| 欧美婷婷六月丁香综合色| 亚洲欧美电影一区二区| 日本欧美加勒比视频| 白白色 亚洲乱淫| 欧美乱熟臀69xxxxxx| 国产日韩欧美a| 日日夜夜免费精品| av在线这里只有精品| 欧美成人猛片aaaaaaa| 亚洲男人电影天堂| 国产一区视频导航| 欧美日韩一区二区在线观看视频| 国产三级精品在线| 麻豆精品一区二区| 欧美视频一区二区三区在线观看| 国产欧美一区二区精品性| 丝袜亚洲另类欧美| 色综合色狠狠综合色| 久久精品一区二区三区不卡牛牛| 日韩国产欧美一区二区三区| 91在线观看地址| 久久久精品综合| 老司机免费视频一区二区三区| 欧美中文字幕一二三区视频| 国产精品亲子乱子伦xxxx裸| 久久疯狂做爰流白浆xx| 欧美色欧美亚洲另类二区| 18欧美乱大交hd1984| 粉嫩欧美一区二区三区高清影视| 日韩欧美国产1| 天堂影院一区二区| 欧美色网一区二区| 亚洲蜜臀av乱码久久精品蜜桃| 国产精品1区2区3区| 欧美变态tickling挠脚心| 亚洲成a人v欧美综合天堂下载| 99精品视频一区二区| 久久精品视频一区二区| 久久精品免费观看| 日韩一卡二卡三卡国产欧美| 水蜜桃久久夜色精品一区的特点| 色噜噜狠狠成人中文综合 | 成人欧美一区二区三区1314| 国产福利一区二区三区视频 | 在线看国产一区| 亚洲婷婷综合色高清在线| 成人一区二区三区中文字幕| 久久无码av三级| 激情综合色播激情啊| 日韩精品综合一本久道在线视频| 免播放器亚洲一区| 欧美一区二区三区免费| 奇米一区二区三区| 日韩三级av在线播放| 日韩电影一区二区三区| 欧美一区二区三区免费在线看| 免费精品视频在线| 日韩久久久久久| 国产精品系列在线播放| 国产精品嫩草久久久久| 91网站在线播放| 亚洲综合丝袜美腿| 欧美精品久久久久久久久老牛影院 | 精品久久人人做人人爰| 国产一区在线视频| 亚洲国产精品精华液2区45| 国产超碰在线一区| 日韩理论片中文av| 欧美性色aⅴ视频一区日韩精品| 亚洲午夜三级在线| 91.麻豆视频| 国产美女精品人人做人人爽| 欧美国产一区在线| 欧美综合视频在线观看| 蜜桃av噜噜一区| 国产女人18毛片水真多成人如厕 | 成人美女视频在线看| 亚洲人成网站在线| 7777精品伊人久久久大香线蕉的| 久久99蜜桃精品| 中文字幕第一区第二区| 一本久道中文字幕精品亚洲嫩| 亚洲电影你懂得| www国产成人免费观看视频 深夜成人网| 国产成人免费网站| 一区二区三区四区乱视频| 欧美丰满少妇xxxxx高潮对白| 精品一区二区三区免费播放 | 亚洲综合一区二区| 日韩天堂在线观看| www.亚洲免费av| 日韩精品欧美精品| 国产精品久久久久久福利一牛影视| 欧美三级资源在线| 国产麻豆成人精品| 亚洲电影激情视频网站| 国产日韩欧美一区二区三区综合| 色琪琪一区二区三区亚洲区| 伦理电影国产精品| 亚洲日本韩国一区| 精品精品国产高清一毛片一天堂| 色婷婷一区二区三区四区| 琪琪一区二区三区| 亚洲精品福利视频网站| 久久免费电影网| 欧美日韩成人综合在线一区二区| 国产精品亚洲一区二区三区在线| 亚洲一区二区成人在线观看| 欧美韩日一区二区三区| 日韩一级免费观看| 91黄视频在线观看| 国产高清不卡二三区| 日韩成人一区二区三区在线观看| 亚洲欧洲av色图| 久久精品人人做人人综合| 欧美伦理视频网站| 色婷婷激情综合|