久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3286|回復: 12
打印 上一主題 下一主題
收起左側

STM32尋跡小車程序理解的問題

  [復制鏈接]
跳轉到指定樓層
樓主
ID:526143 發表于 2019-5-15 17:12 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
這個是stm32尋跡控制輪子程序但是我到現在都沒讀懂他到底定義是哪四個io口,PA6,PA7 PB8,PB9,OR,PC6,PC7,PC8,PC9,求大神指點

  1. #include "motor_control.h"
  2. #include "SysTick.h"
  3. #include "UltrasonicWave.h"
  4. #include "pwm_output.h"
  5. #include "usart1.h"

  6. #define ONWARD   1
  7. #define BACKWARD 0
  8. extern vu8  count;
  9. extern vu32 averge_distance;
  10. vu8 left,right,middle;
  11. vu32 S2;
  12. vu32 S4;
  13. vu32 S1;
  14. vu32 timer;
  15. //u16 Pwm_Right;
  16. //u16 Pwm_Left;

  17. /**************************************
  18.     函數名    :Control_GPIO_Config
  19.     函數描述:配置Control小車用到的I/O口
  20.     輸入參數:無
  21.     輸出參數:無
  22. **************************************/
  23. void  GPIO_Configuration(void)
  24. {
  25.     GPIO_InitTypeDef GPIOA_InitStructure,GPIOB_InitStructure;   //定義兩個GPIO_InitTypeDef類型的結構體
  26.    
  27.     RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC,ENABLE);//開啟GPIOA外設時鐘

  28.     GPIOA_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9; //選擇要控制的GPIOA引腳
  29.     GPIOA_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //設置引腳模式為推挽式輸出
  30.     GPIOA_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //設置引腳速度為50Mhz
  31.     GPIO_Init(GPIOA,&GPIOA_InitStructure); //調用庫函數初始化    GPIOA
  32.     //剛開始停止電機轉動
  33.     GPIO_SetBits(GPIOC,GPIO_Pin_8|GPIO_Pin_9);
  34.    
  35.    
  36.     //RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC,ENABLE);  //開啟GPIOB的時鐘
  37.    
  38.     GPIOB_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7;  //選擇要控制的GPIOB引腳
  39.     GPIOB_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;    //配置引腳模式為推挽式輸出
  40.     GPIOB_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;    //設置引腳速度為50MHz
  41.    
  42.     GPIO_Init(GPIOC,&GPIOB_InitStructure);            //調用初始化GPIOB
  43.     GPIO_SetBits(GPIOC,GPIO_Pin_6|GPIO_Pin_7);        //啟動關閉電機
  44.       
  45. }

  46. /*****************************************
  47.    函數名        : Control_GPIOE_Config
  48.    輸入描述 : 對傳感器輸入信號的管腳配置
  49.    輸入參數 :無
  50.    輸出參數 :無
  51. ******************************************/
  52. void Control_GPIOE_Config(void)
  53. {
  54.     GPIO_InitTypeDef GPIOB_InitStructure;  //定義GPIOE管腳結構體變量
  55.    
  56.     RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB,ENABLE);//開啟GPIOE外設時鐘
  57.    
  58.     GPIOB_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_3|GPIO_Pin_4;
  59.     GPIOB_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;   //輸入采用浮空輸入
  60.    
  61.     GPIO_Init(GPIOB,&GPIOB_InitStructure);
  62. }

  63. /********************************************
  64. * 函數名 :TIM3_GPIO_Config
  65. * 描述  :配置TIM3復用輸出PWM時用到的I/O
  66. * 輸入  :無
  67. * 輸出  :無
  68. * 調用  :內部調用
  69. *********************************************/
  70. void TIM3_GPIO_Config(void)
  71. {
  72.     GPIO_InitTypeDef GPIO_InitStructure;
  73.     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);  //配置GPIOC的管腳
  74.     RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE); //開啟TIM3時鐘
  75.     /**配置pwm輸出的對應GPIO管腳****/
  76.     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7;
  77.     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;      //復用推挽式輸出
  78.     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  79.   GPIO_Init(GPIOA, &GPIO_InitStructure);
  80. }


  81. /*****************************************************************************
  82. *文件名           : TIM_Configuration
  83. *描述             : TIM4 初始化
  84. * 輸入            : 無
  85. * 輸出            : 無
  86. * 返回            : 無
  87. ******************************************************************************/
  88. void TIM3_Configuration(u16 CCR_Val_12,u16 CCR_Val_34)
  89. {
  90.    
  91.     TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
  92.     TIM_OCInitTypeDef    TIM_OCInitStructure;
  93.    
  94.     //CCR_Val_12 = 900;
  95.     //CCR_Val_34 = 900;
  96.     /* -----------------------------------------------------------------------
  97.     TIM3 Configuration: generate 2 PWM signals with 2 different duty cycles:
  98.     TIM3CLK = 36 MHz, Prescaler = 0x0, TIM3 counter clock = 36 MHz
  99.     TIM3 ARR Register = 999 => TIM3 Frequency = TIM3 counter clock/(ARR + 1)
  100.     TIM3 Frequency = 36 KHz.
  101.       TIM3 Channel1 duty cycle = (CCR_Val_12/ TIM3_ARR)* 100 = 50%
  102.       TIM3 Channel1 duty cycle = (CCR_Val_34/ TIM3_ARR)* 100 = 50%
  103.   ----------------------------------------------------------------------- */
  104.     /***通道1的配置*****/
  105.     TIM_TimeBaseStructure.TIM_Period = 999;        //設定總周期值
  106.     TIM_TimeBaseStructure.TIM_Prescaler = 0;      //設置預分頻:不預分頻,即為36MHz
  107.     TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1 ;    //設置時鐘分頻系數:不分頻
  108.   TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //向上計數模式
  109.    
  110.     TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);
  111.    
  112.     TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;        //配置為PWM模式1
  113.   TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;   
  114.   TIM_OCInitStructure.TIM_Pulse = CCR_Val_12;       //設置跳變值,當計數器計數到這個值時,電平發生跳變
  115.   TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;  //當定時器計數值小于CCR_Val時為高電平
  116.   TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
  117.   TIM_OCInitStructure.TIM_Pulse = CCR_Val_34;      //設置通道3的電平跳變值,輸出另外一個占空比的PWM
  118.    
  119.   TIM_OC1Init(TIM3, &TIM_OCInitStructure);     //使能通道1
  120.   TIM_OC1PreloadConfig(TIM3, TIM_OCPreload_Enable);
  121.    

  122.   TIM_OC2Init(TIM3, &TIM_OCInitStructure);      //使能通道2
  123.     TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable);
  124.     /***通道3的配置*****/
  125.    
  126.   TIM_ARRPreloadConfig(TIM3, ENABLE);             // 使能TIM3重載寄存器ARR
  127.   TIM_Cmd(TIM3, ENABLE);                   //使能定時器3   
  128.    
  129. //  TIM_OC3Init(TIM3, &TIM_OCInitStructure);      //使能通道3
  130. //    TIM_OC3PreloadConfig(TIM3, TIM_OCPreload_Enable);


  131. //  TIM_OC4Init(TIM3, &TIM_OCInitStructure);      //使能通道4
  132. //    TIM_OC4PreloadConfig(TIM3, TIM_OCPreload_Enable);
  133. //   
  134.    
  135. }

  136. /*************壁障前進***********/
  137. void Forward_run(void)
  138. {
  139.      /*左側輪子停轉*/
  140. //                Pwm_Left = 900;
  141. //                Pwm_Right = 900;
  142.                
  143.                 TIM3_Configuration(700,700);
  144.    
  145.                
  146.                 GPIO_ResetBits(GPIOC,GPIO_Pin_8);//0
  147.                 GPIO_SetBits(GPIOC,GPIO_Pin_9);//1
  148.    
  149.                 GPIO_ResetBits(GPIOC,GPIO_Pin_6);//0
  150.                 GPIO_SetBits(GPIOC,GPIO_Pin_7);//1
  151.         
  152. }
  153. /*************壁障后退***********/
  154. void Backward_run(void)
  155. {
  156.    
  157.     /*左側輪子停轉*/
  158. //                Pwm_Left = 900;
  159. //                Pwm_Right = 900;
  160.                
  161.                 TIM3_Configuration(700,700);
  162.    
  163.          GPIO_SetBits(GPIOC,GPIO_Pin_8);//1
  164.                 GPIO_ResetBits(GPIOC,GPIO_Pin_9);//0
  165.          
  166.           GPIO_SetBits(GPIOC,GPIO_Pin_6);//1
  167.           GPIO_ResetBits(GPIOC,GPIO_Pin_7);//0

  168.                

  169. }
  170. /*************壁障左轉***********/
  171. void Left_turn(void)
  172. {
  173.    /*左側輪子停轉*/
  174. //     Pwm_Left = 900;
  175. //     Pwm_Right = 900;
  176.   
  177.     TIM3_Configuration(700,700);
  178.   
  179. //    GPIO_ResetBits(GPIOB,GPIO_Pin_1);//0 //右電機轉動
  180. //    GPIO_SetBits(GPIOB,GPIO_Pin_0);//1

  181.    
  182.     GPIO_SetBits(GPIOC,GPIO_Pin_8); //左電機停止
  183.     GPIO_SetBits(GPIOC,GPIO_Pin_9);
  184.    
  185.   GPIO_ResetBits(GPIOC,GPIO_Pin_6);//0 //右電機轉動
  186.     GPIO_SetBits(GPIOC,GPIO_Pin_7);//1
  187. }
  188. /*************壁障右轉***********/
  189. void Right_turn(void)
  190. {
  191. /***右側停轉*/
  192. //     Pwm_Left = 900;
  193. //     Pwm_Right = 900;
  194.   

  195.     TIM3_Configuration(700,700);
  196.    
  197.   GPIO_ResetBits(GPIOC,GPIO_Pin_8);//0 //左電機轉動
  198.     GPIO_SetBits(GPIOC,GPIO_Pin_9);//1
  199.    
  200.   GPIO_SetBits(GPIOC,GPIO_Pin_6); //右電機停止
  201.     GPIO_SetBits(GPIOC,GPIO_Pin_7);
  202.    
  203. //    GPIO_SetBits(GPIOB,GPIO_Pin_2);//1
  204. //    GPIO_ResetBits(GPIOB,GPIO_Pin_4);//0
  205. }
  206. /*************停止**********/
  207. void Stop(void)
  208. {     
  209.          /*左側輪子停轉*/
  210. //                Pwm_Left = 0;
  211. //                Pwm_Right = 0;
  212.                
  213.                 TIM3_Configuration(0,0);
  214.    
  215.       
  216.                 GPIO_SetBits(GPIOC,GPIO_Pin_8);
  217.                 GPIO_SetBits(GPIOC,GPIO_Pin_9);
  218.                
  219.                 GPIO_SetBits(GPIOC,GPIO_Pin_6);
  220.                 GPIO_SetBits(GPIOC,GPIO_Pin_7);

  221. }
  222. /*************循跡前進***********/
  223. void Xunji_Forward_run(void)
  224. {
  225.      /*左側輪子停轉*/
  226. //                Pwm_Left = 900;
  227. //                Pwm_Right = 900;
  228.                
  229.                 TIM3_Configuration(400,400);
  230.    
  231.                
  232.                 GPIO_ResetBits(GPIOC,GPIO_Pin_8);//0
  233.                 GPIO_SetBits(GPIOC,GPIO_Pin_9);//1
  234.    
  235.                
  236.                 GPIO_ResetBits(GPIOC,GPIO_Pin_6);//0
  237.                 GPIO_SetBits(GPIOC,GPIO_Pin_7);//1
  238.         
  239. }

  240. /*************循跡左轉***********/
  241. void Xunji_Left_turn(void)
  242. {
  243.    /*左側輪子停轉*/
  244. //     Pwm_Left = 900;
  245. //     Pwm_Right = 900;
  246.   
  247.     TIM3_Configuration(400,400);
  248.   
  249. //    GPIO_ResetBits(GPIOB,GPIO_Pin_1);//0 //右電機轉動
  250. //    GPIO_SetBits(GPIOB,GPIO_Pin_0);//1

  251.    
  252.     GPIO_SetBits(GPIOC,GPIO_Pin_8); //左電機停止
  253.     GPIO_SetBits(GPIOC,GPIO_Pin_9);
  254.    
  255.   GPIO_ResetBits(GPIOC,GPIO_Pin_6);//0 //右電機轉動
  256.     GPIO_SetBits(GPIOC,GPIO_Pin_7);//1
  257. }

  258. /*************循跡右轉***********/
  259. void Xunji_Right_turn(void)
  260. {
  261. /***右側停轉*/
  262. //     Pwm_Left = 900;
  263. //     Pwm_Right = 900;
  264.   

  265.     TIM3_Configuration(400,400);
  266.    
  267.   GPIO_ResetBits(GPIOC,GPIO_Pin_8);//0 //左電機轉動
  268.     GPIO_SetBits(GPIOC,GPIO_Pin_9);//1
  269.    
  270.   GPIO_SetBits(GPIOC,GPIO_Pin_6); //右電機停止
  271.     GPIO_SetBits(GPIOC,GPIO_Pin_7);
  272.    
  273. //    GPIO_SetBits(GPIOB,GPIO_Pin_2);//1
  274. //    GPIO_ResetBits(GPIOB,GPIO_Pin_4);//0
  275. }
  276. /*************循跡停止***********/
  277. void Xunji_Stop(void)
  278. {     
  279.          /*左側輪子停轉*/
  280. //                Pwm_Left = 0;
  281. //                Pwm_Right = 0;
  282.                
  283.                 TIM3_Configuration(400,400);
  284.    
  285.       
  286.                 GPIO_SetBits(GPIOC,GPIO_Pin_8);
  287.                 GPIO_SetBits(GPIOC,GPIO_Pin_9);
  288.                
  289.                 GPIO_SetBits(GPIOC,GPIO_Pin_6);
  290.                 GPIO_SetBits(GPIOC,GPIO_Pin_7);

  291. }
  292. void  COMM(void) //方向函數
  293. {
  294.          Degree(20,1);
  295. //    TIM_SetCompare1(TIM2,11);
  296.          Delay_ms(700);
  297.          Average_Distance();
  298.          S2=averge_distance;
  299.         
  300.          Degree(150,1);
  301. //    TIM_SetCompare1(TIM2,4);
  302.          Delay_ms(700);
  303.          Average_Distance();
  304.          S4=averge_distance;
  305.         
  306.          Degree(85,1);
  307. //    TIM_SetCompare1(TIM2,8);
  308.          Delay_ms(700);
  309.          S1=averge_distance;
  310.          
  311.         if(S2<30||S4<30) //只要左右各有距離小于20CM小車后退
  312.         {      
  313.         Backward_run(); //后退  
  314.         Delay_ms(700);                    
  315.         }
  316.    
  317.     if(S2>S4)
  318.     {
  319.         Right_turn(); //車的左邊比車的右邊距離小,右轉
  320.         Delay_ms(700);   
  321.     }
  322.     else
  323.     {
  324.         Left_turn(); //車的左邊比車的右邊距離大,左轉
  325.         Delay_ms(700);   
  326.     }
  327.      }

  328. /***************************************************
  329. * 函數名         : Auto_run
  330. * 描述           : 避障程序
  331. * 輸入           : 無
  332. * 輸出           : 無
  333. * 返回           : 無
  334. ****************************************************/
  335. void Auto_run(void)                                       //檢測障礙
  336. {        

  337.     Average_Distance();

  338.     if(averge_distance<30)
  339.     {
  340.          Stop();//小車停止
  341.          COMM(); //方向函數
  342.      }
  343.    
  344.      else
  345.     {
  346.         if(averge_distance>30)
  347.       {
  348.       Forward_run();
  349.             

  350.       }
  351.     }
  352. }

  353. /***************************************************
  354. * 函數名         : 循跡程序
  355. * 輸入           : 無
  356. * 輸出           : 無
  357. * 返回           : 無
  358. ****************************************************/
  359. void Xunji_run(void)                                       //檢測障礙
  360. {        
  361.      //四路尋跡傳感器有信號(白線)為0 沒有信號(黑線)為1
  362.            if(Out1==0 && Out2==0&&Out3==0 &&Out4==0 )
  363.              {
  364.                  Xunji_Forward_run();//實現小車的前進
  365.               }
  366.               else if(Out1==1 && Out2==0&&Out3==0 &&Out4==1 )
  367.              {
  368.                  Xunji_Stop();//實現小車的停止
  369.               }
  370.               else if(Out1==0 && Out2==1&&Out3==1 &&Out4==0 )
  371.              {
  372.                  Xunji_Forward_run();//實現小車的前進   
  373.               }
  374.                 else if(Out1==0 && Out2==1&&Out3==0 &&Out4==0 )
  375.              {
  376. //                 TurnRight();//實現小車的左轉
  377.                  Xunji_Left_turn();
  378.               }
  379.               else if(Out1==1 && Out2==0&&Out3==0 &&Out4==0 )
  380.              {
  381. //                 TurnRight();//實現小車的左轉
  382.                  Xunji_Left_turn();
  383.               }
  384.              else if(Out1==0 && Out2==0&&Out3==1 &&Out4==1 )
  385.              {
  386.                  Xunji_Right_turn();//實現小車的前進
  387.               }     
  388.                else if(Out1==0 && Out2==1&&Out3==1 &&Out4==1 )
  389.              {
  390. //                 TurnRight();//實現小車的左轉
  391.                   Xunji_Left_turn();
  392.               }     
  393.               else if(Out1==0 && Out2==0&&Out3==0 &&Out4==1 )
  394.              {
  395. //                 TurnLeft();//實現小車的右轉
  396.                  Xunji_Right_turn();//實現小車的左轉
  397.               }     
  398.                else if(Out1==0 && Out2==0&&Out3==1 &&Out4==0     )
  399.              {
  400. //                 TurnLeft();//實現小車的右轉
  401.                  Xunji_Right_turn();//實現小車的左轉
  402.                  
  403.               }
  404.               else if(Out1==1 && Out2==1&&Out3==0 &&Out4==0     )
  405.              {
  406. //                 RunToForward();//實現小車的前進
  407.                  Xunji_Left_turn();
  408.               }
  409.               else if(Out1==1 && Out2==1&&Out3==1 &&Out4==0     )
  410.              {      
  411. //                 TurnLeft();//實現小車的右轉
  412.                   Xunji_Right_turn();//實現小車的左轉
  413.               }
  414.               else
  415.                  {
  416.                      Xunji_Stop();//實現小車的停止
  417.                   }


  418. }
復制代碼






分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:526143 發表于 2019-5-19 16:38 | 只看該作者
沒有大佬解答一下嗎?
回復

使用道具 舉報

板凳
ID:563677 發表于 2019-6-25 13:53 來自手機 | 只看該作者
6,7,8,9吧
回復

使用道具 舉報

地板
ID:839922 發表于 2021-4-1 19:38 | 只看該作者
根據主板原理圖看接口
回復

使用道具 舉報

5#
ID:996669 發表于 2023-3-22 20:26 | 只看該作者
請問你有完整的STM32尋跡小車程序嗎?
回復

使用道具 舉報

6#
ID:844772 發表于 2023-3-23 08:38 | 只看該作者
單單從這兩句看
//剛開始停止電機轉動
    GPIO_SetBits(GPIOC,GPIO_Pin_8|GPIO_Pin_9);
顯然是讓 PC8和9 置高,但前邊又沒給GPIOC 初始化,所以不是你迷惑,是程序問題。
回復

使用道具 舉報

7#
ID:1066823 發表于 2023-3-23 09:27 | 只看該作者
既然是pin  那就是唯一,看原理圖或芯片手冊
回復

使用道具 舉報

8#
ID:646520 發表于 2023-3-23 14:36 | 只看該作者
19年的帖子....,這是哪個大神找出來的
回復

使用道具 舉報

9#
ID:139866 發表于 2023-3-23 16:01 | 只看該作者
這程序讓我想起了我以前的同事,不光代碼跟注釋對不上號,變量的命名也跟操作的外設對不上號,配置跟思路那必然也是沒對上號。我接手他的程序簡直就像到了地獄

你這程序從結果上來看,開了GPIOB和GPIOC的時鐘,后面的TIM3函數里配置了GPIOA的時鐘,配置有效的是PA6,PA7,PB0,PB1PB3PB4,PC6,PC7,如果程序用的時候TIM_GPIO這個函數放在 GPIO_Configuration前面的話,PA8,PA9也是能用的

一句話,爛程序,不該出現在這個世界

謝謝樓主,讓我回憶起了地獄
回復

使用道具 舉報

10#
ID:996669 發表于 2023-4-2 21:52 | 只看該作者
請問可以發一下電機驅動的代碼嗎
回復

使用道具 舉報

11#
ID:291668 發表于 2023-4-2 22:34 | 只看該作者
哈哈,這一看就是用別的程序改的。注釋沒有更改。根據GPIO 時鐘使能,應該是用C口的6、7、8、9來控制的。
回復

使用道具 舉報

12#
ID:894420 發表于 2023-4-3 14:49 | 只看該作者
應該是用C口的6、7、8、9
回復

使用道具 舉報

13#
ID:1069659 發表于 2023-4-3 16:05 | 只看該作者
程序從結果上來看,開了GPIOB和GPIOC的時鐘,后面的TIM3函數里配置了GPIOA的時鐘,配置有效的是PA6,PA7,PB0,PB1PB3PB4,PC6,PC7,如果程序用的時候TIM_GPIO這個函數放在 GPIO_Configuration前面的話,PA8,PA9也是能用的
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人免费视频网站 | 国产欧美日韩精品一区二区三区 | 日韩国产精品一区二区三区 | www免费视频 | 国产成人福利在线观看 | 国产精品日日夜夜 | 亚洲精品日韩综合观看成人91 | 日日操操操 | 精品久久久精品 | 夜夜爽99久久国产综合精品女不卡 | www.日日操 | 美女毛片| 国产激情一区二区三区 | 蜜桃精品视频在线 | 亚洲欧美在线视频 | 国产xxxx岁13xxxxhd | 欧美 日韩精品 | 国产欧美精品区一区二区三区 | 亚洲性视频 | 亚洲精品在线视频 | 欧美一级在线免费 | 国产午夜视频 | 久久亚洲视频网 | 久久大陆| 国产精品美女一区二区三区 | 婷婷激情综合 | 亚洲一区二区在线 | 一级毛片在线播放 | 国产精品成人一区二区三区夜夜夜 | 久久久久久久久久久爱 | www国产成人 | 91私密视频 | 天堂资源最新在线 | 国产精品久久久久久久久图文区 | 久久九九色 | 中文在线视频观看 | 男人的天堂一级片 | 日本aa毛片a级毛片免费观看 | 久久精品影视 | 美女视频一区二区三区 | 日韩一区二区免费视频 |