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

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

?? i2c.c

?? Freescale MCF5445evb 參考測試代碼
?? C
字號:
/* * File:		I2C.c * Purpose:		I2C transfer functions and interrupt handler * * Notes:		 *   */ #include "common.h"#include "i2c.h"/* Globals to be shared throughout the project */I2C_BUFFER i2c_tx_buffer;I2C_BUFFER i2c_rx_buffer;/* Globals for this file only */uint8 master_mode;uint8 master_tx_done;/******************************************************************************//*	Purpose:  	General function for performing I2C master transfers.  Capable *				of performing Master TX, Master RX, and Master TX/RX w/ Repeated *				Start. *				 *	Arguments:	mode - Valid modes include I2C_TX, I2C_RX, and I2C_TXRX  *					(all modes defined in i2c.h) *				slave_address - The slave address of the I2C module that needs *					to be dealt with.   */voidi2c_master (uint8 mode, uint8 slave_address){    #ifdef POLLING_MODE		    int i;    uint8 dummy_read;        /* Clear IBCR.IBDIS, disable interrupts */    MCF_I2C_I2CR = 0x80;			    /* Reset index for TX and RX buffers */    i2c_tx_buffer.tx_index = 0;    i2c_rx_buffer.rx_index = 0;        if (mode == I2C_TXRX)    {	/* Make sure bus is idle */	while (MCF_I2C_I2SR & MCF_I2C_I2SR_IBB);	/* Put module in master TX mode (generates START) */	MCF_I2C_I2CR |= (MCF_I2C_I2CR_MSTA | MCF_I2C_I2CR_MTX);	/* Put target address into IBDR */	MCF_I2C_I2DR = ( 0 | slave_address | I2C_TX);	/* Wait for I2SR[IBB] (bus busy) to be set */	while (!(MCF_I2C_I2SR & MCF_I2C_I2SR_IBB));		/* Wait for address transfer to complete */	while (!(MCF_I2C_I2SR & MCF_I2C_I2SR_IIF));	MCF_I2C_I2SR &= ~MCF_I2C_I2SR_IIF;		/* Send the contents of the TX buffer */	while (i2c_tx_buffer.length > 0)	{	    MCF_I2C_I2DR = i2c_tx_buffer.buf[i2c_tx_buffer.tx_index++];	    i2c_tx_buffer.length--;	    /* Wait for transfer to complete */	    while (!(MCF_I2C_I2SR & MCF_I2C_I2SR_IIF));	    MCF_I2C_I2SR &= ~MCF_I2C_I2SR_IIF;	}		/* Wait for a bit */	i=10000;	while(i--);		/* Set IBCR.RSTA and put in master RX mode */	MCF_I2C_I2CR |= (0 | MCF_I2C_I2CR_RSTA);	/* Put target address into IBDR and set the R/!W bit */	MCF_I2C_I2DR = (0 | slave_address | I2C_RX);		/* Wait for address transfer to complete */	while (!(MCF_I2C_I2SR & MCF_I2C_I2SR_IIF));	MCF_I2C_I2SR &= ~MCF_I2C_I2SR_IIF;		/* Clear TX/RX bit in order to set receive mode */	MCF_I2C_I2CR &= ~MCF_I2C_I2CR_MTX; 		/* Dummy read of IBDR to signal the module is ready for the next byte */	dummy_read = MCF_I2C_I2DR;		/* Receive data from slave */	while (i2c_rx_buffer.length > 0) 	{	    /* Wait for transfer to complete */	    while (!(MCF_I2C_I2SR & MCF_I2C_I2SR_IIF));	    MCF_I2C_I2SR &= ~MCF_I2C_I2SR_IIF;	    /* Check for second-to-last and last byte transmission.  After second-to-last	       byte is received, it is required to disable the ACK bit in order to signal	       to the slave that the last byte has been received.  The actual NAck does not	       take place until after the last byte has been received. */	    if (i2c_rx_buffer.length == 2) 	    {		/* Disable Acknowledge, generate STOP after next byte transfer */		MCF_I2C_I2CR |= MCF_I2C_I2CR_TXAK;	    }	    if(i2c_rx_buffer.length == 1) 	    {		/* Generate STOP */		MCF_I2C_I2CR &= ~MCF_I2C_I2CR_MSTA;	    }	    	    /* Store received data in RX buffer */	    i2c_rx_buffer.buf[i2c_rx_buffer.rx_index++] = MCF_I2C_I2DR;	    i2c_rx_buffer.length--;	}		/* Restore module to it's idle (but active) state */	MCF_I2C_I2CR = 0xC0;		return;	    }    else if (mode == I2C_TX)    {	/* Make sure bus is idle */	while (MCF_I2C_I2SR & MCF_I2C_I2SR_IBB);	/* Put module in master TX mode (generates START) */	MCF_I2C_I2CR |= (MCF_I2C_I2CR_MSTA | MCF_I2C_I2CR_MTX);	/* Put target address into IBDR */	MCF_I2C_I2DR = ( 0 | slave_address | I2C_TX);	/* Wait for I2SR[IBB] (bus busy) to be set */	while (!(MCF_I2C_I2SR & MCF_I2C_I2SR_IBB));		/* Wait for address transfer to complete */	while (!(MCF_I2C_I2SR & MCF_I2C_I2SR_IIF));	MCF_I2C_I2SR &= ~MCF_I2C_I2SR_IIF;		/* Send the contents of the TX buffer */	while (i2c_tx_buffer.length > 0)	{	    MCF_I2C_I2DR = i2c_tx_buffer.buf[i2c_tx_buffer.tx_index++];	    i2c_tx_buffer.length--;	    /* Wait for transfer to complete */	    while (!(MCF_I2C_I2SR & MCF_I2C_I2SR_IIF));	    MCF_I2C_I2SR &= ~MCF_I2C_I2SR_IIF;	}		/* Restore module to it's idle (but active) state */	MCF_I2C_I2CR = 0xC0;		return;    }    else if (mode == I2C_RX)    {	/* Make sure bus is idle */	while (MCF_I2C_I2SR & MCF_I2C_I2SR_IBB);	/* Put module in master TX mode (generates START) */	MCF_I2C_I2CR |= (MCF_I2C_I2CR_MSTA | MCF_I2C_I2CR_MTX);	/* Put target address into IBDR */	MCF_I2C_I2DR = ( 0 | slave_address | I2C_RX);	/* Wait for I2SR[IBB] (bus busy) to be set */	while (!(MCF_I2C_I2SR & MCF_I2C_I2SR_IBB));		/* Wait for address transfer to complete */	while (!(MCF_I2C_I2SR & MCF_I2C_I2SR_IIF));	MCF_I2C_I2SR &= ~MCF_I2C_I2SR_IIF;		/* Clear TX/RX bit in order to set receive mode */	MCF_I2C_I2CR &= ~MCF_I2C_I2CR_MTX; 		/* Dummy read of IBDR to signal the module is ready for the next byte */	dummy_read = MCF_I2C_I2DR;		/* Receive data from slave */	while (i2c_rx_buffer.length > 0) 	{	    /* Wait for transfer to complete */	    while (!(MCF_I2C_I2SR & MCF_I2C_I2SR_IIF));	    MCF_I2C_I2SR &= ~MCF_I2C_I2SR_IIF;	    /* Check for second-to-last and last byte transmission.  After second-to-last	       byte is received, it is required to disable the ACK bit in order to signal	       to the slave that the last byte has been received.  The actual NAck does not	       take place until after the last byte has been received. */	    if (i2c_rx_buffer.length == 2) 	    {		/* Disable Acknowledge, generate STOP after next byte transfer */		MCF_I2C_I2CR |= MCF_I2C_I2CR_TXAK;	    }	    if(i2c_rx_buffer.length == 1) 	    {		/* Generate STOP */		MCF_I2C_I2CR &= ~MCF_I2C_I2CR_MSTA;	    }	    	    /* Store received data in RX buffer */	    i2c_rx_buffer.buf[i2c_rx_buffer.rx_index++] = MCF_I2C_I2DR;	    i2c_rx_buffer.length--;	}		/* Restore module to it's idle (but active) state */	MCF_I2C_I2CR = 0xC0;		return;		    }    else	printf("**ERROR** : Invalid Master transfer mode selected.\n");        /* Interrrupt-Driven */#else        master_mode = mode;    master_tx_done = FALSE;    /* Reset index for TX and RX buffers */    i2c_tx_buffer.tx_index = 0;    i2c_rx_buffer.rx_index = 0;        /* Transmit followed by receive using RSTA */    if (mode == I2C_TXRX)    {	/* Make sure bus is idle */	while (MCF_I2C_I2SR & MCF_I2C_I2SR_IBB);	/* Put module in master TX mode (generates START) */	MCF_I2C_I2CR |= (MCF_I2C_I2CR_MSTA | MCF_I2C_I2CR_MTX);	/* Put target address into IBDR */	MCF_I2C_I2DR = ( 0 | slave_address | I2C_TX);	/* Wait for I2SR[IBB] (bus busy) to be set */	while (!(MCF_I2C_I2SR & MCF_I2C_I2SR_IBB));	/* Wait for TX to finish before starting RX */	while (!master_tx_done);		master_mode = I2C_RX;	/* Set IBCR.RSTA and put in master RX mode */	MCF_I2C_I2CR |= (0 | MCF_I2C_I2CR_RSTA);	/* Put target address into IBDR and set the R/!W bit */	MCF_I2C_I2DR = (0 | slave_address | I2C_RX);		/* Wait for bus to become free before continuing */	while (MCF_I2C_I2SR & MCF_I2C_I2SR_IBB);		/* Restore module to it's idle (but active) state */	MCF_I2C_I2CR = 0xC0;		return;    }    /* Single TX or RX */    else if ( (mode == I2C_TX) | (mode == I2C_RX) )    {	/* Make sure bus is idle */	while (MCF_I2C_I2SR & MCF_I2C_I2SR_IBB);	/* Put module in master TX mode (generates START) */	MCF_I2C_I2CR |= (0 | MCF_I2C_I2CR_MSTA | MCF_I2C_I2CR_MTX);	/* Put target address into IBDR */	MCF_I2C_I2DR = ( 0 | slave_address | mode);	/* Wait for I2SR[IBB] (bus busy) to be set */	while (!(MCF_I2C_I2SR & MCF_I2C_I2SR_IBB));		/* Wait for bus to become free before continuing */	while (MCF_I2C_I2SR & MCF_I2C_I2SR_IBB);	/* Restore module to it's idle (but active) state */	MCF_I2C_I2CR = 0xC0;		return;    }    else	printf("**ERROR** : Invalid Master transfer mode selected.\n");#endif}/******************************************************************************//*	Purpose:  	General I2C handler, created using the flowchart example  *				included in the I2C chapter of the UM.   */__interrupt__void i2c_handler(void){    /* Temp variable for dummy reads */    uint8 dummy_read;		    /* Clear the I2C Interrupt Flag. */    MCF_I2C_I2SR &= ~MCF_I2C_I2SR_IIF;        /* Check if this device is in Master or Slave Mode. */    if (MCF_I2C_I2CR & MCF_I2C_I2CR_MSTA)    {	/* Master Mode - Check if this device is in Transmit or Receive Mode. */	if (MCF_I2C_I2CR & MCF_I2C_I2CR_MTX)	{	    /* Master Transmit Mode - Check if last byte was tranmitted. */	    if ((i2c_tx_buffer.length == 0) && (master_mode != I2C_RX))	    {		/* Last byte was transmitted - 		   Generate Stop signal by changing to Slave Mode. */		/* If TXRX mode (Repeated Start), signal end of TX */		if (master_mode == I2C_TXRX)		    master_tx_done = TRUE;		/* Issue STOP */		else		    MCF_I2C_I2CR &= ~MCF_I2C_I2CR_MSTA;		                #ifdef DEBUG		     printf("Master TX mode: Last Byte\n");                #endif	    }	    else	    {		/* More bytes to be transmitted - Check if ACK received. */		if (MCF_I2C_I2SR & MCF_I2C_I2SR_RXAK)		{		    /* ACK not received - Generate STOP */		    MCF_I2C_I2CR &= ~MCF_I2C_I2CR_MSTA;		                        #ifdef DEBUG		         printf("Master TX mode: NAK\n");                    #endif		}		else		{		    /* Check if end of address cycle */		    if (master_mode == I2C_RX)		    {			MCF_I2C_I2CR &= ~MCF_I2C_I2CR_MTX;			dummy_read = MCF_I2C_I2DR;			                        #ifdef DEBUG			     printf("Master TX mode: End of RX address cycle, switch to RX mode.\n");                        #endif		    }		    /* ACK received, send data */		    else		    {			/* Not end of address cycle - Write next byte to MBDR */			MCF_I2C_I2DR = i2c_tx_buffer.buf[i2c_tx_buffer.tx_index++];			i2c_tx_buffer.length--;                        #ifdef DEBUG			     printf("Master TX mode: Send Byte - 0x%02X\n",i2c_tx_buffer.buf[i2c_tx_buffer.tx_index-1]);                        #endif		    }		}	    } 	}	else	{	    /* Master Receive Mode - Check if this is last byte to be read. */	    	    if (i2c_rx_buffer.length == 1)	    {		printf("I2CR TXAK = 0x%02X\n",MCF_I2C_I2CR);		/* Last byte to be read - 		   Generate Stop signal by changing to Slave Mode. */		MCF_I2C_I2CR &= ~MCF_I2C_I2CR_MSTA;		#ifdef DEBUG		     printf("Master RX mode: All data received, send STOP.\n");                #endif	    }	    else	    {		/* Not last byte to be read - Check if second to last byte. */		if (i2c_rx_buffer.length == 2)		{		    printf("I2CR S2L  = 0x%02X\n",MCF_I2C_I2CR);		    /* Second to last byte to be read - Set Transmit Acknowledge Enable		       bit so no ACK is sent after the next byte is received, which		       indicates "end of data" to the slave. */		    MCF_I2C_I2CR |= MCF_I2C_I2CR_TXAK;		    		    #ifdef DEBUG		         printf("Master RX mode: Second-to-last byte received, set TXAK.\n");                    #endif		}	    }	    /* Store received data in RX buffer */	    i2c_rx_buffer.buf[i2c_rx_buffer.rx_index++] = MCF_I2C_I2DR;	    i2c_rx_buffer.length--;	    #ifdef DEBUG	         printf("Master RX mode: Receive byte - 0x%02X\n",i2c_rx_buffer.buf[i2c_rx_buffer.rx_index-1]);            #endif	}    }    else    {	/* Slave Mode - Check if Arbitration Lost. */	if (MCF_I2C_I2SR & MCF_I2C_I2SR_IAL)	{	    #ifdef DEBUG	         printf("Arbitration Lost.\n");            #endif	    /* Clear IAL bit */	    MCF_I2C_I2SR &= ~MCF_I2C_I2SR_IAL;	    	    /* Arbitration Lost - Check if this device is being addressed as slave.	       (If not, nothing more needs to be done.) */	    if (MCF_I2C_I2SR & MCF_I2C_I2SR_IAAS)	    {		/* Addressed as slave - 		   Check if master was reading from slave or writing to slave. */		if (MCF_I2C_I2SR & MCF_I2C_I2SR_SRW)		{		    /* Set tx_index to 0 */		    i2c_tx_buffer.tx_index = 0;		    		    /* Master was reading from slave - Set Transmit Mode. */		    MCF_I2C_I2CR |= MCF_I2C_I2CR_MTX;		    		    /* Write data to MBDR. */		    MCF_I2C_I2DR = i2c_tx_buffer.buf[i2c_tx_buffer.tx_index++];		    #ifdef DEBUG		         printf("Arbitration Lost: Addressed as slave - TX mode.\n");                    #endif		}		else		{		    /* Set rx_index to 0 */		    i2c_rx_buffer.rx_index = 0;		    		    /* Master was writing to slave - Set Receive Mode. */		    MCF_I2C_I2CR &= ~MCF_I2C_I2CR_MTX;		    		    /* Dummy read from MBDR, to clear the ICF bit. */		    dummy_read = MCF_I2C_I2DR;		    		    #ifdef DEBUG		         printf("Arbitration Lost: Addressed as slave - RX mode.\n");                    #endif		}	    }	    	}	else	{	    /* Arbitration Not Lost - Check if data byte is this devices's Slave Address byte. */	    if (MCF_I2C_I2SR & MCF_I2C_I2SR_IAAS)	    {		/* Data byte is Slave Address byte - Check Slave Read/Write bit. */		if (MCF_I2C_I2SR & MCF_I2C_I2SR_SRW)		{		    /* Set tx_index to 0 */		    i2c_tx_buffer.tx_index = 0;		    		    /* Master was reading from slave - Set Transmit Mode. */		    MCF_I2C_I2CR |= MCF_I2C_I2CR_MTX;		    		    /* Write data to MBDR. */		    MCF_I2C_I2DR = i2c_tx_buffer.buf[i2c_tx_buffer.tx_index++];		    #ifdef DEBUG		         printf("Slave TX: First byte - 0x%02X\n",i2c_tx_buffer.buf[i2c_tx_buffer.tx_index-1]);                    #endif		}		else		{		    /* Master has specified Slave Receive Mode.		       Set Receive Mode.  (Writing to MBCR clears IAAS.) */		    		    /* Set rx_index to 0 */		    i2c_rx_buffer.rx_index = 0;		    		    MCF_I2C_I2CR &= ~MCF_I2C_I2CR_MTX;		    		    /* Read address data from MBDR and store it. */		    dummy_read = MCF_I2C_I2DR;		    #ifdef DEBUG		         printf("Slave RX: Receive address.\n");                    #endif		}	    }	    else	    {		/* Data byte received is not Slave Address byte - 		   Check if this device is in Transmit or Receive Mode. */		if (MCF_I2C_I2CR & MCF_I2C_I2CR_MTX)		{		    		    /* Last byte received? */		    if (MCF_I2C_I2SR & MCF_I2C_I2SR_RXAK)		    {			MCF_I2C_I2CR &= ~MCF_I2C_I2CR_MTX;			dummy_read = MCF_I2C_I2DR;			#ifdef DEBUG			     printf("Slave TX: Last byte has been sent.\n");                        #endif		    }		    else		    {			/* Write data to MBDR. */			MCF_I2C_I2DR = i2c_tx_buffer.buf[i2c_tx_buffer.tx_index++];			i2c_tx_buffer.length--;			#ifdef DEBUG			     printf("Slave TX: Send byte - 0x%02X\n",i2c_tx_buffer.buf[i2c_tx_buffer.tx_index-1]);                        #endif		    }		}		else		{		    /* Receive Mode - Read data from MBDR and store it. */		    i2c_rx_buffer.buf[i2c_rx_buffer.rx_index++] = MCF_I2C_I2DR;		    i2c_rx_buffer.length++;		    i2c_rx_buffer.data_present = TRUE;		    #ifdef DEBUG		         printf("Slave RX: Receive byte - 0x%02X\n",i2c_rx_buffer.buf[i2c_rx_buffer.rx_index-1]);                    #endif		}	    }	}    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
激情综合色综合久久| 粉嫩嫩av羞羞动漫久久久| 中文字幕亚洲欧美在线不卡| 久久久久高清精品| 国产无人区一区二区三区| 欧美高清一级片在线观看| 国产精品女主播av| 亚洲精品国产品国语在线app| 亚洲图片欧美激情| 亚洲一区二区三区免费视频| 亚洲.国产.中文慕字在线| 五月天久久比比资源色| 蜜桃一区二区三区四区| 国产激情精品久久久第一区二区 | 日本高清无吗v一区| 91女神在线视频| 欧美日韩情趣电影| 日韩一区二区三区在线| 欧美变态tickle挠乳网站| 久久久亚洲国产美女国产盗摄| 久久精品亚洲麻豆av一区二区 | 91免费精品国自产拍在线不卡| 91在线视频免费91| 欧美精品丝袜久久久中文字幕| 精品国产在天天线2019| 中文字幕日韩一区| 免费观看在线综合色| 福利一区二区在线| 欧美高清一级片在线| 国产午夜精品一区二区 | 欧美日韩大陆在线| 久久久www成人免费毛片麻豆 | 欧美日韩一区在线| 久久人人超碰精品| 一区二区高清在线| 国产精品亚洲视频| 欧美人狂配大交3d怪物一区| 国产欧美中文在线| 丝袜诱惑亚洲看片| 91麻豆国产香蕉久久精品| 欧美一区二区在线不卡| 一区二区三区波多野结衣在线观看| 欧美aaaaaa午夜精品| 91免费国产在线观看| www国产精品av| 日韩黄色片在线观看| 色婷婷狠狠综合| 国产视频一区二区在线观看| 香蕉乱码成人久久天堂爱免费| 成人的网站免费观看| 久久综合九色综合久久久精品综合 | 三级影片在线观看欧美日韩一区二区| 国产在线不卡一区| 日韩女优av电影在线观看| 亚洲午夜在线观看视频在线| 成人av动漫网站| 精品成人a区在线观看| 亚洲国产成人91porn| 色天天综合色天天久久| 国产亚洲午夜高清国产拍精品| 免费在线看一区| 欧美一区二视频| 日韩国产精品久久久| 欧美精品亚洲二区| 午夜精品免费在线观看| 欧美狂野另类xxxxoooo| 亚洲国产一区二区a毛片| 色悠悠久久综合| 自拍偷在线精品自拍偷无码专区| 国产成人在线观看免费网站| 国产三级精品视频| 国产99久久久久| 国产精品久久久久一区二区三区| 国产一区视频在线看| 精品99久久久久久| 国产一区二区久久| 亚洲精品在线三区| 国产一区不卡在线| 中文无字幕一区二区三区 | 午夜精品久久久久久久久| 欧美午夜一区二区| 日韩精品国产精品| 日韩免费福利电影在线观看| 青青草成人在线观看| 欧美mv日韩mv| 高清beeg欧美| 亚洲在线视频网站| 日韩欧美中文字幕精品| 精品一区二区影视| 国产精品视频看| 色综合天天综合狠狠| 亚洲一区二区三区四区在线| 制服丝袜日韩国产| 国产成人自拍在线| 亚洲欧美另类久久久精品| 欧美日韩国产精选| 九九九精品视频| 亚洲欧美在线观看| 欧美日韩国产色站一区二区三区| 亚洲超丰满肉感bbw| wwwwxxxxx欧美| 色综合视频一区二区三区高清| 午夜不卡av在线| 久久先锋影音av| 在线免费观看成人短视频| 久久精品国产秦先生| 国产精品视频九色porn| 在线看国产日韩| 国产福利一区二区三区在线视频| 亚洲男人电影天堂| 精品成人一区二区| 欧美日韩国产综合草草| 国产精品白丝jk黑袜喷水| 亚洲综合清纯丝袜自拍| 亚洲精品一区二区三区福利| 色婷婷av一区二区三区大白胸| 精品在线视频一区| 亚洲国产欧美一区二区三区丁香婷| 日韩欧美123| 欧美三级中文字| 不卡av电影在线播放| 日韩国产欧美在线观看| 亚洲欧洲中文日韩久久av乱码| 2014亚洲片线观看视频免费| 欧美日韩国产精品成人| www.欧美.com| 韩国成人精品a∨在线观看| 亚洲一区日韩精品中文字幕| 欧美国产精品专区| 精品粉嫩超白一线天av| 欧美午夜不卡视频| 99久久精品免费看| 国产麻豆精品theporn| 奇米精品一区二区三区四区| 亚洲最快最全在线视频| 国产精品家庭影院| 国产精品网站在线观看| 久久蜜桃av一区二区天堂 | 91麻豆精品国产无毒不卡在线观看 | 日韩欧美一区二区不卡| 欧美日韩在线三级| 在线观看91视频| 色综合天天综合网国产成人综合天 | hitomi一区二区三区精品| 韩国一区二区三区| 国产一区二区伦理片| 国产一区二区在线看| 国产在线一区二区| 国产综合色视频| 国产一区二区三区精品欧美日韩一区二区三区 | 亚洲国产色一区| 亚洲你懂的在线视频| 亚洲欧美色综合| 亚洲国产综合人成综合网站| 亚洲国产精品久久艾草纯爱| 亚洲成人手机在线| 五月婷婷久久丁香| 蜜桃久久久久久| 国内外成人在线视频| 久久69国产一区二区蜜臀| 麻豆免费精品视频| 国产精品99久久久久久宅男| 国产成人精品亚洲777人妖 | 欧美一二区视频| 日韩精品一区二区三区蜜臀| 欧美成人一区二区| 国产午夜一区二区三区| 亚洲免费三区一区二区| 天天av天天翘天天综合网 | 国产精品亚洲а∨天堂免在线| 国产精品资源网| 99视频超级精品| 欧美色大人视频| 久久综合色综合88| 亚洲图片激情小说| 日本特黄久久久高潮| 国内久久精品视频| www.亚洲免费av| 欧美肥妇bbw| 欧美激情中文字幕一区二区| 亚洲欧美精品午睡沙发| 日本不卡一二三区黄网| 成人一区二区三区视频| 欧美在线免费观看视频| 久久综合久久综合亚洲| 伊人开心综合网| 国产中文一区二区三区| 色视频一区二区| 精品国产乱码久久久久久浪潮| 国产精品福利影院| 麻豆精品精品国产自在97香蕉| 不卡的av网站| 精品久久一二三区| 亚洲综合色视频| 成人在线视频一区二区| 91麻豆精品国产91久久久更新时间| 国产人久久人人人人爽| 天天综合色天天综合色h| caoporen国产精品视频| 337p日本欧洲亚洲大胆精品|