wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

標題: 基于STM32F103的二輪平衡車(6軸上位機 源代碼 卡爾曼濾波資料)心得分享 [打印本頁]

作者: 51hei大小    時間: 2016-6-17 14:44
標題: 基于STM32F103的二輪平衡車(6軸上位機 源代碼 卡爾曼濾波資料)心得分享
         前段時間搞了個平衡車,涉及stm32F3  步進電機驅動   陀螺儀mpu3050   加速度計adxl345(也可以用6軸mpu6050)  無線NRF24L01
        當初最大問題是卡爾曼濾波(進行陀螺儀與加速度計的數據融合)和pid調節
        對于卡爾曼濾波,經過自己不斷深究,其實也不是很復雜,核心是五大公式,涉及矩陣運算,思想是預測值 最優估計值 噪聲  協方差的概念,難點:一些參數選擇

        說下用卡爾曼濾波的出發點,陀螺儀 加速度計都可以得到角度,而陀螺儀是先得到角速度再經積分才得到角度, 陀螺儀相比加速度計短時間內動態性能好,得到角度精準,但本身有小漂移,隨著時間變長,不斷積分,誤差會越來越大,那就需要用加速度計進行校正


       對于pid算法,里面涉及二級pid,首先要明白小車速度跟給步進電機的頻率是成正比的,就把頻率等效為速度
       第一個pid,角度pid,通過測角度反饋給stm32f3產生頻率(速度)來進行平衡調節(即調節角度)
       第二個pid,速度pid,由于角度調節產生了速度變化,而為了不改變設定的速度,需要進行速度調節,它的反饋來自不斷角度pid的結果(由于速度跟頻率成正比,不需要測速反饋)
       難點:pid整定參數




  1. /***********************************************
  2. 標題: 24L01.c
  3. 日期: 2013/12/27
  4. 版本:v1.0
  5. 功能: 初始化以spi及數據讀寫
  6. 說明:24l01的初始化及spi2的調用
  7. 注意:在24l01.h中的管腳配置

  8. *************************************************/
  9. #include "stm32f10x.h"
  10. #include "24l01.h"
  11. #include "spi.h"
  12. #include
  13.          
  14. const u8 TX_ADDRESS[TX_ADR_WIDTH]={0x34,0x43,0x10,0x10,0x01}; //發送地址
  15. const u8 RX_ADDRESS[RX_ADR_WIDTH]={0x34,0x43,0x10,0x10,0x01}; //發送地址
  16.                                                             
  17. //初始化24L01的IO口
  18. void NRF24L01_Init(void)
  19.         {
  20.                
  21.         GPIO_InitTypeDef GPIO_InitStructure;
  22.         RCC_APB2PeriphClockCmd(        RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOD, ENABLE );        

  23.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;//CE  PB12
  24.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP ;   //推挽輸出
  25.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  26.         GPIO_Init(GPIOB, &GPIO_InitStructure);
  27.         GPIO_SetBits(GPIOB,GPIO_Pin_12);

  28.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_2|GPIO_Pin_3;//LSN
  29.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP ;   //推挽輸出
  30.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  31.         GPIO_Init(GPIOD, &GPIO_InitStructure);
  32.         GPIO_SetBits(GPIOD,GPIO_Pin_8);
  33.                
  34.                 GPIO_SetBits(GPIOD,GPIO_Pin_2);//LED1
  35.                 GPIO_SetBits(GPIOD,GPIO_Pin_3);//LED2

  36.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
  37.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU  ;   //上拉輸入
  38.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  39.         GPIO_Init(GPIOD, &GPIO_InitStructure);

  40.         SPI2_Init();    //初始化SPI2
  41.         
  42.         Clr_NRF24L01_CE;         //使能24L01  NRF24L01_CE
  43.         Set_NRF24L01_CSN;    //SPI片選取消 NRF24L01_CSN                           
  44.         }

  45. //檢測24L01是否存在
  46. //返回值:0,成功;1,失敗        
  47. u8 NRF24L01_Check(void)
  48.         {
  49.         u8 buf[5]={0XA5,0XA5,0XA5,0XA5,0XA5};
  50.         u8 i;
  51.         NRF24L01_Write_Buf(NRF24L01_WRITE_REG+TX_ADDR,buf,5);//寫入5個字節的地址.        
  52.         NRF24L01_Read_Buf(TX_ADDR,buf,5); //讀出寫入的地址  
  53.         for(i=0;i<5;i++)if(buf[i]!=0XA5)break;                                                                    
  54.         if(i!=5)return 1;//檢測24L01錯誤        
  55.         return 0;                 //檢測到24L01
  56.         }        
  57.          
  58. //SPI寫寄存器
  59. //reg:指定寄存器地址
  60. //value:寫入的值
  61. u8 NRF24L01_Write_Reg(u8 reg,u8 value)
  62.         {
  63.         u8 status;        
  64.         Clr_NRF24L01_CSN;                 //使能SPI傳輸
  65.         status =SPIx_ReadWriteByte(reg);//發送寄存器號
  66.         SPIx_ReadWriteByte(value);      //寫入寄存器的值
  67.         Set_NRF24L01_CSN;                 //禁止SPI傳輸           
  68.         return(status);                               //返回狀態值
  69.         }

  70. //讀取SPI寄存器值
  71. //reg:要讀的寄存器
  72. u8 NRF24L01_Read_Reg(u8 reg)
  73.         {
  74.         u8 reg_val;            
  75.         Clr_NRF24L01_CSN;          //使能SPI傳輸               
  76.         SPIx_ReadWriteByte(reg);   //發送寄存器號
  77.         reg_val=SPIx_ReadWriteByte(0XFF);//讀取寄存器內容
  78.         Set_NRF24L01_CSN;          //禁止SPI傳輸                    
  79.         return(reg_val);           //返回狀態值
  80.         }        

  81. //在指定位置讀出指定長度的數據
  82. //reg:寄存器(位置)
  83. //*pBuf:數據指針
  84. //len:數據長度
  85. //返回值,此次讀到的狀態寄存器值
  86. u8 NRF24L01_Read_Buf(u8 reg,u8 *pBuf,u8 len)
  87.         {
  88.         u8 status,u8_ctr;               
  89.         Clr_NRF24L01_CSN;           //使能SPI傳輸
  90.         status=SPIx_ReadWriteByte(reg);//發送寄存器值(位置),并讀取狀態值              
  91.         for(u8_ctr=0;u8_ctr<len;u8_ctr++)pbuf[u8_ctr]=spix_readwritebyte(0xff); 讀出數據
  92.         Set_NRF24L01_CSN;       //關閉SPI傳輸
  93.         return status;        //返回讀到的狀態值
  94.         }

  95. //在指定位置寫指定長度的數據
  96. //reg:寄存器(位置)
  97. //*pBuf:數據指針
  98. //len:數據長度
  99. //返回值,此次讀到的狀態寄存器值
  100. u8 NRF24L01_Write_Buf(u8 reg, u8 *pBuf, u8 len)
  101.         {
  102.         u8 status,u8_ctr;            
  103.         Clr_NRF24L01_CSN;          //使能SPI傳輸
  104.         status = SPIx_ReadWriteByte(reg);//發送寄存器值(位置),并讀取狀態值
  105.         for(u8_ctr=0; u8_ctr<len; u8_ctr++)spix_readwritebyte(*pbuf++);="" 寫入數據=""
  106.         Set_NRF24L01_CSN;       //關閉SPI傳輸
  107.         return status;          //返回讀到的狀態值
  108.         }
  109.                                    
  110. //啟動NRF24L01發送一次數據
  111. //txbuf:待發送數據首地址
  112. //返回值:發送完成狀況
  113. u8 NRF24L01_TxPacket(u8 *txbuf)
  114.         {
  115.         u8 sta;
  116.         Clr_NRF24L01_CE;
  117.         NRF24L01_Write_Buf(NRF24L01_WR_TX_PLOAD,txbuf,TX_PLOAD_WIDTH);//寫數據到TX BUF  32個字節
  118.         Set_NRF24L01_CE;//啟動發送           
  119.         while(NRF24L01_IRQ!=0);//等待發送完成
  120.         sta=NRF24L01_Read_Reg(STATUS);  //讀取狀態寄存器的值           
  121.         NRF24L01_Write_Reg(NRF24L01_WRITE_REG+STATUS,sta); //清除TX_DS或MAX_RT中斷標志
  122.         if(sta&MAX_TX)//達到最大重發次數
  123.                 {
  124.                 NRF24L01_Write_Reg(NRF24L01_FLUSH_TX,0xff);//清除TX FIFO寄存器
  125.                 return MAX_TX;
  126.                 }
  127.         if(sta&TX_OK)//發送完成
  128.                 {
  129.                 return TX_OK;
  130.                 }
  131.         return 0xff;//其他原因發送失敗
  132.         }

  133. //啟動NRF24L01發送一次數據
  134. //txbuf:待發送數據首地址
  135. //返回值:0,接收完成;其他,錯誤代碼
  136. u8 NRF24L01_RxPacket(u8 *rxbuf)
  137.         {
  138.         u8 sta;                                                                              
  139.         sta=NRF24L01_Read_Reg(STATUS);  //讀取狀態寄存器的值            
  140.         NRF24L01_Write_Reg(NRF24L01_WRITE_REG+STATUS,sta); //清除TX_DS或MAX_RT中斷標志
  141.         if(sta&RX_OK)//接收到數據
  142.                 {
  143.                 NRF24L01_Read_Buf(NRF24L01_RD_RX_PLOAD,rxbuf,RX_PLOAD_WIDTH);//讀取數據
  144.                 NRF24L01_Write_Reg(NRF24L01_FLUSH_RX,0xff);//清除RX FIFO寄存器
  145.                 return 0;
  146.                 }           
  147.         return 1;//沒收到任何數據
  148.         }        
  149.                                             
  150. //該函數初始化NRF24L01到RX模式
  151. //設置RX地址,寫RX數據寬度,選擇RF頻道,波特率和LNA HCURR
  152. //當CE變高后,即進入RX模式,并可以接收數據了                  
  153. void RX_Mode(void)
  154.         {
  155.         Clr_NRF24L01_CE;         
  156.         NRF24L01_Write_Buf(NRF24L01_WRITE_REG+RX_ADDR_P0,(u8*)RX_ADDRESS,RX_ADR_WIDTH);//寫RX節點地址
  157.         
  158.         NRF24L01_Write_Reg(NRF24L01_WRITE_REG+EN_AA,0x01);    //使能通道0的自動應答   
  159.         NRF24L01_Write_Reg(NRF24L01_WRITE_REG+EN_RXADDR,0x01);//使能通道0的接收地址           
  160.         NRF24L01_Write_Reg(NRF24L01_WRITE_REG+RF_CH,40);             //設置RF通信頻率                  
  161.         NRF24L01_Write_Reg(NRF24L01_WRITE_REG+RX_PW_P0,RX_PLOAD_WIDTH);//選擇通道0的有效數據寬度            
  162.         NRF24L01_Write_Reg(NRF24L01_WRITE_REG+RF_SETUP,0x0f);//設置TX發射參數,0db增益,2Mbps,低噪聲增益開啟   
  163.         NRF24L01_Write_Reg(NRF24L01_WRITE_REG+CONFIG, 0x0f);//配置基本工作模式的參數;PWR_UP,EN_CRC,16BIT_CRC,接收模式
  164.         Set_NRF24L01_CE; //CE為高,進入接收模式
  165.         }
  166.                                                          
  167. //該函數初始化NRF24L01到TX模式
  168. //設置TX地址,寫TX數據寬度,設置RX自動應答的地址,填充TX發送數據,選擇RF頻道,波特率和LNA HCURR
  169. //PWR_UP,CRC使能
  170. //當CE變高后,即進入RX模式,并可以接收數據了                  
  171. //CE為高大于10us,則啟動發送.         
  172. void TX_Mode(void)
  173.         {                                                                                                                 
  174.         Clr_NRF24L01_CE;            
  175.         NRF24L01_Write_Buf(NRF24L01_WRITE_REG+TX_ADDR,(u8*)TX_ADDRESS,TX_ADR_WIDTH);//寫TX節點地址
  176.         NRF24L01_Write_Buf(NRF24L01_WRITE_REG+RX_ADDR_P0,(u8*)RX_ADDRESS,RX_ADR_WIDTH); //設置TX節點地址,主要為了使能ACK         
  177.         
  178.         NRF24L01_Write_Reg(NRF24L01_WRITE_REG+EN_AA,0x01);     //使能通道0的自動應答   
  179.         NRF24L01_Write_Reg(NRF24L01_WRITE_REG+EN_RXADDR,0x01); //使能通道0的接收地址  
  180.         NRF24L01_Write_Reg(NRF24L01_WRITE_REG+SETUP_RETR,0x1a);//設置自動重發間隔時間:500us + 86us;最大自動重發次數:10次
  181.         NRF24L01_Write_Reg(NRF24L01_WRITE_REG+RF_CH,40);       //設置RF通道為40
  182.         NRF24L01_Write_Reg(NRF24L01_WRITE_REG+RF_SETUP,0x0f);  //設置TX發射參數,0db增益,2Mbps,低噪聲增益開啟   
  183.         NRF24L01_Write_Reg(NRF24L01_WRITE_REG+CONFIG,0x0e);    //配置基本工作模式的參數;PWR_UP,EN_CRC,16BIT_CRC,接收模式,開啟所有中斷
  184.         Set_NRF24L01_CE;//CE為高,10us后啟動發送
  185.         }                  
復制代碼


代碼資料(完美)見下
balance car nrf24l01程序 完美.zip (6.43 MB, 下載次數: 243)

平衡車卡爾曼濾波資料.zip (1.2 MB, 下載次數: 213)



作者: kingbobo    時間: 2016-6-20 08:47
好玩的東西都要MARK一下
作者: lcr39101    時間: 2016-6-20 19:55
學習,學習,謝謝
作者: 瘋狂土豆兒    時間: 2016-8-9 18:34
我用printf("%0.2f    %0.2f    %0.2f\r\n",Angle,Angle_ax,Gyro_y);函數分別讀取的加速度,角速度和傾角,我發現當我快速的改變板子的傾角的時候,比如快速變化10度,Angle(卡爾曼濾波后的傾角)瞬時變化非?,可能會瞬間變化幾十度然后回到正常角度,而當我緩慢變化10度的時候,Angle變化是正常線性變化到10度,在這兩種變化中,Angle_ax(從MPU6050讀取的值經過處理后的陀螺儀的Y軸數據)的變化一直都是線性正常的,并且Angle的值特別接近Angle_ax的值 問題:1,我快速改變板子傾角時Angle的變化正常嗎?       2,Angle正常變化的時候是應該與Angle_ax的值相近嗎?  現在情況就是,就算我是在減小傾角,只要我快速地改變,它顯示的傾角都會先增大再減小,而如果我慢速改變的話,傾角就會緩慢減小而不會出現中間的角度增大   *************讀取數據******************** //定義MPU6050內部地址 #define        SMPLRT_DIV                0x19        //陀螺儀采樣率 典型值 0X07 125Hz #define        CONFIG                          0x1A        //低通濾波頻率 典型值 0x00  #define        GYRO_CONFIG                0x1B        //陀螺儀自檢及測量范圍                 典型值 0x18 不自檢 2000deg/s #define        ACCEL_CONFIG        0x1C        //加速度計自檢及測量范圍及高通濾波頻率 典型值 0x01 不自檢 2G 5Hz #define INT_PIN_CFG     0x37 #define INT_ENABLE      0x38 #define INT_STATUS      0x3A    //只讀 #define        ACCEL_XOUT_H        0x3B #define        ACCEL_XOUT_L        0x3C #define        ACCEL_YOUT_H        0x3D #define        ACCEL_YOUT_L        0x3E #define        ACCEL_ZOUT_H        0x3F #define        ACCEL_ZOUT_L        0x40 #define        TEMP_OUT_H                0x41 #define        TEMP_OUT_L                0x42 #define        GYRO_XOUT_H    0x43 #define        GYRO_XOUT_L                0x44         #define        GYRO_YOUT_H        0x45 #define        GYRO_YOUT_L                0x46 #define        GYRO_ZOUT_H        0x47 #define        GYRO_ZOUT_L                0x48  //讀取寄存器原生數據                     MPU6050_Raw_Data.Accel_X = (buf[0]<<8 | buf[1]);         MPU6050_Raw_Data.Accel_Y = (buf[2]<<8 | buf[3]);         MPU6050_Raw_Data.Accel_Z = (buf[4]<<8 | buf[5]);          MPU6050_Raw_Data.Temp =    (buf[6]<<8 | buf[7]);           MPU6050_Raw_Data.Gyro_X = (buf[8]<<8 | buf[9]);         MPU6050_Raw_Data.Gyro_Y = (buf[10]<<8 | buf[11]);         MPU6050_Raw_Data.Gyro_Z = (buf[12]<<8 | buf[13]);                         //將原生數據轉換為實際值,計算公式跟寄存器的配置有關         MPU6050_Real_Data.Accel_X = -(float)(MPU6050_Raw_Data.Accel_X)/8192.0;          MPU6050_Real_Data.Accel_Y = -(float)(MPU6050_Raw_Data.Accel_Y)/8192.0;          MPU6050_Real_Data.Accel_Z = (float)(MPU6050_Raw_Data.Accel_Z)/8192.0;                MPU6050_Real_Data.Gyro_X=-(float)(MPU6050_Raw_Data.Gyro_X - gyroADC_X_offset)/65.5;             MPU6050_Real_Data.Gyro_Y=-(float)(MPU6050_Raw_Data.Gyro_Y - gyroADC_Y_offset)/65.5;            MPU6050_Real_Data.Gyro_Z=(float)(MPU6050_Raw_Data.Gyro_Z - gyroADC_Z_offset)/65.5;        }         //******卡爾曼參數************                  const float Q_angle=0.001;   const float Q_gyro=0.003; const float R_angle=0.5; const float dt=0.01;                          //dt為kalman濾波器采樣時間; const char  C_0 = 1; float Q_bias, Angle_err; float PCt_0, PCt_1, E; float K_0, K_1, t_0, t_1; float Pdot[4] ={0,0,0,0}; float PP[2][2] = { { 1, 0 },{ 0, 1 } };  /*****************卡爾曼濾波**************************************************/ void Kalman_Filter(float Accel,float Gyro)                 {         Angle+=(Gyro - Q_bias) * dt; //先驗估計                  Pdot[0]=Q_angle - PP[0][1] - PP[1][0]; // Pk-先驗估計誤差協方差的微分          Pdot[1]= -PP[1][1];         Pdot[2]= -PP[1][1];         Pdot[3]=Q_gyro;                  PP[0][0] += Pdot[0] * dt;   // Pk-先驗估計誤差協方差微分的積分         PP[0][1] += Pdot[1] * dt;   // =先驗估計誤差協方差         PP[1][0] += Pdot[2] * dt;         PP[1][1] += Pdot[3] * dt;                          Angle_err = Accel - Angle;        //zk-先驗估計                  PCt_0 = C_0 * PP[0][0];         PCt_1 = C_0 * PP[1][0];                  E = R_angle + C_0 * PCt_0;                  K_0 = PCt_0 / E;         K_1 = PCt_1 / E;                  t_0 = PCt_0;         t_1 = C_0 * PP[0][1];          PP[0][0] -= K_0 * t_0;                 //后驗估計誤差協方差         PP[0][1] -= K_0 * t_1;         PP[1][0] -= K_1 * t_0;         PP[1][1] -= K_1 * t_1;                          Angle        += K_0 * Angle_err;         //后驗估計         Q_bias        += K_1 * Angle_err;         //后驗估計         Gyro_y   = Gyro - Q_bias;         //輸出值(后驗估計)的微分=角速度  }  ******************傾角計算***************** void Angle_Calculate(void) {  /****************************加速度****************************************/                  Accel_x  =  MPU6050_Real_Data.Accel_X;          //讀取X軸加速度         Angle_ax = Accel_x*1.2*180/3.14;     //弧度轉換為度  /****************************角速度****************************************/                   Gyro_y = MPU6050_Real_Data.Gyro_Y;              時間dt,所以此處不用積分 /***************************卡爾曼融合*************************************/         Kalman_Filter(Angle_ax,Gyro_y);       //卡爾曼濾波計算傾角        
作者: 雙贏電子    時間: 2016-8-24 20:10
都是高手學習了,謝謝分享
作者: WZUOZ    時間: 2017-1-6 18:00
學習學習
作者: 八寶粥    時間: 2019-12-14 10:53
rout那一行:為什么不是pi(直立環)+PD(速度環)控制
作者: shower721    時間: 2020-1-12 00:32
學習,謝謝分享
作者: lkf_8888    時間: 2023-10-8 21:17
我看到第四橫,#include,后面沒有帶頭文件,能編譯通過嗎??
作者: Loser'    時間: 2024-4-6 16:58
lcr39101 發表于 2016-6-20 19:55
學習,學習,謝謝

學習

作者: hclin    時間: 2025-7-22 04:26
值得學習 研究 謝謝分享





歡迎光臨 (http://www.izizhuan.cn/bbs/) Powered by Discuz! X3.1
国产精品第二页| av在线播放网址| 1769国产精品| 精品一区二区三区视频在线观看 | 中文字幕第一页在线播放| 岛国av免费在线| 亚洲春色在线视频| 青青a在线精品免费观看| 日韩欧美国产一二三区| 亚洲精品中文字幕乱码三区| 蜜臀av性久久久久蜜臀aⅴ| 欧美女王vk| 国产精品专区免费| 久久电影视频| jizzjizz免费| 男人的天堂视频网站| yjizz国产| 国产真实乱人偷精品人妻| 日韩精品一区二区三区久久| 欧美在线播放一区| 国产精品久久一区主播| 欧美日韩美女一区二区| 日韩精品视频网站| 欧美色图一区| 免费在线看污片| h网站在线播放| 免费黄网站观看| 影音先锋在线资源中文字幕| 国产又粗又猛又爽又黄的| 青娱乐国产盛宴| 草草影院第一页| 青娱乐国产精品视频| 欧美牲交a欧美牲交| 色姑娘综合av| 国产精品一区在线观看| 国产亚洲一区精品| 日韩女同互慰一区二区| 91官网在线免费观看| 日韩美女视频一区二区| 91美女视频网站| 高清国产一区二区三区| 日韩精品成人一区二区三区| 白白在线精品| 97久久网站| 中文字幕在线直播| 国产天堂在线播放视频| 情趣视频在线观看| 中文字幕亚洲免费| 亚洲第一视频在线| 91久久久久久久久久久久久久| 国产一级大片免费看| 久久精品ww人人做人人爽| 中文字幕精品—区二区| 精品女同一区二区| 欧美美女黄视频| 欧美国产日产图区| 一区二区国产在线观看| 欧美综合久久| 日韩av三区| sqte在线播放| caoporm免费视频在线| 国产最新视频在线| 3p乱日视频| 国产成人精品综合网站| 国产精品爱久久久久久久小说| 亚洲第一精品在线观看| 亚洲成人生活片| 爆乳熟妇一区二区三区霸乳| 无码粉嫩虎白一线天在线观看 | 秋霞在线视频| 男人和女人做事情在线视频网站免费观看 | 97精品超碰一区二区三区| 精品一区二区免费看| 久久久国产精品一区二区中文| 欧美电影在线观看完整版| 尤物视频在线看| 巨大荫蒂视频欧美大片| 看黄的a网站| 女人被爽到呻吟gif动态图下载| 精品毛片一区二区三区| 一本久道久久综合无码中文| 国产精品探花视频| www.日韩高清| 亚洲欧美日韩免费| 欧美国产中文| 丰满湿润大白屁股bbw按摩| eeuss影院130020部| 男人的天堂视频网站| 狠狠鲁男人天堂| 国产精品一区牛牛影视| 岛国片在线观看| 午夜爽爽爽男女免费观看影院| 一区二区不卡久久精品| 四虎精品成人a在线观看| brazzers欧美最新版视频| 美美女免费毛片| 美女激情网站| 人日人天天爽| 色视频在线播放| jizz免费看| 国产麻豆剧果冻传媒观看hd高清| 在线观看毛片网站| 粉嫩av一区二区夜夜嗨| 国产福利一区二区在线精品| 可以免费观看av的网站| 四虎精品在线| 金瓶狂野欧美性猛交xxxx| 手机看片久久| 精品国产乱码久久久久久影片| 欧美午夜不卡| 国产欧美在线看| 国产亚洲视频在线观看| 色青青草原桃花久久综合| 理论片在线不卡免费观看| 欧美一区二区精品| 亚洲男人天天操| 97精品免费视频| 九九热在线精品视频| 26uuu亚洲伊人春色| 亚洲一区中文字幕在线观看| 午夜一区二区三视频在线观看| 国产精品国色综合久久| 亚洲欧美精品在线观看| 午夜免费一区二区| 久久久久久久久久久久久国产精品 | 久久久久久一二三区| 国产成人精品1024| 亚洲欧洲日产国产综合网| 在线免费观看日本欧美| 亚洲一区二区黄| 国产精品成人一区二区三区吃奶| 国产免费一区二区三区在线能观看| 91精品国产91久久久| 国产亚洲精品自在久久| 男人揉女人奶房视频60分| 中文字幕在线看高清电影| 娇妻被老王脔到高潮失禁视频| 三上悠亚ssⅰn939无码播放| 在线观看免费国产视频| 手机av免费观看| 97超碰国产在线| 污污视频网站| 成年人在线看| 亚洲精品一区二区三区在线| 中文字幕一区二区三区欧美日韩| 综合一区二区三区| 99在线精品一区二区三区| 欧美亚洲国产一区二区三区 | 精品一区二区三区在线 | 色乱码一区二区三区熟女 | 四虎影院中文字幕| 色偷偷在线观看| 免费视频二区| 亚洲伦乱视频| 韩国亚洲精品| 精品一区二区三区免费毛片爱| www.欧美.com| 欧美高清激情brazzers| 国产69久久精品成人| 伊人久久大香线蕉成人综合网| 日韩av高清在线看片| 国产免费一区二区三区网站免费| 欧美日韩精品一区二区三区视频播放| 日韩成人一区二区三区| 国产女人高潮时对白| jizzjizz日本护士免费| 中文字幕影音在线| 在线播放日韩| 一区二区三区免费| 视频在线观看一区二区| 欧美精品一区二区三区在线四季 | 成人免费观看49www在线观看| a级毛片免费高清视频| 男女视频在线观看| 136国产福利精品导航网址应用| 免费久久精品| 岛国av在线一区| 亚洲高清中文字幕| 精品中文字幕在线观看| 亚洲自拍偷拍二区| 国产精品扒开腿做爽爽| 亚洲人成影院77777| 九一国产在线| 欧美美乳视频| 国产婷婷色一区二区三区| 精品电影一区二区| 欧美国产欧美亚洲国产日韩mv天天看完整| 国产精品99久久久久久白浆小说| 99在线热播| 美女露出粉嫩尿囗让男人桶| 国产美女免费视频| 极品美乳网红视频免费在线观看| 国产91在线播放精品| 首页欧美精品中文字幕| 欧美午夜电影网| 国产区精品在线观看| 精品亚洲视频在线| 亚洲av无码片一区二区三区| www.av99| 欧美成年网站| 日韩午夜电影网| 一区二区三区精品视频在线| 久久男人的天堂| 欧美日韩亚洲一二三| 一级日韩一级欧美| 国产在线一二三| 欧美三区在线| 欧美视频一区在线| 17婷婷久久www| 粉色视频免费看| 亚洲精品中文字幕成人片| www.成人.com| 国产一区白浆| 欧美成人官网二区| 一本一本a久久| 国产精品黄色大片| 污视频网站在线观看| 99精品小视频| 在线观看免费视频综合| 国产精品久久亚洲| 神马久久精品综合| 男人免费av| 日韩欧美视频在线播放| 婷婷丁香激情综合| 成人av中文| 青青草精品在线视频| 污黄视频在线看| 欧美精品aa| 欧美一级淫片007| 日本在线视频一区| 中国一级免费毛片| 国内精品一区视频| 欧美高清视频在线观看mv| 欧美日韩亚洲天堂| 麻豆av一区| 国产成人精品777777| eeuss影影院www在线播放| 日韩大胆成人| 久久久久久久国产精品影院| 欧美国产日韩中文字幕在线| 亚洲一二区在线观看| 国产精品一区牛牛影视| 天堂在线精品| 91福利视频在线| 日本在线免费观看一区| 中文无码精品一区二区三区| 中文字幕免费高清电视剧网站在线观看| 亚洲成人一区| 9191成人精品久久| 少妇久久久久久被弄到高潮| 噜噜噜久久,亚洲精品国产品| 波多野结衣在线网站| 日本亚洲一区二区| 久久久精品国产一区二区| mm131国产精品| www91在线观看| 真实原创一区二区影院| 欧美视频一区二区三区四区 | 亚洲视频在线观看一区| 欧美激情2020午夜免费观看| 亚洲AV无码久久精品国产一区| 少妇一区二区三区四区| 国产91av在线播放| 国产中文字幕在线播放| 免费观看30秒视频久久| 久久69精品久久久久久久电影好| 黄色一级视频片| 91片黄在线观看喷潮| 欧美aa在线| 亚洲欧美怡红院| 国产一区二区三区免费不卡| 国产美女网站视频| 成人18在线| 久久国产日韩| 欧美福利小视频| 91n在线视频| 麻豆视频免费在线观看| xfplay精品久久| 国产精品国产一区二区 | 精品欧美国产一区二区三区不卡| 久久久久久久毛片| 亚洲kkk444kkk在线观看| 免费成人av在线播放| 午夜精品一区二区三区在线视频| 青青草原播放器| 激情视频国产| 捆绑变态av一区二区三区| 97在线看福利| 一级aaa毛片| 欧洲一区二区三区精品| 亚洲大型综合色站| 中国丰满熟妇xxxx性| 有色视频在线观看| 亚洲精品护士| 7777精品视频| 69亚洲精品久久久蜜桃小说| 黄色网在线免费看| 日本一区二区免费在线| 国产精品久久久久一区二区| 国产精品xxxx喷水欧美| 福利一区二区免费视频| 欧美在线制服丝袜| 中文字幕在线中文字幕日亚韩一区| 97精品人妻一区二区三区在线| 精品一性一色一乱农村| 亚洲激情综合网| 亚洲精品天堂成人片av在线播放 | 欧美日韩国产小视频在线观看| 欧美日韩亚洲免费| 日本中文字幕第一页| 尤物yw193can在线观看| 一区二区三区四区在线播放| 永久免费网站视频在线观看| 天天操天天干天天| 色一区二区三区四区| 欧美卡1卡2卡| 97超碰在线人人| 欧美性性性性性ⅹxxbbbb| 国产精品第十页| 欧洲s码亚洲m码精品一区| 久久国产香蕉视频| 久久男人av| 日韩中文字幕在线精品| 久久久久久欧美精品se一二三四| 免费在线观看黄色| 亚洲国产视频a| 一本岛在线视频| 国产乱子伦三级在线播放| 国产做a爰片久久毛片| 99久久精品免费看国产一区二区三区| 四虎精品永久在线| 99久久人爽人人添人人澡 | 国产精品第一页在线| 国产精品视频一区二区三区,| 美女网站免费观看| 一本久久知道综合久久| 成人网中文字幕| 无码h黄肉3d动漫在线观看| 一区在线观看| 99re6热在线精品视频播放速度| 潘金莲一级淫片aaaaaa播放| 日本一道高清一区二区三区| 美女性感视频久久久| 中文字字幕在线中文乱码| 深夜日韩欧美| 亚洲图片制服诱惑| 青青操免费在线视频| 国产69精品久久久久9999人| 日韩av在线影院| 精品在线视频观看| 久久夜夜操妹子| 日韩黄色在线免费观看| 久久精品波多野结衣| 久久资源综合| 日韩精品中文字| 国产综合精品在线| 怡红院红怡院欧美aⅴ怡春院| 亚洲女同ⅹxx女同tv| 一本色道久久亚洲综合精品蜜桃| 日本视频三区| 一二三四社区欧美黄| 东北少妇不带套对白| 天堂a中文在线| 色婷婷久久一区二区三区麻豆| 色综合色综合色综合色综合| 阿v免费在线观看| 7777精品久久久大香线蕉| 男人av资源站| 亚洲wwww| 日韩中文字幕免费视频| av中文在线观看| 日本在线不卡视频| 996这里只有精品| 91大神xh98hx在线播放| 欧美一级欧美一级在线播放| 久久久一区二区三区四区| 国产探花一区二区| 欧美黑人一区二区三区| 无码精品人妻一区二区| 国产一区二区美女| 日本一区二区三区www| 蜜臀在线观看| 欧美日韩mp4| 在线观看日本视频| 精品产国自在拍| 久久久久久久一| 伊人色综合久久久天天蜜桃| 成人国产精品免费| 国产wwwxx| 成人福利在线观看视频| 日韩国产欧美精品一区二区三区| 亚洲天堂一级片| 99精品美女| 日韩免费三级| 国产专区在线播放| 亚洲成人网在线观看| 91一区二区视频| 国产精品18久久久久久久网站| 日本一区二区三区精品视频| 九色在线观看|