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

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

?? can.c

?? ARM9200的can驅(qū)動(dòng)原程序
?? C
字號(hào):
/*****************************************************************************
;Institue of Automation, Chinese Academy of Sciences
;Beijing Hengyi Embedded System Co.,Ltd (www.hyesco.com)
;File Name:		
;Description:   source for can sja1000
;Date:			2006-03-15		
;Author:		Wujh origin from jzm
;E_mail:		wujh@hyesco.com
*****************************************************************************/
#include "can.h"
#include <stdlib.h>
#include <string.h>

extern void AT91F_DBGU_Printk(char *buf,...);

//發(fā)送緩存,接受緩存
unsigned char TXdata[12]={3,4,5,6,7,8,9,10,11,12,13,14};
unsigned char RXdata[100];

unsigned char bNewData=0;//接收到新的數(shù)據(jù)
unsigned char NewDataLength=0;//接收到新的數(shù)據(jù)長(zhǎng)度
unsigned char NewDataMode=0;//接收到新的數(shù)據(jù)格式

//定義了16M晶體下,波特率預(yù)設(shè)值
unsigned char SJA_BTR_CODETAB[]={
    0x18,0x1C,		               //;20KBPS的預(yù)設(shè)值
    0x87,0xFF,                     //;40KBPS的預(yù)設(shè)值
    0x09,0x1C,                     //;50KBPS的預(yù)設(shè)值
    0x83,0xFF,                     //;80KBPS的預(yù)設(shè)值
    0x04,0x1C,                     //;100KBPS的預(yù)設(shè)值
    0x03,0x1c,                     //;125KBPS的預(yù)設(shè)值
    0X81,0xfa,                     //;200KBPS的預(yù)設(shè)值
    0x01,0x1c,                     //;250KBPS的預(yù)設(shè)值  
    0x80,0xfa,		               //;400KBPS的預(yù)設(shè)值
    0x00,0x1c,                     //;500KBPS的預(yù)設(shè)值
    0x80,0xb6,                     //;666KBPS的預(yù)設(shè)值
    0x00,0x16,                     //;800KBPS的預(yù)設(shè)值
    0x00,0x14,                     //;1000KBPS的預(yù)設(shè)值   
};

#define  BTR_INDEX           0

//延時(shí)函數(shù)
void Delay(char x,char y)
{
    char z;
    
    do {
    z=y;
    do {; } while(--z);
    }while(--x);
    
}

//寫(xiě)can寄存器
void Write_CAN_REG(unsigned char can_reg_addr, 	unsigned char data)
{


	WRITE_CAN_ADDR(can_reg_addr);//寫(xiě)寄存器抵制
	WRITE_CAN_DATA(data);//寫(xiě)數(shù)據(jù)
	
}

//讀CAN寄存器
unsigned char Read_CAN_REG(unsigned char can_reg_addr)
{
	unsigned char data;

	WRITE_CAN_ADDR(can_reg_addr);//寫(xiě)寄存器抵制
	data=READ_CAN_REG();

	return data;	
	
}

//初始化can
/*
初始化程序主要完成以下寄存器的設(shè)計(jì):
(1)通過(guò)對(duì)SJA1000的時(shí)鐘分頻寄存器定義,判斷是使用BassicCAN模式還是使用PeliCAN模式;
是否使能CLOCKOUT及輸出時(shí)鐘頻率;是否使用旁路CAN輸入比較器;
TX1輸出是否采用專門的接收中斷。
(2)通過(guò)寫(xiě)驗(yàn)收碼寄存器和驗(yàn)收屏蔽寄存器定義接收?qǐng)?bào)文的驗(yàn)收碼,
以及對(duì)報(bào)文和驗(yàn)收碼進(jìn)行比較的相關(guān)位定義驗(yàn)收屏蔽碼。
(3)通過(guò)寫(xiě)總線定時(shí)寄存器定義總線的位速率、位周期內(nèi)的采樣點(diǎn)和一個(gè)位周期內(nèi)的采樣數(shù)量。
(4)通過(guò)寫(xiě)輸出寄存器定義CAN總線輸出管腳TX0、TX1的輸出模式和輸出配置。
(5)清除SJA1000的復(fù)位請(qǐng)求標(biāo)志,進(jìn)入正常工作模式,這樣SJA1000方可進(jìn)行報(bào)文的發(fā)送和接收。
*/
unsigned char Init_CAN(void)
{
	unsigned char reg;
	int i;
	unsigned char ucFlag;

	
	//檢測(cè)sja1000存在
	ucFlag=1;
	for(i=0;i<REPEART_TIMES;i++)
	{
		Write_CAN_REG(CAN_REG_TEST,0x5a);
		reg=Read_CAN_REG(CAN_REG_TEST);
		if(reg==0x5a)
		{
			ucFlag=0;
			break;
		}
	}
	if(ucFlag)
		return ERROR_NO_CAN;//沒(méi)有找到sja1000



	//初始化模式寄存器進(jìn)入復(fù)位模式,選擇單濾波方式
	ucFlag=1;
	for(i=0;i<REPEART_TIMES;i++)
	{
		Write_CAN_REG(CAN_REG_MOD,0x01);
		reg=Read_CAN_REG(CAN_REG_MOD);
		if(reg	& 0x01)
		{
			ucFlag=0;
			break;
		}
	}
	if(ucFlag)
		return ERROR_RESET;//進(jìn)入復(fù)位狀態(tài)

	
	
	//設(shè)置總線控制,btr0
	ucFlag=1;
	for(i=0;i<REPEART_TIMES;i++)
	{
		Write_CAN_REG(CAN_REG_BTR0,SJA_BTR_CODETAB[BTR_INDEX]);//設(shè)置波特率,現(xiàn)在設(shè)置成20kbps
		reg=Read_CAN_REG(CAN_REG_BTR0);
		if(reg==SJA_BTR_CODETAB[BTR_INDEX])
		{
			ucFlag=0;
			break;
		}
	}
	if(ucFlag)
		return ERROR_BTR;
	
	//btr1
	ucFlag=1;
	for(i=0;i<REPEART_TIMES;i++)
	{
		Write_CAN_REG(CAN_REG_BTR1,SJA_BTR_CODETAB[BTR_INDEX+1]);
		reg=Read_CAN_REG(CAN_REG_BTR1);
		if(reg==SJA_BTR_CODETAB[BTR_INDEX+1])
		{
			ucFlag=0;
			break;
		}
	}
	if(ucFlag)
		return ERROR_BTR;//錯(cuò)誤返回錯(cuò)誤代碼


	//設(shè)置輸出控制
	ucFlag=1;
	for(i=0;i<REPEART_TIMES;i++)
	{
		Write_CAN_REG(CAN_REG_OCR,PARAM_OCR);//設(shè)置成正常模式,0xda
		reg=Read_CAN_REG(CAN_REG_OCR);
		if(reg==PARAM_OCR)
		{
			ucFlag=0;
			break;
		}
	}
	if(ucFlag)
		return ERROR_OCR;

	//時(shí)鐘分頻器
	ucFlag=1;
	for(i=0;i<REPEART_TIMES;i++)
	{
		Write_CAN_REG(CAN_REG_CDR,PARAM_CDR);//設(shè)置成pelican模式,cbp=1,關(guān)閉時(shí)鐘輸出
		reg=Read_CAN_REG(CAN_REG_CDR);
		if(reg==PARAM_CDR)
		{
			ucFlag=0;
			break;
		}
	}
	if(ucFlag)
		return ERROR_CDR;



	//接收錯(cuò)誤計(jì)數(shù)器清零
	ucFlag=1;
	for(i=0;i<REPEART_TIMES;i++)
	{
		Write_CAN_REG(CAN_REG_RXERR,0x00);
		reg=Read_CAN_REG(CAN_REG_RXERR);
		if(reg==0x00)
		{
			ucFlag=0;
			break;
		}
	}
	if(ucFlag)
		return ERROR_RXERR;

	//發(fā)送錯(cuò)誤計(jì)數(shù)器清零
	ucFlag=1;
	for(i=0;i<REPEART_TIMES;i++)
	{
		Write_CAN_REG(CAN_REG_TXERR,0x00);
		reg=Read_CAN_REG(CAN_REG_TXERR);
		if(reg==0x00)
		{
			ucFlag=0;
			break;
		}
	}
	if(ucFlag)
		return ERROR_TXERR;
	
	
	//初始化接收代碼寄存器	0x0000
	ucFlag=1;
	for(i=0;i<REPEART_TIMES;i++)
	{
		Write_CAN_REG(CAN_REG_ACR0,PARAM_ACR0);
		reg=Read_CAN_REG(CAN_REG_ACR0);
		if(reg==PARAM_ACR0)
		{
			ucFlag=0;
			break;
		}
	}
	if(ucFlag)
		return ERROR_ACR;


	//ACR1
	ucFlag=1;
	for(i=0;i<REPEART_TIMES;i++)
	{
		Write_CAN_REG(CAN_REG_ACR1,PARAM_ACR1);
		reg=Read_CAN_REG(CAN_REG_ACR1);
		if(reg==PARAM_ACR1)
		{
			ucFlag=0;
			break;
		}
	}
	if(ucFlag)
		return ERROR_ACR;

	//ACR2
	ucFlag=1;
	for(i=0;i<REPEART_TIMES;i++)
	{
		Write_CAN_REG(CAN_REG_ACR2,PARAM_ACR2);
		reg=Read_CAN_REG(CAN_REG_ACR2);
		if(reg==PARAM_ACR2)
		{
			ucFlag=0;
			break;
		}
	}
	if(ucFlag)
		return ERROR_ACR;
	//ACR3
	ucFlag=1;
	for(i=0;i<REPEART_TIMES;i++)
	{
		Write_CAN_REG(CAN_REG_ACR3,PARAM_ACR3);
		reg=Read_CAN_REG(CAN_REG_ACR3);
		if(reg==PARAM_ACR3)
		{
			ucFlag=0;
			break;
		}
	}
	if(ucFlag)
		return ERROR_ACR;

	//驗(yàn)收屏蔽,0xffff
	ucFlag=1;
	for(i=0;i<REPEART_TIMES;i++)
	{
		Write_CAN_REG(CAN_REG_AMR0,PARAM_AMR0);
		reg=Read_CAN_REG(CAN_REG_AMR0);
		if(reg==PARAM_AMR0)
		{
			ucFlag=0;
			break;
		}
	}
	if(ucFlag)
		return ERROR_AMR;
	//AMR1	
	ucFlag=1;
	for(i=0;i<REPEART_TIMES;i++)
	{
		Write_CAN_REG(CAN_REG_AMR1,PARAM_AMR1);
		reg=Read_CAN_REG(CAN_REG_AMR1);
		if(reg==PARAM_AMR1)
		{
			ucFlag=0;
			break;
		}
	}
	if(ucFlag)
	return ERROR_AMR;	
	
	//AMR2
	ucFlag=1;
	for(i=0;i<REPEART_TIMES;i++)
	{
		Write_CAN_REG(CAN_REG_AMR2,PARAM_AMR2);
		reg=Read_CAN_REG(CAN_REG_AMR2);
		if(reg==PARAM_AMR2)
		{
			ucFlag=0;
			break;
		}
	}
	if(ucFlag)
		return ERROR_AMR;	

	//AMR3
	ucFlag=1;
	for(i=0;i<REPEART_TIMES;i++)
	{
		Write_CAN_REG(CAN_REG_AMR3,PARAM_AMR3);
		reg=Read_CAN_REG(CAN_REG_AMR3);
		if(reg==PARAM_AMR3)
		{
			ucFlag=0;
			break;
		}
	}
	if(ucFlag)
		return ERROR_AMR;	
	
	//中斷
	//中斷使能寄存器
	ucFlag=1;
	for(i=0;i<REPEART_TIMES;i++)
	{
		Write_CAN_REG(CAN_REG_IER,PARAM_IER);
		reg=Read_CAN_REG(CAN_REG_IER);
		if(reg==PARAM_IER)
		{
			ucFlag=0;
			break;
		}
	}
	if(ucFlag)
		return ERROR_IER;	
	
	//接收緩存器起始地址設(shè)為0
	ucFlag=1;
	for(i=0;i<REPEART_TIMES;i++)
	{
		Write_CAN_REG(CAN_REG_RBSA,PARAM_RBSA);
		reg=Read_CAN_REG(CAN_REG_RBSA);
		if(reg==PARAM_RBSA)
		{
			ucFlag=0;
			break;
		}
	}
	if(ucFlag)
		return ERROR_RBSA;			
	
	//返回工作模式,選擇單濾波模式,
	ucFlag=1;
	for(i=0;i<REPEART_TIMES;i++)
	{
		Write_CAN_REG(CAN_REG_MOD,PARAM_RET_MOD);
		reg=Read_CAN_REG(CAN_REG_MOD);
		if((reg & 0x09)==0x08)
		{
			ucFlag=0;
			break;
		}
	}
	if(ucFlag)
		return ERROR_MOD;	

	return 0;
}


//發(fā)送數(shù)據(jù)
int CAN_TRANSMIT(void)
{
	unsigned char reg;
	unsigned char ucFlag;//錯(cuò)誤標(biāo)志位
	int i;
	unsigned char ucRegTXSFF;

	//發(fā)送緩存器鎖定否
	ucFlag=1;
	for(i=0;i<REPEART_TIMES;i++)
	{
		reg=Read_CAN_REG(CAN_REG_SR);
		if((reg==0x0c))
		{
			ucFlag=0;
			break;
		}
	}
	if(ucFlag)
		return STATUS_TBS;
			
#ifndef SEND_EFF_DATA
	//寫(xiě)TX楨信息SFF
	ucRegTXSFF=PARAM_DATA_LENGTH | PARAM_TX_FF_SFF;
	Write_CAN_REG(CAN_REG_TX_SFF,ucRegTXSFF);//發(fā)送數(shù)據(jù),數(shù)據(jù)長(zhǎng)度8,標(biāo)準(zhǔn)楨格式

	//寫(xiě)TX楨信息id0和id1
	Write_CAN_REG(CAN_REG_TX_ID0,PARAM_TX_ID0);//發(fā)送數(shù)據(jù)識(shí)別碼
	Write_CAN_REG(CAN_REG_TX_ID1,PARAM_TX_ID1);//發(fā)送數(shù)據(jù)識(shí)別碼
	//填寫(xiě)發(fā)送數(shù)據(jù)緩存
	for(i=0;i<8;i++)
	Write_CAN_REG((CAN_REG_TX_SFF_BUFFER+i),TXdata[i]);//包頭
#else
	//寫(xiě)TX楨信息SFF
	ucRegTXSFF=PARAM_DATA_LENGTH | PARAM_TX_FF_EFF;
	Write_CAN_REG(CAN_REG_TX_SFF,ucRegTXSFF);//發(fā)送數(shù)據(jù),數(shù)據(jù)長(zhǎng)度8,EFF楨格式

	//寫(xiě)TX楨信息id0和id1
	Write_CAN_REG(CAN_REG_TX_ID0,PARAM_TX_ID0);//發(fā)送數(shù)據(jù)識(shí)別碼
	Write_CAN_REG(CAN_REG_TX_ID1,PARAM_TX_ID1);//發(fā)送數(shù)據(jù)識(shí)別碼
	Write_CAN_REG(CAN_REG_TX_ID2,PARAM_TX_ID2);//發(fā)送數(shù)據(jù)識(shí)別碼
	Write_CAN_REG(CAN_REG_TX_ID3,PARAM_TX_ID3);//發(fā)送數(shù)據(jù)識(shí)別碼
	//填寫(xiě)發(fā)送數(shù)據(jù)緩存
	for(i=0;i<8;i++)
	Write_CAN_REG((CAN_REG_TX_EFF_BUFFER+i),TXdata[i]);//包頭

#endif
	//發(fā)送數(shù)據(jù)
	Write_CAN_REG(CAN_REG_CMR,0x01);//正常發(fā)送數(shù)據(jù)
	
	//判斷發(fā)送數(shù)據(jù)失敗
	ucFlag=1;
	for(i=0;i<REPEART_TIMES*10;i++)
	{
		reg=Read_CAN_REG(CAN_REG_SR);
		if((reg & 0x08))
		{
			ucFlag=0;
			break;
		}
		Delay(200,200);
	}
	if(ucFlag)
		return STATUS_TCS;

	return 0;
	
}


//CAN接收數(shù)據(jù)
//can中斷分發(fā)向量函數(shù)
void Eint2CanInt(void)
{
         unsigned char reg;
         //unsigned char i;
         
    	//重新打開(kāi)中斷
    	//ClearPending(BIT_EINT2);
    
    	//訪問(wèn)地址指向狀態(tài)寄存器,判斷FIFO中的數(shù)據(jù)有沒(méi)有,其實(shí)在查詢的時(shí)候需要,在中斷的時(shí)候
    	//不需要
    	/*
    	reg=Read_CAN_REG(CAN_REG_SR);//            
   	if((reg&0x01)==0)              	 //判斷報(bào)文是否有效
   	{
      		exit(0);//
  	}*/
   
   	//讀出中斷狀態(tài)寄存器內(nèi)容,判斷當(dāng)前是那種中斷發(fā)生,并轉(zhuǎn)到響應(yīng)的中斷處理
   	//當(dāng)然必須在初始化過(guò)程中將相應(yīng)的中斷屏蔽位打開(kāi)了。
   	reg=Read_CAN_REG(CAN_REG_IR);//讀出中斷狀態(tài)寄存器內(nèi)容
   	switch(reg)
   	{
   		//置位;當(dāng)CAN控制器檢測(cè)到總線錯(cuò)誤且中斷使能寄存器中的BEIE被置位時(shí)此位被置位
   		case 0x80:
   			break;//自己添加處理程序了
   		//置位;當(dāng)CAN控制器丟失仲裁,變?yōu)榻邮掌骱椭袛嗍鼓芗拇嫫鞯腁LIE為被置位時(shí),此位被置位
   		case 0x40:
   			break;//自己添加處理程序了
   		//置位;當(dāng)CAN控制器到達(dá)錯(cuò)誤消極狀態(tài)(至少一個(gè)錯(cuò)誤計(jì)數(shù)器超過(guò)協(xié)議規(guī)定的值127)或從錯(cuò)誤消極狀態(tài)又進(jìn)入錯(cuò)誤活動(dòng)狀態(tài)以及中斷
		//寄存器的EPIE位被置位時(shí)此位被置1
   		case 0x20:
   			break;//自己添加處理程序了
   		//置位;當(dāng)CAN控制器在睡眠模式中檢測(cè)到總線的活動(dòng)且中斷寄存器的WUIE位被置1時(shí)此位被置位
   		case 0x10:
   			break;//自己添加處理程序了
   		//置位;數(shù)據(jù)溢出狀態(tài)位有0-1 跳變且中斷寄存器的DOIE位被置位時(shí)此位被置1
   		case 0x08:
   			break;//自己添加處理程序了
   		//置位;錯(cuò)誤狀態(tài)位和總線狀態(tài)位的改變和中斷寄存器的EIE位被置位時(shí)此位被置1
   		case 0x04:
   			break;//自己添加處理程序了
   		//置位;發(fā)送緩沖器狀態(tài)從’0-1’(釋放)跳變且中斷寄存器的TIE位被置位時(shí)此位被置1
   		case 0x02:
   			break;//自己添加處理程序了
   		//置位;接收FIFO不空且中斷寄存器的RIE位被置位時(shí)此位被置1
   		case 0x01:
   			CanIntReceiveData();
   			break;
   	}
   	
   	/*
   	for(i=0;i<REPEART_TIMES;i++)
	{
		Write_CAN_REG(CAN_REG_IER,PARAM_IER);
		reg=Read_CAN_REG(CAN_REG_IER);
		if(reg==PARAM_IER)
		{
			break;
		}
	}*/
    
}
//響應(yīng)中斷接受數(shù)據(jù)
void CanIntReceiveData(void)
{
	unsigned  char  TempCount; 
        unsigned char reg;
        unsigned char i;
   	//判斷楨信息SFF,EFF OR SFF
   	reg=Read_CAN_REG(CAN_REG_RX_SFF);
   	if((reg&0x80)==0x80)//eff,楨
   	{
   		if((reg & 0x40)==0x40)//遠(yuǎn)程楨
    			TempCount=2;////遠(yuǎn)程楨
   		else
   			TempCount=(reg & 0x0f)+4;////計(jì)算報(bào)文中數(shù)據(jù)的個(gè)數(shù)
   		
   		for(i=0;i<TempCount;i++)
   			RXdata[i]=Read_CAN_REG(CAN_REG_RX_ID0+i);	
   		
   		Write_CAN_REG(CAN_REG_CMR,0x04);	
   		
   		
   		bNewData=1;	
   		NewDataMode=1;
   		NewDataLength=TempCount;
			
   		
   	}
   	else//sff楨
   	{
   		if((reg & 0x40)==0x40)//遠(yuǎn)程楨
    			TempCount=2;////遠(yuǎn)程楨
   		else
   			TempCount=(reg & 0x0f)+2;////計(jì)算報(bào)文中數(shù)據(jù)的個(gè)數(shù)
   		
   		
   			
   		for(i=0;i<TempCount;i++)
   			RXdata[i]=Read_CAN_REG(CAN_REG_RX_ID0+i);

   		
   		Write_CAN_REG(CAN_REG_CMR,0x04);
   			
   		bNewData=1;		
   		NewDataMode=0;
   		NewDataLength=TempCount;
   	}
  }

//不停發(fā)送數(shù)據(jù)主程序	
void CanSendData(void)
{
	int ret;

	ret=CAN_TRANSMIT();
	if(ret)
	{
		AT91F_DBGU_Printk("Can send data error,error id=%d!\n",ret);
	}
	else
	{
		AT91F_DBGU_Printk("Can send data success!\n");
	}	
	
}


//不停接收數(shù)據(jù)主程序
void CanReceiveData(void)
{
	unsigned char i;

	if(bNewData == 1)
	{
		bNewData=0;
		
		if(NewDataMode)
			AT91F_DBGU_Printk("EFF Data,Data Lenght=%d\n",NewDataLength);//數(shù)據(jù)格式和長(zhǎng)度
		else
			AT91F_DBGU_Printk("SFF Data,Data Lenght=%d\n\r",NewDataLength);
			
		for(i=0;i<NewDataLength;i++)
			AT91F_DBGU_Printk("RXdata[%d]=0x%x\n\r",i,RXdata[i]);//輸出數(shù)據(jù)
			
		NewDataLength=0;
		NewDataMode=0;	
	}
		
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区中文在线| 欧美日韩国产免费| 国产东北露脸精品视频| 久久精品国产色蜜蜜麻豆| 日本欧美在线看| 日韩综合一区二区| 日韩黄色在线观看| 蜜桃av一区二区| 久久精品99国产精品| 九一九一国产精品| 国产精品亚洲人在线观看| 国产精品自拍在线| 成人高清av在线| av一二三不卡影片| 在线观看精品一区| 欧美久久免费观看| 欧美变态口味重另类| 精品sm捆绑视频| 中文一区二区完整视频在线观看| 中文在线免费一区三区高中清不卡| 国产精品人成在线观看免费 | 一区二区三区四区蜜桃| 亚洲福中文字幕伊人影院| 日韩制服丝袜先锋影音| 久久精品国产一区二区三| 国产成人啪免费观看软件| 91在线视频免费观看| 欧美性xxxxxx少妇| 精品久久久久久久久久久久久久久久久| 久久这里都是精品| 国产精品高潮呻吟| 亚洲sss视频在线视频| 另类专区欧美蜜桃臀第一页| 国产成人av一区二区三区在线| 不卡区在线中文字幕| 欧美视频一区二区三区在线观看| 91精品国产综合久久精品| 久久精品夜色噜噜亚洲aⅴ| 亚洲人成网站色在线观看| 午夜国产精品影院在线观看| 国产综合久久久久影院| 99久久99久久综合| 欧美一区二区三区精品| 国产精品美女视频| 亚洲6080在线| 国产91丝袜在线播放| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 欧美一级生活片| 亚洲视频狠狠干| 美女视频黄频大全不卡视频在线播放| 成人美女视频在线看| 91精品久久久久久蜜臀| 国产精品美女久久久久av爽李琼| 天堂蜜桃一区二区三区| 成人黄色一级视频| 欧美一区二区黄| 亚洲色图欧美激情| 国内精品视频666| 欧美日韩在线播放三区四区| 国产午夜精品久久久久久免费视 | 国产中文一区二区三区| 色国产综合视频| 久久久国产综合精品女国产盗摄| 亚洲成av人片在线观看| 不卡影院免费观看| 欧美大片一区二区| 亚洲制服欧美中文字幕中文字幕| 国产一区二区伦理| 欧美男人的天堂一二区| 综合色中文字幕| 国精产品一区一区三区mba视频| 欧美日韩一级视频| 国产精品国模大尺度视频| 久久99在线观看| 欧美性生活大片视频| 国产精品素人视频| 九九九精品视频| 欧美老肥妇做.爰bbww视频| ㊣最新国产の精品bt伙计久久| 国产一区二区三区免费播放| 51精品国自产在线| 亚洲在线观看免费视频| a级精品国产片在线观看| 久久免费电影网| 久久99久久99| 在线观看91精品国产麻豆| 亚洲在线视频一区| 91免费国产在线观看| 国产精品女人毛片| 成人夜色视频网站在线观看| 精品国产91洋老外米糕| 蜜臀久久久久久久| 欧美日韩大陆一区二区| 亚洲高清免费观看| 欧美亚洲图片小说| 亚洲精品v日韩精品| 91色视频在线| 亚洲天堂免费在线观看视频| 成人av在线一区二区三区| 久久精品一区四区| 国产成人亚洲综合a∨婷婷图片| 精品成人在线观看| 国产一区不卡视频| 国产午夜亚洲精品理论片色戒| 国产一区欧美一区| 国产片一区二区三区| 成人午夜电影久久影院| 国产精品婷婷午夜在线观看| www.视频一区| 亚洲美女免费视频| 91黄色激情网站| 视频一区二区三区入口| 91精品国产入口| 久久69国产一区二区蜜臀| 久久精品一区八戒影视| 成人av片在线观看| 亚洲激情图片一区| 8v天堂国产在线一区二区| 久久爱www久久做| 国产亚洲欧美中文| 99精品视频在线观看免费| 一区二区三区四区乱视频| 在线亚洲一区二区| 视频一区欧美日韩| 久久久美女毛片| 国产日韩欧美制服另类| 盗摄精品av一区二区三区| 国产精品灌醉下药二区| 欧洲精品一区二区| 日本不卡不码高清免费观看| 2020国产精品| 成人18视频在线播放| 亚洲成人三级小说| 精品日韩一区二区三区免费视频| 国产米奇在线777精品观看| 亚洲欧洲av在线| 欧美日韩免费一区二区三区| 精品在线免费视频| 亚洲欧洲日本在线| 欧美精选一区二区| 国产91露脸合集magnet| 一区二区国产视频| 精品国产伦一区二区三区观看体验| 成人免费黄色在线| 天天av天天翘天天综合网| 久久尤物电影视频在线观看| 91麻豆免费观看| 青青草国产精品亚洲专区无| 欧美国产成人在线| 欧美人体做爰大胆视频| 国产成人自拍高清视频在线免费播放| 亚洲人成伊人成综合网小说| 日韩一区二区三区观看| 不卡的av电影| 日韩av午夜在线观看| 国产精品白丝在线| 日韩一本二本av| 色综合久久综合网欧美综合网 | 日韩国产欧美在线播放| 国产日产欧产精品推荐色| 精品视频1区2区3区| 岛国精品在线播放| 日本美女一区二区| 一区二区在线观看视频| 久久久不卡网国产精品一区| 欧美日韩国产高清一区二区三区| 丁香天五香天堂综合| 日产国产高清一区二区三区 | 波多野结衣亚洲一区| 日本美女一区二区三区| 亚洲美女屁股眼交3| 国产欧美一区视频| 精品美女在线播放| 欧美疯狂性受xxxxx喷水图片| 91丨porny丨户外露出| 韩国成人在线视频| 免费高清不卡av| 一区二区成人在线观看| 国产清纯白嫩初高生在线观看91| 日韩欧美在线观看一区二区三区| 一本到三区不卡视频| 成人小视频在线| 国产精品1区二区.| 久久精品国产久精国产爱| 亚洲h在线观看| 一区二区三区在线观看国产| 国产精品久久久久久久午夜片| 26uuu另类欧美亚洲曰本| 欧美日韩成人一区| 欧美在线不卡视频| 色视频欧美一区二区三区| 成人av网站在线观看免费| 国产69精品久久99不卡| 国产在线精品一区二区夜色| 男女男精品视频| 日韩有码一区二区三区| 亚洲国产另类精品专区| 亚洲午夜在线观看视频在线| 亚洲已满18点击进入久久| 一区二区三区鲁丝不卡|