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

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

?? can.c

?? freescale k40/k60 can 例程
?? C
?? 第 1 頁 / 共 3 頁
字號:

#include "can.h"



// Globals
TFCAN_MailBox	RxMailBox[MAX_RX_MAILS];  // receive mail box queue
TFCAN_MailBox	TxMailBox[MAX_TX_MAILS];  // transmit mail box queue
TFCAN_MailBox	RxFIFOQue[MAX_RXFIFO_MAILS];  // rx FIFO queue
volatile int16  rdRxMailBox,              // read pointer for RxMailBox
                wrRxMailBox,              // write pointer for RxMailBox
                rdTxMailBox,              // read pointer for TxMailBox
                wrTxMailBox;              // write pointer for TxMailBox
volatile int16  rdRxFIFOQue;          // read pointer for RxFIFO queue
volatile int16  wrRxFIFOQue;          // write pointer for RxFIFO queue
volatile uint32 nCANErrorCount;
volatile uint32 bMBFlags1,bMBFlags2;   // flag if a MB is done by ISR

static int8 occurence;

static CAN_MemMapPtr pFlexCANReg =        // pointer to the CAN register
#ifndef  USE_FLEXCAN0
  CAN1_BASE_PTR    
#else
  CAN0_BASE_PTR      
#endif    
;
static TFCANDrv_Obj  FlexCANDrvObj;
static PTFCANDrv_Obj pFlexCANDrvObj;

// Prototypes
static void   FlexCAN_MB_Callback(uint16 iMBNo);
static void   FlexCAN_Err_Callback(uint32 status);
static void   FlexCAN_RxFIFOErr_Callback(void);


// Functions
HANDLE FlexCAN_Open(void)
{
	int16	i;
	
	// Initialize the driver structures
	for(i = 0; i < MAX_RX_MAILS; i++)
	{
		RxMailBox[i].dev_num = 0;
	}
	for(i = 0; i < MAX_TX_MAILS; i++)
	{
		TxMailBox[i].dev_num = 0;
	}	
 	for(i = 0; i < MAX_RXFIFO_MAILS; i++)
	{
		RxFIFOQue[i].dev_num = 0;
	}	       
        rdRxMailBox = wrRxMailBox = 0;
        rdTxMailBox = wrTxMailBox = 0;
        rdRxFIFOQue = wrRxFIFOQue = 0;
        
        occurence = 0; nCANErrorCount = 0;
        
        bMBFlags1 = bMBFlags2 = 0;
        
        // Initialize driver object based on custom macro definitions
        pFlexCANDrvObj = &FlexCANDrvObj;
        
        pFlexCANDrvObj->ctrlWord.Bits.bClockSource = (FLEXCAN_CLOCK_SOURCE? 1 : 0);                    
        pFlexCANDrvObj->ctrlWord.Bits.bSelfRxDis =   (FLEXCAN_SELF_RECEPTION? 0 : 1);                    
        pFlexCANDrvObj->ctrlWord.Bits.bScanPrio =    (FLEXCAN_SCAN_PRIORITY? 1 : 0);                        
        pFlexCANDrvObj->ctrlWord.Bits.bStoreRTR =    (FLEXCAN_STORE_RTR? 1 : 0);                     
        pFlexCANDrvObj->ctrlWord.Bits.bEACEN =       (FLEXCAN_ENTIRE_ARB_CMP? 1: 0);                     
        pFlexCANDrvObj->ctrlWord.Bits.bIRMQ =        (FLEXCAN_INDIVIDUAL_MASK? 1 : 0);                     
        pFlexCANDrvObj->ctrlWord.Bits.bLoopBack =    (FLEXCAN_LOOP_BACK? 1 : 0);                     
        pFlexCANDrvObj->ctrlWord.Bits.bLocalPrio =   (FLEXCAN_LOCAL_PRIO? 1 : 0);  
        
        pFlexCANDrvObj->bRxMBStart = FLEXCAN_RX_MB_START;                      /* start index of Rx MB# */
        pFlexCANDrvObj->bRxMBEnd   = FLEXCAN_RX_MB_END;                        /* end index of Rx MB# */
        pFlexCANDrvObj->bTxMBStart = FLEXCAN_TX_MB_START;                      /* start index of Tx MB# */  
        pFlexCANDrvObj->bTxMBEnd  = FLEXCAN_TX_MB_END;                          /* end index of Tx MB# */ 
        
        pFlexCANDrvObj->bRxFIFOFilterNo = FLEXCAN_NO_RXFIFO_FILTERS;   
        pFlexCANDrvObj->bRxFIFOIDFormat = FLEXCAN_ID_TAB_FORMAT;
        
        pFlexCANDrvObj->pCANRegs = pFlexCANReg;
        
	return ((HANDLE) pFlexCANReg);
}

int16 FlexCAN_Init(uint32  baudrateKHz )
{
      int16 i;
      int8  isCAN0;
       
      // Enable clock to FlexCAN
      isCAN0 = (pFlexCANReg == CAN0_BASE_PTR);
      if(isCAN0)
      {
        SIM_SCGC6 |=  SIM_SCGC6_FLEXCAN0_MASK;
      }
      else
      {
        SIM_SCGC3 |= SIM_SCGC3_FLEXCAN1_MASK;
      }
       // Configure NVIC to enable interrupts
       if(isCAN0)
       {
         NVICICPR0     =  (NVICICPR0 & ~(0x07<<29)) | (0x07<<29);      // Clear any pending interrupts on  FLEXCAN0    
         NVICISER0     =  (NVICISER0 & ~(0x07<<29))  | (0x07<<29);    // Enable interrupts for FLEXCAN0              
         NVICICPR1    =   (NVICICPR1 & ~(0x1F<<0)) | (0x1F);        // Clear any pending interrupts on  FLEXCAN0    
         NVICISER1     =  (NVICISER1 & ~(0x1F<<0))  | (0x1F);        // Enable interrupts for FLEXCAN0              
       }
       else
       {
          NVICICPR1     = (NVICICPR1 & ~(0xFF<<5)) | (0xFF<<5);        // Clear any pending interrupts on  FLEXCAN1    
          NVICISER1      = (NVICISER1  & ~(0xFF<<5)) | (0xFF<<5);        // Enable interrupts for FLEXCAN1                
       }
      
      // Select clock source for CAN first
      // NOTE: must ensure that LPM_ACK = 1 before changing clock source bit
      if(pFlexCANDrvObj->ctrlWord.Bits.bClockSource)
      {
         pFlexCANReg->CTRL1 |= FLEXCAN_CTRL_CLK_SRC; //Source --> bus clock
      }
      else
      {
         pFlexCANReg->CTRL1 &= ~FLEXCAN_CTRL_CLK_SRC; //Source --> external oscillator
      }
      // Enable CAN module
      pFlexCANReg->MCR |= FLEXCAN_MCR_FRZ;          // enable HALT feature
      pFlexCANReg->MCR &= ~FLEXCAN_MCR_MDIS; 
	
      while((FLEXCAN_MCR_LPM_ACK & pFlexCANReg->MCR));	

      // Now can apply Soft Reset
      pFlexCANReg->MCR ^= FLEXCAN_MCR_SOFT_RST;
      while(FLEXCAN_MCR_SOFT_RST & pFlexCANReg->MCR);
	 	
       // Now it should be in Freeze mode  
       while(!(FLEXCAN_MCR_FRZ_ACK & pFlexCANReg->MCR));
       
       // Disable self-reception
       if(pFlexCANDrvObj->ctrlWord.Bits.bSelfRxDis)
       {
          pFlexCANReg->MCR |= FLEXCAN_MCR_SRX_DIS;
       }
       
       // Enable individual masking and queue
       if(pFlexCANDrvObj->ctrlWord.Bits.bIRMQ)
       {
          pFlexCANReg->MCR |=  FLEXCAN_MCR_IRMQ;    
       }
       // Set local priority
       if(pFlexCANDrvObj->ctrlWord.Bits.bLocalPrio)
       {
          pFlexCANReg->MCR |=  FLEXCAN_MCR_LPRIO_EN;   
       }
       
       
        /* Initialize all 16 MBs */		  
        for(i=0;i<NUMBER_OF_MB;i++)
        {
              pFlexCANReg->MB[i].CS = 0x00000000;
              pFlexCANReg->MB[i].ID = 0x00000000;
              pFlexCANReg->MB[i].WORD0 = 0x00000000;
              pFlexCANReg->MB[i].WORD1 = 0x00000000;
        }
       // Set RRS and EACEN bits in CTRL2
       if(pFlexCANDrvObj->ctrlWord.Bits.bEACEN)
       {
          pFlexCANReg->CTRL2 |= FLEXCAN_CTRL2_EACEN;
       }
       else
       {
          pFlexCANReg->CTRL2 &= ~FLEXCAN_CTRL2_EACEN;         
       }
       if(pFlexCANDrvObj->ctrlWord.Bits.bStoreRTR)
       {
          pFlexCANReg->CTRL2 |= FLEXCAN_CTRL2_RRS;
       }
       else
       {
          pFlexCANReg->CTRL2 &= ~FLEXCAN_CTRL2_RRS;         
       }  
       // Set Scan priority (Mailbxes reception priority)
       if(pFlexCANDrvObj->ctrlWord.Bits.bScanPrio)
       {
          pFlexCANReg->CTRL2 |= FLEXCAN_CTRL2_MRP;
       }
       else
       {
          pFlexCANReg->CTRL2 &= ~FLEXCAN_CTRL2_MRP;         
       }        
       
       // Eanble RxFIFO if # of RxFIFO filters is >0
       if(pFlexCANDrvObj->bRxFIFOFilterNo)
       {
         pFlexCANReg->MCR |= FLEXCAN_MCR_FEN;
         
         // Configure RFFN field with # of Rx FIFO filters
         FLEXCAN_set_rffn(pFlexCANReg->CTRL2,((pFlexCANDrvObj->bRxFIFOFilterNo>>3)-1));
       }
       // Set ID filter table format
       pFlexCANReg->MCR |= (pFlexCANReg->MCR & ~FLEXCAN_MCR_IDAM_MASK) | FLEXCAN_MCR_IDAM(pFlexCANDrvObj->bRxFIFOIDFormat);
      
       // Configure bit rate
       switch (baudrateKHz)
       {

              case (33):	// 33.33K
                
                 if(pFlexCANReg->CTRL1 & FLEXCAN_CTRL_CLK_SRC)
                 {
                         /* 
                         ** 48M/120= 400k sclock, 12Tq
                         ** PROPSEG = 3, LOM = 0x0, LBUF = 0x0, TSYNC = 0x0, SAMP = 1
                                 ** RJW = 3, PSEG1 = 4, PSEG2 = 4,PRESDIV = 120
                         */
                         pFlexCANReg->CTRL1 = (0 | FLEXCAN_CTRL_PROPSEG(2) | FLEXCAN_CTRL_RJW(2)
                                                                            | FLEXCAN_CTRL_PSEG1(3) | FLEXCAN_CTRL_PSEG2(3)
                                                                            | FLEXCAN_CTRL_PRESDIV(119));
                 }
                 else
                 {
 		         /* 
                         ** 12M/20= 600k sclock, 18Tq
		         ** PROPSEG = 1, LOM = 0x0, LBUF = 0x0, TSYNC = 0x0, SAMP = 1
				 ** RJW = 4, PSEG1 = 8, PSEG2 = 8,PRESDIV = 20
		         */
		         pFlexCANReg->CTRL1 = (0 | FLEXCAN_CTRL_PROPSEG(0) | FLEXCAN_CTRL_RJW(3)
			 	    					    | FLEXCAN_CTRL_PSEG1(7) | FLEXCAN_CTRL_PSEG2(7)
			 	    					    | FLEXCAN_CTRL_PRESDIV(19));
                  
                 }
                     break;
              case (83):	// 83.33K
                 if(pFlexCANReg->CTRL1 & FLEXCAN_CTRL_CLK_SRC)
                 {

                         /* 
                         ** 48M/48= 1M sclock, 12Tq
                         ** PROPSEG = 3, LOM = 0x0, LBUF = 0x0, TSYNC = 0x0, SAMP = 1
                                 ** RJW = 3, PSEG1 = 4, PSEG2 = 4,PRESDIV = 48
                         */
                         pFlexCANReg->CTRL1 = (0 | FLEXCAN_CTRL_PROPSEG(2) | FLEXCAN_CTRL_RJW(2)
                                                                            | FLEXCAN_CTRL_PSEG1(3) | FLEXCAN_CTRL_PSEG2(3)
                                                                            | FLEXCAN_CTRL_PRESDIV(47));
                 }
                 else
                 {
		         /* 
                         ** 12M/12= 1M sclock, 12Tq
		         ** PROPSEG = 3, LOM = 0x0, LBUF = 0x0, TSYNC = 0x0, SAMP = 1
				 ** RJW = 3, PSEG1 = 4, PSEG2 = 4,PRESDIV = 12
		         */
		         pFlexCANReg->CTRL1 = (0 | FLEXCAN_CTRL_PROPSEG(2) | FLEXCAN_CTRL_RJW(2)
			 	    					    | FLEXCAN_CTRL_PSEG1(3) | FLEXCAN_CTRL_PSEG2(3)
			 	    					    | FLEXCAN_CTRL_PRESDIV(11));
                   
                 }
                     break;
              case (50):
                 if(pFlexCANReg->CTRL1 & FLEXCAN_CTRL_CLK_SRC)
                 {                
                         /* 
                         ** 48M/80= 0.6M sclock, 12Tq
                         ** PROPSEG = 3, LOM = 0x0, LBUF = 0x0, TSYNC = 0x0, SAMP = 1
                           ** RJW = 3, PSEG1 = 4, PSEG2 = 4, PRESDIV = 40
                         */
                         pFlexCANReg->CTRL1 = (0 | FLEXCAN_CTRL_PROPSEG(2) | FLEXCAN_CTRL_RJW(1)
                                                                            | FLEXCAN_CTRL_PSEG1(3) | FLEXCAN_CTRL_PSEG2(3)
                                                                            | FLEXCAN_CTRL_PRESDIV(79));
                 }
                 else
                 {
		         /* 
                         ** 12M/20= 0.6M sclock, 12Tq
		         ** PROPSEG = 3, LOM = 0x0, LBUF = 0x0, TSYNC = 0x0, SAMP = 1
				 ** RJW = 3, PSEG1 = 4, PSEG2 = 4, PRESDIV = 20
		         */                   
		         pFlexCANReg->CTRL1 = (0 | FLEXCAN_CTRL_PROPSEG(2) | FLEXCAN_CTRL_RJW(2)
			 	    					    | FLEXCAN_CTRL_PSEG1(3) | FLEXCAN_CTRL_PSEG2(3)
			 	    					    | FLEXCAN_CTRL_PRESDIV(19));                   
                 }
                     break;
              case (100):
                 if(pFlexCANReg->CTRL1 & FLEXCAN_CTRL_CLK_SRC)
                 {
                         /* 
                         ** 48M/40= 1.2M sclock, 12Tq
                         ** PROPSEG = 3, LOM = 0x0, LBUF = 0x0, TSYNC = 0x0, SAMP = 1
                                 ** RJW = 3, PSEG1 = 4, PSEG2 = 4, PRESDIV = 40
                         */
                        pFlexCANReg->CTRL1 = (0 | FLEXCAN_CTRL_PROPSEG(2) | FLEXCAN_CTRL_RJW(2)
                                                                            | FLEXCAN_CTRL_PSEG1(3) | FLEXCAN_CTRL_PSEG2(3)
                                                                            | FLEXCAN_CTRL_PRESDIV(39));
                 }
                 else
                 {
		         /* 
                         ** 12M/10= 1.2M sclock, 12Tq
		         ** PROPSEG = 3, LOM = 0x0, LBUF = 0x0, TSYNC = 0x0, SAMP = 1
				 ** RJW = 3, PSEG1 = 4, PSEG2 = 4, PRESDIV = 10
		         */
                        pFlexCANReg->CTRL1 = (0 | FLEXCAN_CTRL_PROPSEG(2) | FLEXCAN_CTRL_RJW(2)
			 	    					    | FLEXCAN_CTRL_PSEG1(3) | FLEXCAN_CTRL_PSEG2(3)
			 	    					    | FLEXCAN_CTRL_PRESDIV(9));                   
                 }
                     break;
              case (125):
                 if(pFlexCANReg->CTRL1 & FLEXCAN_CTRL_CLK_SRC)
                 {                
                       /* 
                       ** 48M/32= 1.5M sclock, 12Tq
                       ** PROPSEG = 3, LOM = 0x0, LBUF = 0x0, TSYNC = 0x0, SAMP = 1
                               ** RJW = 3, PSEG1 = 4, PSEG2 = 4, PRESDIV = 32
                       */
                       pFlexCANReg->CTRL1 = (0 | FLEXCAN_CTRL_PROPSEG(2) | FLEXCAN_CTRL_RJW(2)
                                                                          | FLEXCAN_CTRL_PSEG1(3) | FLEXCAN_CTRL_PSEG2(3)
                                                                          | FLEXCAN_CTRL_PRESDIV(31));
                 }
                 else
                 {
 		         /* 
                         ** 12M/8= 1.5M sclock, 12Tq
		         ** PROPSEG = 3, LOM = 0x0, LBUF = 0x0, TSYNC = 0x0, SAMP = 1
				 ** RJW = 3, PSEG1 = 4, PSEG2 = 4, PRESDIV = 8
		         */
		         pFlexCANReg->CTRL1 = (0 | FLEXCAN_CTRL_PROPSEG(2) | FLEXCAN_CTRL_RJW(2)
			 	    					    | FLEXCAN_CTRL_PSEG1(3) | FLEXCAN_CTRL_PSEG2(3)
			 	    					    | FLEXCAN_CTRL_PRESDIV(7));                  
                 }
                     break;
              case (250):
                 if(pFlexCANReg->CTRL1 & FLEXCAN_CTRL_CLK_SRC)
                 {                
                         /* 
                         ** 48M/16= 3M sclock, 12Tq
                         ** PROPSEG = 3, LOM = 0x0, LBUF = 0x0, TSYNC = 0x0, SAMP = 1
                                 ** RJW = 2, PSEG1 = 4, PSEG2 = 4, PRESDIV = 16
                         */
                         pFlexCANReg->CTRL1 = (0 | FLEXCAN_CTRL_PROPSEG(2) | FLEXCAN_CTRL_RJW(1)
                                                                            | FLEXCAN_CTRL_PSEG1(3) | FLEXCAN_CTRL_PSEG2(3)
                                                                            | FLEXCAN_CTRL_PRESDIV(15));
                 }
                 else
                 {
		         /* 
                         ** 12M/4= 3M sclock, 12Tq
		         ** PROPSEG = 3, LOM = 0x0, LBUF = 0x0, TSYNC = 0x0, SAMP = 1
				 ** RJW = 2, PSEG1 = 4, PSEG2 = 4, PRESDIV = 4
		         */
		         pFlexCANReg->CTRL1 = (0 | FLEXCAN_CTRL_PROPSEG(2) | FLEXCAN_CTRL_RJW(1)
			 	    					    | FLEXCAN_CTRL_PSEG1(3) | FLEXCAN_CTRL_PSEG2(3)
			 	    					    | FLEXCAN_CTRL_PRESDIV(3));                   
                 }
                     break;
              case (500):
                 if(pFlexCANReg->CTRL1 & FLEXCAN_CTRL_CLK_SRC)
                 {                
                         /* 
                         ** 48M/8=6M sclock, 12Tq
                         ** PROPSEG = 3, LOM = 0x0, LBUF = 0x0, TSYNC = 0x0, SAMP = 1
                                 ** RJW = 2, PSEG1 = 4, PSEG2 = 4, PRESDIV = 6
                         */
                         pFlexCANReg->CTRL1 = (0 | FLEXCAN_CTRL_PROPSEG(2) | FLEXCAN_CTRL_RJW(1)
                                                                            | FLEXCAN_CTRL_PSEG1(3) | FLEXCAN_CTRL_PSEG2(3)
                                                                            | FLEXCAN_CTRL_PRESDIV(7));
                 }
                 else
                 {
		         /* 
                         ** 12M/2=6M sclock, 12Tq
		         ** PROPSEG = 3, LOM = 0x0, LBUF = 0x0, TSYNC = 0x0, SAMP = 1
				 ** RJW = 2, PSEG1 = 4, PSEG2 = 4, PRESDIV = 2
		         */
		         pFlexCANReg->CTRL1 = (0 | FLEXCAN_CTRL_PROPSEG(2) | FLEXCAN_CTRL_RJW(1)
			 	    					    | FLEXCAN_CTRL_PSEG1(3) | FLEXCAN_CTRL_PSEG2(3)
			 	    					    | FLEXCAN_CTRL_PRESDIV(1));                   
                 }
                     break;
              case (1000): 
                 if(pFlexCANReg->CTRL1 & FLEXCAN_CTRL_CLK_SRC)
                 {                
                             /*  
                                 ** 48M/6=8M sclock
                                 ** PROPSEG = 4, LOM = 0x0, LBUF = 0x0, TSYNC = 0x0, SAMP = 1
                                 ** RJW = 1, PSEG1 = 1, PSEG2 = 2, PRESCALER = 6
                             */
                         pFlexCANReg->CTRL1 = (0 | FLEXCAN_CTRL_PROPSEG(3) | FLEXCAN_CTRL_RJW(0)
                                                                            | FLEXCAN_CTRL_PSEG1(0) | FLEXCAN_CTRL_PSEG2(1)
                                                                            | FLEXCAN_CTRL_PRESDIV(5));
                 }
                 else
                 {
			     /*  
                                 ** 12M/1=12M sclock,12Tq
				 ** PROPSEG = 3, LOM = 0x0, LBUF = 0x0, TSYNC = 0x0, SAMP = 1
				 ** RJW = 4, PSEG1 = 4, PSEG2 = 4, PRESCALER = 1
			     */
		         pFlexCANReg->CTRL1 = (0 | FLEXCAN_CTRL_PROPSEG(2) | FLEXCAN_CTRL_RJW(3)
			 	    					    | FLEXCAN_CTRL_PSEG1(3) | FLEXCAN_CTRL_PSEG2(3)
			 	    					    | FLEXCAN_CTRL_PRESDIV(0));
                   
                 }
                     break;
              default: 
                 return (FLEXCAN_ERROR_INVALID_BAUD);
           }
       

        if(pFlexCANDrvObj->ctrlWord.Bits.bLoopBack)
        {
          // use loopback for single node
          pFlexCANReg->CTRL1 |= FLEXCAN_CTRL_LPB;
        }
        else
        {
          // use external CAN bus
          pFlexCANReg->CTRL1 &= ~FLEXCAN_CTRL_LPB;          
        }
      
	 
	 /* Initialize mask registers */
	 pFlexCANReg->RXMGMASK = 0x1FFFFFFF;
	 pFlexCANReg->RX14MASK = 0x1FFFFFFF;
	 pFlexCANReg->RX15MASK = 0x1FFFFFFF;
	 
	 /* Initialize individual mask registers for the queue */
	 if(pFlexCANReg->MCR & FLEXCAN_MCR_IRMQ)
	 {
           for(i = 0; i < NUMBER_OF_MB ; i++)
           {
	 	pFlexCANReg->RXIMR[i] = 0x1FFFFFFFL;
           }
	 }	
         
         // Enable interrupts
         //pFlexCANReg->IMASK1 |=  (1<<FLEXCAN_RX_MB_START) | (1<<FLEXCAN_TX_MB_START);         
         
         // Start communication
         FlexCAN_Start();

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
六月丁香综合在线视频| 蜜臀av性久久久久蜜臀aⅴ流畅| 欧美性感一区二区三区| 久久精工是国产品牌吗| 最新国产成人在线观看| 日韩一区二区三区视频在线 | 欧美r级在线观看| 成人免费视频播放| 美女一区二区在线观看| 亚洲精品免费播放| 久久久噜噜噜久久人人看| 欧美在线你懂的| 成人av免费网站| 久久精品国产亚洲高清剧情介绍| 亚洲三级理论片| 久久精品视频在线免费观看| 欧美一区二区久久| 欧美视频精品在线| 97精品国产97久久久久久久久久久久 | 成人h动漫精品一区二区| 日韩国产一二三区| 亚洲精品视频在线看| 久久综合久久99| 日韩一区国产二区欧美三区| 欧美性生活大片视频| eeuss国产一区二区三区| 国产一区不卡在线| 日本sm残虐另类| 午夜欧美电影在线观看| 亚洲在线视频免费观看| 国产精品欧美久久久久一区二区| 2021中文字幕一区亚洲| 欧美成人精品3d动漫h| 欧美男女性生活在线直播观看| 91麻豆国产福利在线观看| 国产成a人无v码亚洲福利| 国产在线播放一区二区三区| 麻豆精品一区二区综合av| 男男视频亚洲欧美| 日韩电影在线免费看| 亚洲一区二区三区四区五区黄 | 久久成人精品无人区| 天天射综合影视| 五月天久久比比资源色| 香蕉加勒比综合久久| 午夜精品久久久久| 天堂在线亚洲视频| 天天亚洲美女在线视频| 日韩国产精品久久久| 麻豆91精品视频| 蜜桃一区二区三区在线| 老色鬼精品视频在线观看播放| 日本不卡视频一二三区| 美女一区二区视频| 激情小说亚洲一区| 国产 欧美在线| 99久久伊人精品| 色婷婷一区二区| 欧美日韩中字一区| 91精品国产综合久久香蕉麻豆 | 欧美无人高清视频在线观看| 91成人免费电影| 在线观看91视频| 91麻豆精品国产| xnxx国产精品| 国产精品国产成人国产三级| 亚洲欧美日韩国产手机在线 | 国产激情视频一区二区在线观看 | 一区二区三区四区在线| 舔着乳尖日韩一区| 国内精品国产三级国产a久久| 成人小视频免费观看| 91色在线porny| 欧美日韩国产另类不卡| 日韩无一区二区| 国产精品色在线观看| 亚洲在线视频网站| 国产综合久久久久久鬼色| 成人免费观看av| 欧美麻豆精品久久久久久| 欧美大尺度电影在线| 国产精品美女久久久久久久久久久| 一区二区在线免费| 捆绑紧缚一区二区三区视频| 国产a区久久久| 欧美日韩免费不卡视频一区二区三区 | 日本电影亚洲天堂一区| 日韩欧美成人激情| 亚洲日本在线天堂| 麻豆传媒一区二区三区| jizzjizzjizz欧美| 欧美电影精品一区二区| 椎名由奈av一区二区三区| 日韩国产在线观看| av资源网一区| 精品福利在线导航| 亚洲综合激情另类小说区| 国产一区二区精品在线观看| 在线国产亚洲欧美| 精品国产乱码久久久久久影片| 亚洲一区在线电影| 成人免费视频一区二区| 欧美一区三区四区| 又紧又大又爽精品一区二区| 国内精品伊人久久久久av影院| 欧美午夜精品理论片a级按摩| 国产亚洲综合色| 青青草97国产精品免费观看无弹窗版| 成人动漫精品一区二区| 一区二区高清在线| 国产一区二区三区高清播放| 欧美日韩免费在线视频| 亚洲同性同志一二三专区| 男男视频亚洲欧美| 欧美日韩国产高清一区二区三区| 中文字幕成人av| 激情欧美一区二区| 51午夜精品国产| 一区二区三区四区国产精品| 国产精品456露脸| 日韩欧美在线观看一区二区三区| 一区二区三区高清| 99re这里都是精品| 亚洲国产精品精华液ab| 国产一区二区视频在线播放| 日韩视频一区二区三区在线播放| 一个色妞综合视频在线观看| 99视频一区二区| 亚洲国产精品传媒在线观看| 国产精品一区二区三区网站| 欧美一区永久视频免费观看| 亚洲va韩国va欧美va| 欧美性感一区二区三区| 亚洲一线二线三线视频| 91免费版pro下载短视频| 国产精品久久国产精麻豆99网站| 国产高清成人在线| 日本一区二区在线不卡| 成人影视亚洲图片在线| 久久精品在线免费观看| 国产精品一区二区在线观看网站| 精品国产a毛片| 国产一区激情在线| 久久综合av免费| 国产精品一区二区男女羞羞无遮挡| 欧美成人精品3d动漫h| 韩国成人福利片在线播放| 欧美va亚洲va香蕉在线| 极品销魂美女一区二区三区| 日韩精品一区二区三区中文不卡| 日韩高清一级片| 欧美一级片在线看| 狂野欧美性猛交blacked| 亚洲专区一二三| 欧美日韩国产片| 图片区小说区国产精品视频| 欧美一区二区三区在线电影| 激情五月婷婷综合网| 亚洲国产精品成人综合色在线婷婷 | 国产精品青草综合久久久久99| 国产福利一区在线观看| 一区二区中文字幕在线| 91麻豆免费看片| 午夜免费欧美电影| www国产成人免费观看视频 深夜成人网| 国产一区二区三区最好精华液| 久久久久国产精品厨房| 99视频在线精品| 性做久久久久久免费观看| 日韩欧美国产午夜精品| 春色校园综合激情亚洲| 亚洲美女淫视频| 在线不卡中文字幕播放| 国产一区二区三区免费观看| 国产精品国产三级国产专播品爱网| 91麻豆国产精品久久| 日本伊人色综合网| 久久久久成人黄色影片| 色综合网色综合| 蜜臀a∨国产成人精品| 国产精品久久久久久久久快鸭| 91美女片黄在线观看91美女| 日韩av在线免费观看不卡| 久久久国产一区二区三区四区小说 | 99久久婷婷国产综合精品电影| 亚洲精品ww久久久久久p站| 欧美一卡2卡3卡4卡| 成人深夜在线观看| 日韩影视精彩在线| 中文字幕在线一区| 91精品福利在线一区二区三区| 成人午夜电影网站| 日本aⅴ免费视频一区二区三区| 国产精品美女久久久久aⅴ| 欧美另类z0zxhd电影| 国产福利一区二区三区视频在线| 亚洲大片免费看| 国产精品欧美极品| 欧美成人猛片aaaaaaa| 97国产精品videossex|