久久精品国产精品国产精品污,男人扒开添女人下部免费视频,一级国产69式性姿势免费视频,夜鲁夜鲁很鲁在线视频 视频,欧美丰满少妇一区二区三区,国产偷国产偷亚洲高清人乐享,中文 在线 日韩 亚洲 欧美,熟妇人妻无乱码中文字幕真矢织江,一区二区三区人妻制服国产

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

stm32项目平衡车详解(stm32F407)下

發布時間:2023/12/8 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 stm32项目平衡车详解(stm32F407)下 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

stm32項目平衡車詳解(stm32F407)下

本文章學習借鑒于創客學院團隊,以表感謝。教學視頻

B站學習地址

HC-SRO4 超聲波測距避障功能開發
TSL1401 CCD攝像頭實現小車巡線功能
小車通信功能分析及ESP32模塊介紹
oled 顯示置入屏幕顯示小車狀態


文章目錄

  • stm32項目平衡車詳解(stm32F407)下
  • 前言
  • 一、HC-SRO4 超聲波測距避障功能開發
    • HC-SRO4超聲波測距模塊?
    • 超聲波測距避障功能開發
    • 避障模式開發
  • 二、TSL1401 CCD攝像頭實現小車巡線功能
    • TSL1401 CCD攝像頭?
    • 巡線小車功能開發(編寫程序)
        • TSL1401 示例代碼如下:
        • 項目工程開始
  • 三、遙控小車
    • 藍牙控制
    • esp32 項目工程的使用
    • esp32 使用例程模板
    • 通訊協議的制定
    • 通訊協議定制庫函數文件(范例)
    • oled 顯示置入屏幕顯示小車狀態
        • 開始配置工程
  • 四、stm32項目平衡車項目下載源碼


前言

前面我們已經實現了平衡小車的直立環,平衡環,轉向環,下面我們將實現小車平衡小車蔽障與巡線功能的開發。如下如所示:


一、HC-SRO4 超聲波測距避障功能開發

HC-SRO4超聲波測距模塊?



HC- SR04是一種超聲波接近傳感器,可以告訴您物體是否在它前面,并且還提供傳感器和物體之間的距離。這些傳感能力使其特別適用于需要知道遠離物體或障礙物的機器人,例如墻壁或不應撞擊的家具。

點擊查看,HC-SR04超聲波傳感器原理

超聲波測距避障功能開發

cube 搭建工程項目

下面給中斷使能


啟動定時器TIM7 去計時

避障模式開發

避障模式原理就是通過超聲波加測距離,通過轉向來躲避障礙物。所以我們會用轉向環來控制小車轉向。

//啟動超聲波,檢測距離

//啟動超聲波檢測函數void HC_SRC04_Start(void) {HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0, GPIO_PIN_SET); //設置高電平啟動delay_us(20); HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0, GPIO_PIN_RESET); //設置高低平啟動 }

調用定時器中毒阿女函數進行計數,利用聲音傳播速度和接收時間測算距離

/*** @brief This function handles TIM7 global interrupt.*/ void TIM7_IRQHandler(void) {/* USER CODE BEGIN TIM7_IRQn 0 *//* USER CODE END TIM7_IRQn 0 */HAL_TIM_IRQHandler(&htim7);/* USER CODE BEGIN TIM7_IRQn 1 *//* USER CODE END TIM7_IRQn 1 */ }/* USER CODE BEGIN 1 */ uint8_t ECHO_IRQ_FLAG = 0;uint8_t time_cnt = 0; //參數二,溢出次數 static uint8_t last_distence =0;void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {int time = 0;if(GPIO_Pin == GPIO_PIN_1){if(ECHO_IRQ_FLAG == 0) //上升沿中斷{ECHO_IRQ_FLAG=1; HAL_TIM_Base_Start_IT(&htim7); //開啟定時器,開始計時}else{ECHO_IRQ_FLAG = 0; //下降沿中斷HAL_TIM_Base_Stop_IT(&htim7);//關閉定時器,計時結束time = time_cnt*1000 + TIM7->CNT / 2; //統計聲(單次)音返回時間Distence = 340*100* time /1000000; //微妙轉化為秒if(Distence == 0) Distence = last_distence;else last_distence = Distence;}}}

配合pid 控制函數,使用超聲波測距的距離,進行避障,小車達到避障距離就開始轉彎避障,(避障距離建議超過小車直徑即可)

int Balance_Pwm,Vertical_Pwm,Trun_Pwm; int Motor1,Motor2; int Encoder_left,Encoder_right; float Movement = 0; //目標速度 int CCD; //目標角度int FS_MODE; //0 遙控模式1,避障模式 2巡線模式 int Distence; //檢測小車與障礙物的距離//PID控制任務 void Car_Task_100HZ(void) {//啟動超聲波檢測模式HC_SRC04_Start();//1、確定直立環的PWMBalance_Pwm = Vertical_Ring_PD(OutMpu.pitch,OutMpu.gyro_x); //*形參:(float Angle):x軸的角度/(float Gyro):x軸的角速度//2、確定速度環的PWMEncoder_left = Read_Encoder(1); //左輪Encoder_right = -Read_Encoder(2); //右輪Vertical_Pwm = Vertical_speed_PI(Encoder_left,Encoder_right,OutMpu.pitch,Movement);//3、確定方向環的PWMif(FS_MODE == 0) //遙控模式Trun_Pwm = Vertical_turn_PD(CCD,OutMpu.yaw);else if(FS_MODE == 1) //避障模式{if(Distence < 20) //直線距離在20cm 直接轉向 20度Trun_Pwm = Vertical_turn_PD(20,OutMpu.yaw); //直接轉向 20度elseTrun_Pwm = 0; //直行}else if(FS_MODE == 2) //巡線模式{}//4、確定最終電機的左右pwm Motor1 = Balance_Pwm+Vertical_Pwm+Trun_Pwm;Motor2 = Balance_Pwm+Vertical_Pwm-Trun_Pwm;PWM_Limiting((int) Motor1,(int) Motor2);//4、設置電機Set_PWM(Motor1,Motor2); //*形參;(int motor1):電機1對應的PWM值/(int motor2):電機2對應的PWM值}}

二、TSL1401 CCD攝像頭實現小車巡線功能

巡線就是小車按照軌跡進行一定的運動,我們通過設計頭模塊進項軌跡實施采集分析調整車輛運動方向。

TSL1401 CCD攝像頭?

參考案例 STM32版CCD線性攝像頭尋線尋跡小車



CCD采集到外部像素,感應光線的強度通過AD 輸出


不同的光線強度的灰度值是不一樣的,通過信號傳輸給控制器,控制器根據灰度值來確定我們的條件。

上圖所從左到右,由亮變暗在變亮,中間黑色區域是最暗大的,我們使用線性 就是橫排采集一條線,判斷內容。


上圖看到SI由采集的到最后AD輸出的電壓值。

巡線小車功能開發(編寫程序)

電路圖如下:



CCD查看使用教程

TSL1401 示例代碼如下:

/********************************************************************************* File Name : main.c* Description : Main program body******************************************************************************** This notice applies to any and all portions of this file* that are not between comment pairs USER CODE BEGIN and* USER CODE END. Other portions of this file, whether * inserted by the user or by software development tools* are owned by their respective copyright owners.** COPYRIGHT(c) 2018 STMicroelectronics** Redistribution and use in source and binary forms, with or without modification,* are permitted provided that the following conditions are met:* 1. Redistributions of source code must retain the above copyright notice,* this list of conditions and the following disclaimer.* 2. Redistributions in binary form must reproduce the above copyright notice,* this list of conditions and the following disclaimer in the documentation* and/or other materials provided with the distribution.* 3. Neither the name of STMicroelectronics nor the names of its contributors* may be used to endorse or promote products derived from this software* without specific prior written permission.** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.********************************************************************************//* Includes ------------------------------------------------------------------*/ #include "main.h" #include "stm32f0xx_hal.h" #include "adc.h" #include "usart.h" #include "gpio.h"/* USER CODE BEGIN Includes */ #include "stdio.h" #include <math.h>#define CCD_MIDDLE 0 #define CCD_THRESHOLD 1 #define CCD_LEFT 2 #define CCD_RIGHT 3#define TSL_CLK_H HAL_GPIO_WritePin(GPIOA,GPIO_PIN_6,GPIO_PIN_SET) #define TSL_CLK_L HAL_GPIO_WritePin(GPIOA,GPIO_PIN_6,GPIO_PIN_RESET)#define TSL_SI_H HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,GPIO_PIN_SET) #define TSL_SI_L HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,GPIO_PIN_RESET) #ifdef __GNUC__ #define PUTCHAR_PROTOTYPE int __io_putchar(int ch) #else #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f) #endif PUTCHAR_PROTOTYPE { HAL_UART_Transmit(&huart1 , (uint8_t *)&ch, 1, 0xFFFF); return ch; } /* USER CODE END Includes *//* Private variables ---------------------------------------------------------*//* USER CODE BEGIN PV */ /* Private variables ---------------------------------------------------------*//* USER CODE END PV *//* Private function prototypes -----------------------------------------------*/ void SystemClock_Config(void);/* USER CODE BEGIN PFP */ /* Private function prototypes -----------------------------------------------*//* USER CODE END PFP *//* USER CODE BEGIN 0 */ uint16_t ADV[128]={0}; uint8_t i;struct tCCD {uint16_t middle; //中間位置值uint16_t threshold; //像素ad閾值uint16_t left; //左跳變的位置uint16_t right; //右跳變的位置 };struct tCCD CCD; /************************************************************************************************** *函數名:abs() *功能:將數進行絕對值處理 *形參:number 需要進行絕對值處理的數 *返回值:經過處理后絕對值 **************************************************************************************************/ int abs (int number) {return( number>=0 ? number : -number ); } /************************************************************************************************** *函數名:Dly_us() *功能:延時函數,用來調整CCD曝光 *形參:無 *返回值:無 ***************************************************************************************************/ void Dly_us(void) {int ii; for(ii=0;ii<220;ii++); } /************************************************************************************************** *函數名:Get_Adc() *功能:得到CCD數據 *形參:無 *返回值:讀取到的電壓值 ***************************************************************************************************/ uint16_t Get_Adc(void) {HAL_ADC_Start(&hadc);HAL_ADC_PollForConversion(&hadc, 50);if(HAL_IS_BIT_SET(HAL_ADC_GetState(&hadc), HAL_ADC_STATE_REG_EOC))return HAL_ADC_GetValue(&hadc);elsewhile(1); } /*************************************************************************************************** *函數名:RD_TSL() *功能:讀取CCD原始數據 *形參:無 *返回值:無 ****************************************************************************************************/void RD_TSL(void) {uint8_t i=0,tslp=0;TSL_CLK_H;TSL_SI_L;Dly_us();TSL_SI_H;TSL_CLK_L;Dly_us();TSL_CLK_H;TSL_SI_L;Dly_us();for(i=0;i<128;i++){TSL_CLK_L;Dly_us();ADV[tslp]=(Get_Adc())>>4;++tslp;TSL_CLK_H;Dly_us();} }/*************************************************************************************************************************函數名:Find_Middle_CCD()*功能:讀取CCD中值*形參:無*返回值:CCD中值位置*************************************************************************************************************************/uint8_t Find_CCD_DATA(void){static uint8_t i,j;//static uint8_t Last_Middle_CCD;uint8_t Middle_CCD_Value;static uint16_t value1_max,value1_min;value1_max=ADV[0];//讀取最大值for(i=5;i<123;i++){if(value1_max<=ADV[i])value1_max=ADV[i];}value1_min=ADV[0]; //得到最小值for(i=5;i<123;i++){if(value1_min>=ADV[i])value1_min=ADV[i];} //計算閾值CCD.threshold=(value1_max+value1_min)/2;//計算左跳變值for(i = 5;i<118; i++){if(ADV[i]>CCD.threshold&&ADV[i+1]>CCD.threshold&&ADV[i+2]>CCD.threshold&&ADV[i+3]<CCD.threshold&&ADV[i+4]<CCD.threshold&&ADV[i+5]<CCD.threshold){ CCD.left=i;break; }}//計算右跳變值for(j = 118;j>5; j--){if(ADV[j]<CCD.threshold&&ADV[j+1]<CCD.threshold&&ADV[j+2]<CCD.threshold&&ADV[j+3]>CCD.threshold&&ADV[j+4]>CCD.threshold&&ADV[j+5]>CCD.threshold){ CCD.right=j;break; }}//計算中值CCD.middle =(CCD.right+CCD.left)/2; // if(abs(Middle_CCD_Value-Last_Middle_CCD)>70){ // Middle_CCD_Value=Last_Middle_CCD; // Last_Middle_CCD=Middle_CCD_Value; // }return Middle_CCD_Value;}/***************************************************************************************************************************/void ANO_Send_Data(void) {HAL_UART_Transmit(&huart1,(uint8_t *)&CCD,sizeof(CCD),0xFFFF); }/* USER CODE END 0 */int main(void) {/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration----------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init *//* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_ADC_Init();MX_USART1_UART_Init();/* USER CODE BEGIN 2 *//* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){/* USER CODE END WHILE *///每5ms發送一幀數據HAL_Delay(5);//讀取CCD原始數據,讀取128個像素,RD_TSL();//對CCD數據進行處理(求閾值、中值、左右跳變值)Find_CCD_DATA();//通過串口將封裝好的CCD數據向外發送ANO_Send_Data();/* USER CODE BEGIN 3 */}/* USER CODE END 3 */}/** System Clock Configuration */ void SystemClock_Config(void) {RCC_OscInitTypeDef RCC_OscInitStruct;RCC_ClkInitTypeDef RCC_ClkInitStruct;RCC_PeriphCLKInitTypeDef PeriphClkInit;/**Initializes the CPU, AHB and APB busses clocks */RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_HSI14;RCC_OscInitStruct.HSIState = RCC_HSI_ON;RCC_OscInitStruct.HSI14State = RCC_HSI14_ON;RCC_OscInitStruct.HSICalibrationValue = 16;RCC_OscInitStruct.HSI14CalibrationValue = 16;RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL12;RCC_OscInitStruct.PLL.PREDIV = RCC_PREDIV_DIV1;if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK){_Error_Handler(__FILE__, __LINE__);}/**Initializes the CPU, AHB and APB busses clocks */RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK|RCC_CLOCKTYPE_PCLK1;RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK){_Error_Handler(__FILE__, __LINE__);}PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART1;PeriphClkInit.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK1;if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK){_Error_Handler(__FILE__, __LINE__);}/**Configure the Systick interrupt time */HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);/**Configure the Systick */HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);/* SysTick_IRQn interrupt configuration */HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0); }/* USER CODE BEGIN 4 *//* USER CODE END 4 *//*** @brief This function is executed in case of error occurrence.* @param None* @retval None*/ void _Error_Handler(char * file, int line) {/* USER CODE BEGIN Error_Handler_Debug *//* User can add his own implementation to report the HAL error return state */while(1) {}/* USER CODE END Error_Handler_Debug */ }#ifdef USE_FULL_ASSERT/*** @brief Reports the name of the source file and the source line number* where the assert_param error has occurred.* @param file: pointer to the source file name* @param line: assert_param error line source number* @retval None*/ void assert_failed(uint8_t* file, uint32_t line) {/* USER CODE BEGIN 6 *//* User can add his own implementation to report the file name and line number,ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) *//* USER CODE END 6 */}#endif/*** @}*/ /*** @} */ /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

項目工程開始

工程CCD工程 ,將工程下載到051 開發板進行數據采集發送

F407,串口3 使能,開啟中斷

開啟DMA 接受數據

導出工程即可打開工程文件
定義ccd

main 函數使用

//啟動CCD數據接受
HAL_UART_Receive_DMA(&huart3, (uint8_t)&CCD, sizeof(CCD));*

/*** @brief The application entry point.* @retval int*/ int main(void) {/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init *//* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_DMA_Init();MX_USART1_UART_Init();MX_TIM1_Init();MX_TIM2_Init();MX_TIM4_Init();MX_TIM5_Init();MX_TIM7_Init();MX_USART3_UART_Init();/* USER CODE BEGIN 2 */printf("平衡小車開發項目\n");//啟動PWMHAL_TIM_PWM_Start(&htim5, TIM_CHANNEL_3);HAL_TIM_PWM_Start(&htim4, TIM_CHANNEL_1);//啟動編碼器HAL_TIM_Encoder_Start(&htim1, TIM_CHANNEL_ALL);HAL_TIM_Encoder_Start(&htim2, TIM_CHANNEL_ALL);//啟動CCD數據接受HAL_UART_Receive_DMA(&huart3, (uint8_t*)&CCD, sizeof(CCD));/* USER CODE END 2 *//* Call init function for freertos objects (in freertos.c) */MX_FREERTOS_Init();/* Start scheduler */osKernelStart();/* We should never get here as control is now taken by the scheduler *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}/* USER CODE END 3 */ }

設置中斷檢測初始化128像素后再次重新接受

下面可以打印了

通過CCD 獲取攝像頭捕捉的中間值得差值在64以內就可以讓小車通過轉彎來重新定義方向和位置
Trun_Pwm = Vertical_turn_PD(CCD.middle,OutMpu.yaw); //直接轉向 20度

struct tCCD
{
uint16_t middle; //中間位置值
uint16_t threshold; //像素ad閾值
uint16_t left; //左跳變的位置
uint16_t right; //右跳變的位置
};

三、遙控小車

藍牙控制

esp32 項目工程的使用


使用過esp8266 的就了解過esp32 是 8266 升級款。
前期有幾期是關于Node mcu esp8266 物聯網模塊的

工作原理,小車F407 通過esp32 聯網,和手機上位機軟件進行數據交互請求,esp32 通過串口6 發送小車指令,來控制小車,前后,轉向。

打開工程,使能串口6,開啟中斷

使用keil5 打開工程,配置串口接受esp32數據
FreeRTOS 任務里面配置數據的接收,其中使用到了隊列管理xQueueCreate ,引入范例文件esp32 到工程,

void StartTask_Interaction(void const * argument) {/* USER CODE BEGIN StartTask_Interaction */printf("交互進程運行\n");Message_Queue = xQueueCreate (Message_Q_NUM,Message_Q_length);//創建一個隊列HAL_UART_Receive_DMA(&huart6, Uart6_Rcv.RcvBuf, 255);設置串口接收__HAL_UART_ENABLE_IT(&huart6,UART_IT_IDLE); //使能中斷ESP32_Init();/* Infinite loop */for(;;){ESP32_Data_Rcv(); //接受數據Car_Task_Interaction(); //交互進程osDelay(1);}/* USER CODE END StartTask_Interaction */ }

esp32 使用例程模板

方法函數的介紹
ESP32_Init(); esp32 的初始化
ESP32_Send_Data() esp32 數據的發送
ESP32_Cmd_Rcv()命令的接受
ESP32_Data_Rcv()數據的接受
ESPSend_Cmd() 命令的發送
uart_data_send() 串口的發送

esp32.c

#include "esp32.h" #include "usart.h" #include <stdarg.h> #include <string.h> #include "connect.h" #include "FreeRTOS.h" #include "task.h" #include "cmsis_os.h"uint8_t NET_MODE = 0; //0、藍牙模式 1、wifi模式 默認藍牙 uint8_t WIFI_CONNECT_FLAG = 0; //WIFI連接標志位 uint8_t BLE_CONNECT_FLAG = 0; //BLE連接標志位tEsp32_RcvBuf Esp32Rcv; //ESP數據接收緩沖區tTimeDelay ESP32_TimeDelay;extern QueueHandle_t Message_Queue;#define AT_CWSAP_STRING "AT+CWSAP=\"FarsightESP32\",\"123456789\",5,3\r\n" #define AT_BLEADVDATA_STRING "AT+BLEADVDATA=\"0201060B09466172736967687420030302A0\"\r\n"volatile tATCmd ATCmds[20]= {//*CmdSend, *CmdRcv, TimeOut, CmdStatus, {NULL,NULL,0,NO_RCV},{"AT\r\n", "OK", 5000, NO_RCV, }, //檢測AT指令 {"AT+CIPAPMAC?\r\n", "CIPAPMAC", 2000, NO_RCV, }, //獲取MAC地址 {AT_CWSAP_STRING, "CWSAP" , 2000, NO_RCV, }, //建立MAC相關的AP名稱 {"AT+CWMODE=3\r\n", "OK" , 2000, NO_RCV, }, //設置WIFI模式AP+Station{"AT+CIPMUX=1\r\n", "OK" , 2000, NO_RCV, }, //設置多連接{"AT+CIPSERVER=1\r\n", "OK" , 2000, NO_RCV, }, //初始化TCP服務器 默認IP(192.168.4.1)默認端口號(333){"AT+CIPSTO=0\r\n", "OK" , 2000, NO_RCV, }, //設置TCP連接時間{"AT+CIPSEND=0\r\n", "OK" , 500, NO_RCV, }, //TCP發送數據{"AT+RST\r\n", "ready" , 1000, NO_RCV, }, //重啟AT指令:{"AT+BLEINIT=2\r\n", "OK" , 1000, NO_RCV, }, //初始化為 BLE server:{"AT+BLEADDR?\r\n", "BLEADDR" , 2000, NO_RCV, }, //查詢自身的 BLE 地址{AT_BLEADVDATA_STRING, "OK" , 2000, NO_RCV, }, //配置廣播數據包{"AT+BLEGATTSSRVCRE\r\n", "OK", 1000, NO_RCV, }, //創建服務:{"AT+BLEGATTSSRVSTART\r\n", "OK" , 3000, NO_RCV, }, //開啟服務 {"AT+BLEADVSTART\r\n", "OK" , 1000, NO_RCV, }, //開始廣播{"AT+BLEGATTSNTFY\r\n" , ">" , 500, NO_RCV, }, //服務器發送數據{"CMDSTR_NOUSE", "OK" , 2000, NO_RCV, }, };void uart_data_send(uint8_t *fmt, uint16_t len) {taskENTER_CRITICAL(); HAL_UART_Transmit(&huart6, (uint8_t *)fmt, len,100);taskEXIT_CRITICAL(); }tCmdStatus ESPSend_Cmd(tATCmdNum ATCmdNum) { uint8_t len;//清空接收緩存以及接收狀態ATCmds[ATCmdNum].CmdStatus = NO_RCV;//發送命令len = strlen(ATCmds[ATCmdNum].CmdSend);uart_data_send((uint8_t *)ATCmds[ATCmdNum].CmdSend, len);HAL_UART_Transmit(&huart1,(uint8_t *)ATCmds[ATCmdNum].CmdSend, len,100);//打開超時定時器SetTime(&ESP32_TimeDelay, ATCmds[ATCmdNum].TimeOut);while(ATCmds[ATCmdNum].CmdStatus != RCV_SUCCESS){ESP32_Cmd_Rcv(ATCmdNum);if(ATCmds[ATCmdNum].CmdStatus == RCV_TIMEOUT)return RCV_TIMEOUT;}return RCV_SUCCESS; }/*發送數據函數*/ tCmdStatus ESP32_Send_Data(uint8_t *SendBuf,uint8_t len) {uint8_t buf[30] = {0};tATCmdNum ATCmdNum;if(! (BLE_CONNECT_FLAG || WIFI_CONNECT_FLAG)) //未連接狀態不能發送數據{DBG("未連接設備\n");return NO_CONNECT;} if(NET_MODE == BLE_MODE) //藍牙模式{sprintf((char *)buf,"AT+BLEGATTSNTFY=%d,%d,%d,%d\r\n",0,1,2,len);ATCmdNum = AT_BLEGATTSNTFY; }else //WIFI模式{sprintf((char *)buf,"AT+CIPSEND=%d,%d\r\n",0,len);ATCmdNum = AT_CIPSEND;}uart_data_send(buf,strlen((char *)buf)); //發送命令//打開超時定時器ATCmds[ATCmdNum].CmdStatus = NO_RCV; //清接收狀態SetTime(&ESP32_TimeDelay, ATCmds[ATCmdNum].TimeOut);while(ATCmds[ATCmdNum].CmdStatus != RCV_SUCCESS){ ESP32_Cmd_Rcv(ATCmdNum);if(ATCmds[ATCmdNum].CmdStatus == RCV_TIMEOUT)return RCV_TIMEOUT;}uart_data_send( SendBuf,len); //發送數據DBG("send data ok\n");return RCV_SUCCESS;}void ESP32_Cmd_Rcv(tATCmdNum ATCmdNum) {memset(&Esp32Rcv,0,sizeof(Esp32Rcv));if(xQueueReceive(Message_Queue, &Esp32Rcv,0 )){DBG("%s", Esp32Rcv.RcvBuf);//接收處理命令if(strstr((const char*)Esp32Rcv.RcvBuf,ATCmds[ATCmdNum].CmdRcv) != NULL){ATCmds[ATCmdNum].CmdStatus = RCV_SUCCESS; } //打開接收指示燈//SetLedRun(LED_RX);}else{if(CompareTime(&ESP32_TimeDelay)){ATCmds[ATCmdNum].CmdStatus = RCV_TIMEOUT;}} }void ESP32_Data_Rcv(void) {memset(&Esp32Rcv,0,sizeof(Esp32Rcv));if(xQueueReceive(Message_Queue, &Esp32Rcv,0 )){//接收處理數據(保護客戶端發來的數據,還有其他調試數據) DBG("%s", Esp32Rcv.RcvBuf);if(NET_MODE == BLE_MODE) //藍牙模式{if(strstr((char *)(Esp32Rcv.RcvBuf),"WRITE") != NULL ) //收到客戶端數據{DBG("收到上位機數據\n");BLE_CONNECT_FLAG = 1; //對方打開讀寫特征值時,置連接標志//提取處理數據;EP32_RcvData_Extract(Esp32Rcv.RcvBuf,Esp32Rcv.DataLen); return ; }if(strstr((char *)(Esp32Rcv.RcvBuf),"BLEDISCONN") != NULL) //客戶端斷開連接{DBG("藍牙斷開連接,重新廣播\n"); BLE_CONNECT_FLAG = 0; //清除連接標志位//重新廣播ESPSend_Cmd(AT_BLEADVDATA);ESPSend_Cmd(AT_BLEADVSTART);}}else //WIFI模式{if((!WIFI_CONNECT_FLAG) && (strstr((char *)(Esp32Rcv.RcvBuf),"CONNECT")!=NULL )) //收到客戶端數據{DBG("WIFI已連接\n"); WIFI_CONNECT_FLAG = 1; //置連接標志位}if(strstr((char *)(Esp32Rcv.RcvBuf),"+IPD") != NULL ) //收到客戶端數據{DBG("WIFI收到上位機數據\n"); //提取并處理數據;EP32_RcvData_Extract(Esp32Rcv.RcvBuf,Esp32Rcv.DataLen); return ; } if(strstr((char *)(Esp32Rcv.RcvBuf),"CLOSED") != NULL) //客戶端斷開連接{DBG("WIFI斷開連接\n"); WIFI_CONNECT_FLAG = 0; //清除連接標志位} }} }void ESP32_Init(void) {tATCmdNum i = AT_IDIE;if(NET_MODE == BLE_MODE) //藍牙模式初始化{for(i = AT_BLEINIT; i<=AT_BLEADVSTART ; i++){if( ESPSend_Cmd(i) != RCV_SUCCESS){ DBG("PES32 Init failed\n");return ;}}}else //WIFI模式初始化{for(i = AT; i<=AT_CIPSTO ; i++){ if( ESPSend_Cmd(i) != RCV_SUCCESS){DBG("PES32 Init failed\n");return ;}}DBG("PES32 Init Success\n");} }

esp32.h

#ifndef __ESP32_H #define __ESP32_H#include <stdint.h> #include <stdio.h> #include "delay.h"extern uint8_t Esp32_RcvBuf [255]; extern uint8_t Esp32_RBuffLen ; //#define DEBUG #ifdef DEBUG #define DBG(x...) printf(x) #else #define DBG(x...) #endif #define BLE_MODE 0 #define WIFI_MODE 1//AT命令序列號 typedef enum {AT_IDIE = 0,AT,AT_CIPAPMAC,AT_CWSAP,AT_CWMODE,AT_CIPMUX,AT_CIPSERVER,AT_CIPSTO,AT_CIPSEND,AT_RST,AT_BLEINIT,AT_BLEADDR,AT_BLEADVDATA,AT_BLEGATTSSRVCRE,AT_BLEGATTSSRVSTART,AT_BLEADVSTART,AT_BLEGATTSNTFY,CMDSTR_NOUSE,}tATCmdNum;//命令返回結果的狀態 typedef enum{NO_RCV = 0,RCV_SUCCESS,RCV_TIMEOUT,NO_CONNECT, }tCmdStatus;typedef struct{char *CmdSend; //發送的命令char *CmdRcv; //正確返回包含的字符串uint16_t TimeOut; //超時的時間tCmdStatus CmdStatus; //命令返回的狀態 }tATCmd; typedef struct {uint8_t DataLen;uint8_t RcvBuf [255]; }tEsp32_RcvBuf;extern tTimeDelay ESP32_TimeDelay; extern uint8_t Esp32_RcvBuf [255]; extern uint8_t ESP32_RCV_FLAG; extern uint8_t NET_MODE ; extern uint8_t WIFI_CONNECT_FLAG ; //WIFI連接標志位 extern uint8_t BLE_CONNECT_FLAG ; //BLE連接標志位void ESP32_Cmd_Rcv(tATCmdNum ATCmdNum); tCmdStatus ESP32_Send_Data(uint8_t *SendBuf,uint8_t len); void ESP32_Init(void); void ESP32_Data_Rcv(void);#endif /*__ESP32_H*/

通訊協議的制定

  • 引入范例文件connect 到工程,
  • 通訊協議定制庫函數文件(范例)

    connect.h

    #ifndef __CONNECT_H #define __CONNECT_H#include <stdint.h>//功能宏定義 #define MOVEMENT 0X01 //小車動作 #define READINFO 0X02 //讀取PID、模式、版本,恢復默認參數 #define SETMODE 0X03 //設置小車工作模式 #define WRITEPID1 0X10 //設置PID1 #define WRITEPID2 0X11 //設置PID2//小車動作宏定義 #define CAR_STOP 0X00 //停止 #define CAR_FORWARD 0X01 //前進 #define CAR_BACK 0X02 //后退 #define CAR_TURN_LEFT 0X03 //左轉 #define CAR_TURN_RIGHT 0X04 //右轉//小車工作模式定義 #define REMOTE_MODE 0X01 //遙控模式 #define LINE_TRACK_MODE 0X02 //巡線模式 #define AVOID_MODE 0X03 //蔽障模式//讀取小車信息定義 #define READ_ALL_ARG 0X00 //讀取所有的數據 #define READ_PID 0X01 //讀取PID數據 #define READ_WORK_MODE 0X02 //讀取當前工作模式 #define READ_VERINFO 0XA0 //讀取版本信息 #define RESTORE_DEFAULT_ARG 0XA1 //恢復默認參數//定義版本相關信息 #define Hardware_Type 10 #define Hardware_VER 10 #define Software_VER 10 #define Protocol_VER 10//定義小車上報數據的功能類型 #define CAR_VER 0x00 //版本信息 #define CAR_POSE 0x01 //姿態 #define CAR_SENSER 0x02 //傳感器原始數據 #define CAR_RCDATA 0x03 //小車接收到的遙控數據 #define CAR_POWER 0x04 //小車電量 #define CAR_MOTO 0x05 //電機轉速 #define CAR_SENSER2 0x06 //超聲波距離 #define CAR_MOD 0X07 //小車模式 #define CAR_PID_1 0x10 //PID1數據 #define CAR_PID_2 0x11 //PID2的數據 #define CAR_PID_3 0X12 //PID3的數據 #define CAR_CCD_SEN 0XF1 //CCD的數據 #define CAR_User_Waveform 0xA1 typedef struct {u8 send_check;u8 send_version;u8 send_status;u8 send_senser;u8 send_senser2;u8 send_pid1;u8 send_pid2;u8 send_pid3;u8 send_pid4;u8 send_pid5;u8 send_pid6;u8 send_rcdata;u8 send_offset;u8 send_motopwm;u8 send_power;u8 send_user;u8 send_speed;u8 send_location;}dt_flag_t;u8 EP32_RcvData_Extract(const uint8_t *Buff,int len); void Connect_Send_data(u8 CMD_Data);#endif

    connect.c

    #include "inv_mpu_user.h" #include "connect.h" #include "string.h" #include "stdio.h" #include "esp32.h" #include "car_task.h" #include "contrl.h"/************************************************************************************************************** *函數名:package_report_data() *功能:添加幀頭功能字及校驗位 *形參:(u8 fun):功能字/(u8*data):要發送的數據包/(u8 len):長度 *返回值:無 **************************************************************************************************************/ static void package_report_data(u8 fun,u8*data,u8 len) {static u8 send_buf[40]={0}; //添加static,給棧減小一點壓力u16 check_sum=0;u8 i;//封裝協議頭if(len>28)return; send_buf[0]=0XAA; send_buf[1]=0XAA; send_buf[2]=fun; send_buf[3]=len; //封裝數據for(i=0;i<len;i++)send_buf[4+i]=data[i];//計算校驗值for(i=0;i<len+4;i++) check_sum+=send_buf[i]; send_buf[len+4]=((check_sum)&0xFF);//發送數據ESP32_Send_Data(send_buf,len+5); }/********************************************************************************************************* *函數名:ANO_VER() *功能:發送版本信息 *形參:HardwareType,HardwareVER,SoftwareVER,ProtocolVER *返回值:無 *********************************************************************************************************/ static void ANO_VER(u8 HardwareType,u16 HardwareVER,u16 SoftwareVER,u16 ProtocolVER) {static u8 tbuf[7]; tbuf[0]=(HardwareType)&0XFF;tbuf[1]=((HardwareVER)>>8)&0XFF;tbuf[2]=(HardwareVER)&0XFF;tbuf[3]=((SoftwareVER)>>8)&0XFF;tbuf[4]=(SoftwareVER)&0XFF;tbuf[5]=((ProtocolVER)>>8)&0XFF;tbuf[6]=(ProtocolVER)&0XFF;package_report_data(CAR_VER,tbuf,7); }/************************************************************************************************************* *函數名:ANO_MOD() *功能:發送當前模式 *形參:data模式 *返回值:無 *************************************************************************************************************/ static void ANO_MOD(u8 data) {u8 tbuf[1];tbuf[0]=(data)&0XFF; package_report_data(CAR_POSE,tbuf,1); } /********************************************************************************************************** *函數名:ANO_CAR_POSE() *功能:發送姿態 *形參:angle(x俯仰,y橫滾,z偏航) *返回值:無 ***********************************************************************************************************/ static void ANO_CAR_POSE(void) {static u8 tbuf[6]; int32_t anglex,angley,anglez;anglex=((short)(OutMpu.pitch))*100;angley=((short)(OutMpu.roll))*100;anglez=((short)(OutMpu.yaw))*100;tbuf[0]=((anglex)>>8)&0XFF; tbuf[1]=(anglex)&0XFF;tbuf[2]=((angley)>>8)&0XFF;tbuf[3]=(angley)&0XFF;tbuf[4]=((anglez)>>8)&0XFF;tbuf[5]=(anglez)&0XFF;package_report_data(CAR_POSE,tbuf,6); }/************************************************************************************************************** *函數名:ANO_SENSER() *功能:發送傳感器原數據 *形參:acc:陀螺儀,gyro:加速度計,mag:電子羅盤 *返回值:無 **************************************************************************************************************/ static void ANO_SENSER(void) {static u8 tbuf[18]; u8 accx,accy,accz,gyrox,gyroy,gyroz,magx,magy,magz;accx=(u8)((OutMpu.acc_x)*100);accy=(u8)((OutMpu.acc_y)*100);accz=(u8)((OutMpu.acc_z)*100);gyrox=(u8)((OutMpu.gyro_x)*100);gyroy=(u8)((OutMpu.gyro_x)*100);gyroz=(u8)((OutMpu.gyro_x)*100);// magx=(u8)((mag->x)*100); // magy=(u8)((mag->y)*100); // magz=(u8)((mag->z)*100);tbuf[0]=((accx)>>8)&0XFF; tbuf[1]=(accx)&0XFF;tbuf[2]=((accy)>>8)&0XFF;tbuf[3]=(accy)&0XFF;tbuf[4]=((accz)>>8)&0XFF;tbuf[5]=(accz)&0XFF;tbuf[6]=((gyrox)>>8)&0XFF; tbuf[7]=(gyrox)&0XFF;tbuf[8]=((gyroy)>>8)&0XFF;tbuf[9]=(gyroy)&0XFF;tbuf[10]=((gyroz)>>8)&0XFF;tbuf[11]=(gyroz)&0XFF;tbuf[12]=((magx)>>8)&0XFF; tbuf[13]=(magx)&0XFF;tbuf[14]=((magy)>>8)&0XFF;tbuf[15]=(magy)&0XFF;tbuf[16]=((magz)>>8)&0XFF;tbuf[17]=(magz)&0XFF;package_report_data(CAR_SENSER,tbuf,18); } /************************************************************************************************************* *函數名:ANO_PID() *功能:發送PID數據 *形參:PID1,PID2,PID3的參數 *返回值:無 **************************************************************************************************************/ static void ANO_PID(u8 Function) {static u8 tbuf[18];int16_t PID1_P,PID1_I,PID1_D,PID2_P,PID2_I,PID2_D,PID3_P,PID3_I,PID3_D;PID1_P=(u16)((PID.Balance_Kp)*100);PID1_I=(u16)((PID.Balance_Ki)*100);PID1_D=(u16)((PID.Balance_Kd)*100);PID2_P=(u16)((PID.Velocity_Kp)*100);PID2_I=(u16)((PID.Velocity_Ki)*100);PID2_D=(u16)((PID.Velocity_Kd)*100);PID3_P=(u16)((PID.Turn_Kp)*100);PID3_I=(u16)((PID.Turn_Ki)*100);PID3_D=(u16)((PID.Turn_Kd)*100);tbuf[0]=((PID1_P)>>8)&0XFF; tbuf[1]=(PID1_P)&0XFF;tbuf[2]=((PID1_I)>>8)&0XFF;tbuf[3]=(PID1_I)&0XFF;tbuf[4]=((PID1_D)>>8)&0XFF;tbuf[5]=(PID1_D)&0XFF;tbuf[6]=((PID2_P)>>8)&0XFF; tbuf[7]=(PID2_P)&0XFF;tbuf[8]=((PID2_I)>>8)&0XFF;tbuf[9]=(PID2_I)&0XFF;tbuf[10]=((PID2_D)>>8)&0XFF;tbuf[11]=(PID2_D)&0XFF;tbuf[12]=((PID3_P)>>8)&0XFF; tbuf[13]=(PID3_P)&0XFF;tbuf[14]=((PID3_I)>>8)&0XFF;tbuf[15]=(PID3_I)&0XFF;tbuf[16]=((PID3_D)>>8)&0XFF;tbuf[17]=(PID3_D)&0XFF;if(Function==1)package_report_data(CAR_PID_1,tbuf,18);if(Function==2)package_report_data(CAR_PID_2,tbuf,18);if(Function==3)package_report_data(CAR_PID_1,tbuf,18); }/************************************************************************************************************** *函數名:ANO_CCD_SEN() *功能:發送CCD數據 *形參:ccd:CCD數據包括(閾值,中值,左跳變,右跳變) *返回值:無 ***************************************************************************************************************/ void ANO_CCD_SEN(void) {static u8 tbuf[8];u16 CCD_MIDDLE,CCD_THRESHOLD,CCD_LEFT,CCD_RIGHT;CCD_MIDDLE=CCD.middle;CCD_THRESHOLD=CCD.threshold;CCD_LEFT=CCD.left;CCD_RIGHT=CCD.right;tbuf[0]=((CCD_MIDDLE)>>8)&0XFF;tbuf[1]=(CCD_MIDDLE)&0XFF;tbuf[2]=((CCD_THRESHOLD)>>8)&0XFF;tbuf[3]=(CCD_THRESHOLD)&0XFF;tbuf[4]=((CCD_LEFT)>>8)&0XFF;tbuf[5]=(CCD_LEFT)&0XFF;tbuf[6]=((CCD_RIGHT)>>8)&0XFF;tbuf[7]=(CCD_RIGHT)&0XFF;package_report_data(CAR_CCD_SEN,tbuf,8); }/************************************************************************************************************* *函數名:ANO_POWER() *功能:發送電量 *形參:data:電量(0%,25%,50%,75%,100%) *返回值: **************************************************************************************************************/ void ANO_POWER(u16 data) {static u8 tbuf[2];tbuf[0]=((data)>>8)&0XFF; tbuf[1]=(data)&0XFF;package_report_data(CAR_POWER,tbuf,2); } /************************************************************************************************************* *函數名:ANO_MOTO() *功能:發送電機轉速 *形參:PWM_MOTO:電機轉速 *返回值:無 **************************************************************************************************************/ void ANO_MOTO(float PWM_MOTO) {u16 PWM_Percentage;static u8 tbuf[2];PWM_Percentage=fabs(PWM_MOTO)*1.24;tbuf[0]=((PWM_Percentage)>>8)&0XFF; tbuf[1]=(PWM_Percentage)&0XFF;package_report_data(CAR_MOTO,tbuf,2); } /************************************************************************************************************** *函數名:Connect_Send_data() *功能:發送數據給上位機 *形參: *返回值:無 **************************************************************************************************************/ void Connect_Send_data(u8 CMD_Data) {switch(CMD_Data){case READ_ALL_ARG:// DBG("\r發送數據到上位機\n");// ANO_VER(Hardware_Type,Hardware_VER,Software_VER,Protocol_VER); // ANO_MOD(FS_MODE);ANO_CAR_POSE();ANO_SENSER(); // ANO_RCDATA(F_CMD,Movement); // ANO_POWER(power);ANO_MOTO(Encoder_right); // ANO_SENSER2(Distance);ANO_CCD_SEN();break;case READ_PID:DBG("\r發送PID請求\n");ANO_PID(1);break;case READ_WORK_MODE:DBG("\r發送當前模式\n");ANO_MOD(FS_MODE);break;case READ_VERINFO:DBG("\r發送版本信息\n");ANO_VER(Hardware_Type,Hardware_VER,Software_VER,Protocol_VER);break;default:break;}}/************************************************************************************************************** *函數名:Host_Data_Receive_Anl() *功能:上位機數據包解析 *形參:(u8 *data_buf):緩存區中的接收到的數據/(u8 num):數據包長度 *返回值:無 **************************************************************************************************************/ void Host_Data_Receive_Anl(u8 *data_buf,u8 num) {u8 sum = 0,i;u8 function = *(data_buf+2),cmd = *(data_buf+4);//從幀頭道數據位的計算校驗;DBG("收到有效數據:");for(i=0;i<(num-1);i++){DBG("%x ",*(data_buf+i));sum += *(data_buf+i);}DBG("\r\n");校驗不過直接返回if(sum != *(data_buf+num-1) ) return; //判斷幀頭if(!(*(data_buf)==0xAA && *(data_buf+1)==0xAF)) return; switch(function){case MOVEMENT: DBG("設置小車動作\n");switch(cmd){case CAR_STOP:DBG("小車停止\n");if(FS_MODE==0){Contrl_Turn=64;Movement=0;}break;case CAR_FORWARD:DBG("小車前進\n");if(FS_MODE==0){Contrl_Turn=64;Movement=50;}break;case CAR_BACK:DBG("小車后退\n");if(FS_MODE==0){Contrl_Turn = 64;Movement = -50;}break;case CAR_TURN_LEFT:DBG("小車左轉\n");if(FS_MODE==0){Contrl_Turn=30;Movement=0;}break;case CAR_TURN_RIGHT:DBG("小車右轉\n");if(FS_MODE==0){Contrl_Turn=98;Movement=0;}break;default:break;}break;case READINFO: DBG("讀取小車基本信息\n");switch(cmd){case READ_PID:DBG("讀取PID數據\n");break;case READ_WORK_MODE:DBG("讀取當前工作模式\n");break;case READ_VERINFO:DBG("讀取版本信息\n");break;case RESTORE_DEFAULT_ARG:DBG("恢復默認參數\n");PID.Balance_Kp=200;PID.Balance_Kd=1;PID.Velocity_Kp=-60;PID.Velocity_Ki=-0.3;PID.Turn_Kp = 18;PID.Turn_Kd = 0.18;break; default:break;} break;case SETMODE: DBG("設置小車工作模式\n");switch(cmd){case REMOTE_MODE:DBG("遙控模式\n");FS_MODE = 0;break;case AVOID_MODE:DBG("避障模式\n");FS_MODE = 1;break;case LINE_TRACK_MODE:DBG("巡線模式\n");FS_MODE = 2;break;default:break;} break;case WRITEPID1: //上位機發送9個的16位數,*100后發送過來的,DBG("設置小車PID1\n");PID.Balance_Kp = 0.01*( (vs16)(*(data_buf+4)<<8)|*(data_buf+5) );PID.Balance_Ki = 0.01*( (vs16)(*(data_buf+6)<<8)|*(data_buf+7) );PID.Balance_Kd = 0.01*( (vs16)(*(data_buf+8)<<8)|*(data_buf+9) );PID.Velocity_Kp = 0.01*( (vs16)(*(data_buf+10)<<8)|*(data_buf+11) );PID.Velocity_Ki = 0.01*( (vs16)(*(data_buf+12)<<8)|*(data_buf+13) );PID.Velocity_Kd = 0.01*( (vs16)(*(data_buf+14)<<8)|*(data_buf+15) );PID.Turn_Kp = 0.01*( (vs16)(*(data_buf+16)<<8)|*(data_buf+17) );PID.Turn_Ki = 0.01*( (vs16)(*(data_buf+18)<<8)|*(data_buf+19) );PID.Turn_Kd = 0.01*( (vs16)(*(data_buf+20)<<8)|*(data_buf+21) );break;case WRITEPID2: DBG("設置小車PID2\n");break;default:break;}}/********************************************************************************************************** *函數名:EP32_RcvData_Extract *功能:提取ESP32中有效數據,并且將其拷貝到緩存區中 *形參:中斷接收的數據 *返回值:成功返回0,失敗返回1 注:數據格式命令 幀頭 幀頭 功能 長度 數據 校驗 例: 前進 0xaa 0xaf 0x01 0x01 0x01 計算 ***********************************************************************************************************/u8 EP32_RcvData_Extract(const uint8_t *Buff,int len) { static u8 RxBuffer[50];static int data_len = 0,data_cnt = 0;static u8 state = 0;u8 i, data;for(i=0;i<len ;i++){data = Buff[i];//判斷幀頭 if(state==0&&data==0xAA){state=1;RxBuffer[0]=data;}else if(state==1&&data==0xAF){state=2;RxBuffer[1]=data;}//功能字截止到0XF1else if(state==2&&data<0XF1){state=3;RxBuffer[2]=data;}//數據長度小于50else if(state==3&&data<50){state = 4;RxBuffer[3]=data;data_len = data;data_cnt = 0;}//將數據復制到RxBuffer中else if(state==4&&data_len>0){data_len--;RxBuffer[4+data_cnt++]=data;if(data_len==0)state = 5;}//計算校驗值else if(state==5){state = 0;RxBuffer[4+data_cnt]=data;Host_Data_Receive_Anl(RxBuffer,data_cnt+5);memset(RxBuffer,0,50);return 0;}}return 1; }

    oled 顯示置入屏幕顯示小車狀態

    096 oled 已經不陌生了,都已經使用很多次了。iic 數據傳輸。

  • oled 顯示電路

  • 2. 按鍵原理圖

  • 蜂鳴器 電氣原理圖

  • 電池adc接口 電氣原理圖

  • 開始配置工程

    cube工程配置端口


    輸出數據到oled 屏幕


    控制板需要接收按鍵按下電平,所以設置輸入模式


    oled 管腳設置輸出模式

    蜂鳴器一樣設置輸出模式

    ok 導出工程打開keil5 開始編輯程序

    四、stm32項目平衡車項目下載源碼

    本文章學習借鑒于創客學院團隊,以表感謝。教學視頻
    資源是免費下載的,點擊下載即可


    上一節,stm32項目平衡車詳解(stm32F407)上

    總結

    以上是生活随笔為你收集整理的stm32项目平衡车详解(stm32F407)下的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    欧洲美熟女乱又伦 | 久久国产精品精品国产色婷婷 | 99久久精品国产一区二区蜜芽 | 欧美第一黄网免费网站 | 日日干夜夜干 | 俄罗斯老熟妇色xxxx | 女人被爽到呻吟gif动态图视看 | 国产xxx69麻豆国语对白 | 在线天堂新版最新版在线8 | 黄网在线观看免费网站 | 国产亚洲日韩欧美另类第八页 | 婷婷五月综合缴情在线视频 | 99精品久久毛片a片 | 色噜噜亚洲男人的天堂 | 午夜免费福利小电影 | 国产成人精品久久亚洲高清不卡 | 中文字幕乱码亚洲无线三区 | 久久综合香蕉国产蜜臀av | 国产精品久久久久久久影院 | 日日麻批免费40分钟无码 | 国产亚洲视频中文字幕97精品 | 狠狠躁日日躁夜夜躁2020 | 国产日产欧产精品精品app | 天海翼激烈高潮到腰振不止 | 牲欲强的熟妇农村老妇女 | 波多野结衣乳巨码无在线观看 | 亚洲国产欧美国产综合一区 | 欧美国产日产一区二区 | 国产精品久久久久无码av色戒 | 久久精品国产精品国产精品污 | 国产成人久久精品流白浆 | 国产网红无码精品视频 | 日本又色又爽又黄的a片18禁 | 夜夜高潮次次欢爽av女 | 成 人影片 免费观看 | 色婷婷av一区二区三区之红樱桃 | 国产免费久久精品国产传媒 | 久久天天躁夜夜躁狠狠 | 熟妇人妻无码xxx视频 | 欧美野外疯狂做受xxxx高潮 | 六十路熟妇乱子伦 | 无码午夜成人1000部免费视频 | 性色av无码免费一区二区三区 | 天堂一区人妻无码 | 中文字幕无码免费久久9一区9 | 狠狠噜狠狠狠狠丁香五月 | 人妻少妇被猛烈进入中文字幕 | 无遮挡啪啪摇乳动态图 | www国产精品内射老师 | 日韩精品无码免费一区二区三区 | 国精产品一区二区三区 | 无码午夜成人1000部免费视频 | 偷窥村妇洗澡毛毛多 | 欧美人与禽猛交狂配 | 国产一区二区三区精品视频 | 亚洲国精产品一二二线 | 国产亚洲精品精品国产亚洲综合 | 高潮毛片无遮挡高清免费视频 | 高清不卡一区二区三区 | 免费无码av一区二区 | 一本大道久久东京热无码av | 丰满少妇人妻久久久久久 | 岛国片人妻三上悠亚 | 久久精品人人做人人综合试看 | 亚洲爆乳精品无码一区二区三区 | 人人澡人人妻人人爽人人蜜桃 | 亚洲精品午夜国产va久久成人 | 国产内射老熟女aaaa | 久青草影院在线观看国产 | 国产精品久久久久7777 | 中文无码精品a∨在线观看不卡 | 激情内射日本一区二区三区 | 亚洲自偷自偷在线制服 | 亚洲精品久久久久中文第一幕 | 性色欲网站人妻丰满中文久久不卡 | 久青草影院在线观看国产 | 亚洲色在线无码国产精品不卡 | 任你躁国产自任一区二区三区 | 日韩av无码中文无码电影 | 欧美乱妇无乱码大黄a片 | 综合激情五月综合激情五月激情1 | 国产 精品 自在自线 | 国产精品18久久久久久麻辣 | 人妻少妇被猛烈进入中文字幕 | 麻豆av传媒蜜桃天美传媒 | 丰满人妻被黑人猛烈进入 | 中文字幕乱妇无码av在线 | 欧美熟妇另类久久久久久多毛 | 扒开双腿疯狂进出爽爽爽视频 | 成人免费视频视频在线观看 免费 | 久久熟妇人妻午夜寂寞影院 | 日韩精品无码免费一区二区三区 | 丰腴饱满的极品熟妇 | 少女韩国电视剧在线观看完整 | 一本大道久久东京热无码av | 欧洲熟妇精品视频 | 国产香蕉97碰碰久久人人 | 亚洲午夜福利在线观看 | 99精品视频在线观看免费 | ass日本丰满熟妇pics | 国产精品亚洲专区无码不卡 | 国产欧美精品一区二区三区 | 日欧一片内射va在线影院 | 人妻体内射精一区二区三四 | 少妇厨房愉情理9仑片视频 | 亚洲国产日韩a在线播放 | 国产亚洲日韩欧美另类第八页 | 亚洲欧洲无卡二区视頻 | 国产高清av在线播放 | 国产精品久久久久7777 | 久久综合给久久狠狠97色 | 又黄又爽又色的视频 | 青草视频在线播放 | 真人与拘做受免费视频一 | 欧美国产亚洲日韩在线二区 | 国产成人一区二区三区在线观看 | 色综合久久久久综合一本到桃花网 | 对白脏话肉麻粗话av | 夜夜影院未满十八勿进 | 中文字幕乱码亚洲无线三区 | 久久亚洲精品成人无码 | 最新国产麻豆aⅴ精品无码 | 天堂а√在线中文在线 | 午夜理论片yy44880影院 | 蜜桃av抽搐高潮一区二区 | 精品无码国产一区二区三区av | 少妇激情av一区二区 | 人人妻人人澡人人爽欧美一区九九 | 一个人免费观看的www视频 | a国产一区二区免费入口 | 精品久久久无码人妻字幂 | 在线精品亚洲一区二区 | 国产精品.xx视频.xxtv | 国产又爽又猛又粗的视频a片 | 狂野欧美性猛交免费视频 | 国产人妻久久精品二区三区老狼 | 久青草影院在线观看国产 | 亚洲一区av无码专区在线观看 | 色偷偷人人澡人人爽人人模 | 国产尤物精品视频 | 澳门永久av免费网站 | 无码国产色欲xxxxx视频 | 国产精品无码永久免费888 | 国产真人无遮挡作爱免费视频 | 亚洲中文字幕va福利 | 国产精品美女久久久 | 亚洲精品一区二区三区在线观看 | 免费无码av一区二区 | 国产人成高清在线视频99最全资源 | 国产成人无码av在线影院 | 全黄性性激高免费视频 | 亚洲娇小与黑人巨大交 | 免费国产黄网站在线观看 | 无码乱肉视频免费大全合集 | 色婷婷综合激情综在线播放 | 无码人中文字幕 | 蜜臀av无码人妻精品 | 国产性生大片免费观看性 | 久久人人爽人人爽人人片av高清 | aa片在线观看视频在线播放 | 亚洲精品成a人在线观看 | 天天躁夜夜躁狠狠是什么心态 | 日韩精品无码免费一区二区三区 | 色婷婷欧美在线播放内射 | 亚洲s色大片在线观看 | 六月丁香婷婷色狠狠久久 | 欧美freesex黑人又粗又大 | 国产精品永久免费视频 | 欧美精品一区二区精品久久 | 蜜臀av无码人妻精品 | 国内揄拍国内精品少妇国语 | 中文字幕 人妻熟女 | 亚洲一区二区三区四区 | 国产人妻精品一区二区三区 | 亚洲精品久久久久中文第一幕 | 99riav国产精品视频 | 亚洲精品一区二区三区婷婷月 | 十八禁视频网站在线观看 | 中文精品久久久久人妻不卡 | 377p欧洲日本亚洲大胆 | 久久久久人妻一区精品色欧美 | 欧美老妇与禽交 | 亚洲精品中文字幕 | 国产香蕉97碰碰久久人人 | 在线亚洲高清揄拍自拍一品区 | 妺妺窝人体色www在线小说 | 99久久精品无码一区二区毛片 | 思思久久99热只有频精品66 | 天天拍夜夜添久久精品大 | 男女超爽视频免费播放 | 国内精品久久毛片一区二区 | 亚洲综合无码久久精品综合 | 婷婷五月综合缴情在线视频 | 欧美亚洲日韩国产人成在线播放 | 免费无码的av片在线观看 | 一个人看的www免费视频在线观看 | 日本www一道久久久免费榴莲 | 在线观看国产一区二区三区 | 无码人妻丰满熟妇区五十路百度 | 国产午夜亚洲精品不卡下载 | 国产精品美女久久久网av | 妺妺窝人体色www在线小说 | 无码av免费一区二区三区试看 | 久久五月精品中文字幕 | 亚洲国产高清在线观看视频 | www国产精品内射老师 | www成人国产高清内射 | 国产农村乱对白刺激视频 | 久久久久99精品成人片 | 亚洲va欧美va天堂v国产综合 | 国产极品视觉盛宴 | 夜精品a片一区二区三区无码白浆 | 中文字幕无码av波多野吉衣 | 99国产欧美久久久精品 | 亚洲一区av无码专区在线观看 | 国产精品美女久久久久av爽李琼 | 国产农村乱对白刺激视频 | 免费观看的无遮挡av | 中文字幕人妻丝袜二区 | 中文精品无码中文字幕无码专区 | 欧美日韩色另类综合 | 少妇高潮一区二区三区99 | 亚洲精品欧美二区三区中文字幕 | 欧美 亚洲 国产 另类 | 欧美人与牲动交xxxx | 男女爱爱好爽视频免费看 | 成人无码精品一区二区三区 | 精品偷拍一区二区三区在线看 | 强开小婷嫩苞又嫩又紧视频 | 伊人久久大香线蕉av一区二区 | yw尤物av无码国产在线观看 | 又紧又大又爽精品一区二区 | 精品国产成人一区二区三区 | 一本加勒比波多野结衣 | 荫蒂被男人添的好舒服爽免费视频 | 欧美国产亚洲日韩在线二区 | 人妻有码中文字幕在线 | 亚洲无人区午夜福利码高清完整版 | 日韩人妻无码中文字幕视频 | 国产做国产爱免费视频 | 国产精品久久久久久久影院 | 亚洲日韩一区二区三区 | 日本爽爽爽爽爽爽在线观看免 | 国产极品视觉盛宴 | 少妇性荡欲午夜性开放视频剧场 | 久久97精品久久久久久久不卡 | 波多野结衣一区二区三区av免费 | 精品日本一区二区三区在线观看 | 九九热爱视频精品 | 十八禁视频网站在线观看 | 日韩精品成人一区二区三区 | 久久国语露脸国产精品电影 | 国产国语老龄妇女a片 | 无码纯肉视频在线观看 | 中文字幕无码免费久久99 | 精品一区二区三区无码免费视频 | 亚洲国产欧美国产综合一区 | 国产精品久久国产三级国 | 色综合视频一区二区三区 | 红桃av一区二区三区在线无码av | 日韩 欧美 动漫 国产 制服 | 成人精品视频一区二区三区尤物 | 亚洲 激情 小说 另类 欧美 | 亚洲精品午夜无码电影网 | 自拍偷自拍亚洲精品10p | 高清不卡一区二区三区 | 国产两女互慰高潮视频在线观看 | 久久久久久亚洲精品a片成人 | 无码国产乱人伦偷精品视频 | 无码成人精品区在线观看 | 国产情侣作爱视频免费观看 | 国产精品高潮呻吟av久久4虎 | 精品国产青草久久久久福利 | 无码中文字幕色专区 | 性史性农村dvd毛片 | 最近的中文字幕在线看视频 | 真人与拘做受免费视频一 | 亚洲一区二区三区偷拍女厕 | 欧美怡红院免费全部视频 | 亚洲 激情 小说 另类 欧美 | 在线成人www免费观看视频 | 国产成人精品无码播放 | 久久天天躁夜夜躁狠狠 | 波多野结衣高清一区二区三区 | 天堂一区人妻无码 | 久久国产精品偷任你爽任你 | 又湿又紧又大又爽a视频国产 | 精品久久久无码中文字幕 | 搡女人真爽免费视频大全 | 性欧美videos高清精品 | 午夜丰满少妇性开放视频 | 人妻尝试又大又粗久久 | 少妇性l交大片欧洲热妇乱xxx | 桃花色综合影院 | 亚洲精品国产精品乱码不卡 | 日本www一道久久久免费榴莲 | 午夜时刻免费入口 | 国内揄拍国内精品人妻 | 国产后入清纯学生妹 | 国产激情综合五月久久 | 日日天干夜夜狠狠爱 | 亚洲精品综合五月久久小说 | 人人澡人摸人人添 | 国内揄拍国内精品人妻 | 精品熟女少妇av免费观看 | 精品乱子伦一区二区三区 | 国产凸凹视频一区二区 | 免费国产成人高清在线观看网站 | 精品国产一区二区三区av 性色 | 中文字幕av无码一区二区三区电影 | 98国产精品综合一区二区三区 | 欧美人与禽zoz0性伦交 | 久久午夜无码鲁丝片 | 欧美人与善在线com | 国产福利视频一区二区 | 中文字幕无线码免费人妻 | 无码人妻丰满熟妇区五十路百度 | 亚洲精品欧美二区三区中文字幕 | 又湿又紧又大又爽a视频国产 | 99久久久无码国产精品免费 | 2020久久超碰国产精品最新 | 色综合久久久无码网中文 | 老太婆性杂交欧美肥老太 | aⅴ亚洲 日韩 色 图网站 播放 | 真人与拘做受免费视频一 | 初尝人妻少妇中文字幕 | 精品亚洲韩国一区二区三区 | 国产在线精品一区二区高清不卡 | 美女张开腿让人桶 | 麻豆精品国产精华精华液好用吗 | 精品人妻人人做人人爽 | 无码av免费一区二区三区试看 | 日本成熟视频免费视频 | 女人被爽到呻吟gif动态图视看 | 久热国产vs视频在线观看 | 国产成人无码午夜视频在线观看 | 久久综合色之久久综合 | av小次郎收藏 | 免费人成在线视频无码 | 性欧美videos高清精品 | 亚洲中文字幕成人无码 | 久久久精品国产sm最大网站 | 两性色午夜视频免费播放 | 免费无码一区二区三区蜜桃大 | 国产偷自视频区视频 | 精品国产一区二区三区av 性色 | 欧美真人作爱免费视频 | 我要看www免费看插插视频 | 国内精品久久久久久中文字幕 | 中文字幕 人妻熟女 | 亚欧洲精品在线视频免费观看 | 熟妇人妻激情偷爽文 | 亚洲精品一区三区三区在线观看 | 熟女少妇在线视频播放 | 对白脏话肉麻粗话av | 在线播放无码字幕亚洲 | 中文字幕乱妇无码av在线 | 精品国产青草久久久久福利 | 日韩无套无码精品 | 亚洲中文字幕无码中文字在线 | 久久99精品久久久久久动态图 | 亚洲人成人无码网www国产 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 波多野结衣乳巨码无在线观看 | 青春草在线视频免费观看 | 精品一区二区三区波多野结衣 | 无码帝国www无码专区色综合 | 蜜桃视频韩日免费播放 | 宝宝好涨水快流出来免费视频 | 综合网日日天干夜夜久久 | 欧美一区二区三区 | 偷窥日本少妇撒尿chinese | 国产成人精品久久亚洲高清不卡 | 装睡被陌生人摸出水好爽 | 国产一区二区三区精品视频 | 丰满少妇女裸体bbw | 中文毛片无遮挡高清免费 | 中文字幕+乱码+中文字幕一区 | 一本久道久久综合婷婷五月 | 日日摸夜夜摸狠狠摸婷婷 | 麻豆成人精品国产免费 | 午夜免费福利小电影 | 久久亚洲日韩精品一区二区三区 | 丝袜人妻一区二区三区 | 无套内谢的新婚少妇国语播放 | 欧美精品无码一区二区三区 | 精品欧美一区二区三区久久久 | 亚洲天堂2017无码中文 | 丰满诱人的人妻3 | 精品国产福利一区二区 | 青草视频在线播放 | 无码精品国产va在线观看dvd | 久久亚洲国产成人精品性色 | 性欧美熟妇videofreesex | 精品厕所偷拍各类美女tp嘘嘘 | 亚洲一区二区三区无码久久 | 日韩欧美群交p片內射中文 | 久久久久人妻一区精品色欧美 | 99久久久无码国产精品免费 | 国产成人综合色在线观看网站 | 丰满少妇熟乱xxxxx视频 | 国产性生交xxxxx无码 | √8天堂资源地址中文在线 | 亚洲精品久久久久久一区二区 | 精品夜夜澡人妻无码av蜜桃 | 99麻豆久久久国产精品免费 | 扒开双腿疯狂进出爽爽爽视频 | 永久免费观看国产裸体美女 | 精品国产av色一区二区深夜久久 | 久久久久亚洲精品男人的天堂 | 无码国内精品人妻少妇 | 熟女少妇在线视频播放 | 亚洲精品成人福利网站 | 青青草原综合久久大伊人精品 | 国产激情无码一区二区 | 国产精品对白交换视频 | 国产内射老熟女aaaa | 狠狠色噜噜狠狠狠狠7777米奇 | 国内揄拍国内精品少妇国语 | 超碰97人人射妻 | 亚洲综合精品香蕉久久网 | 四虎国产精品一区二区 | 色综合久久久无码网中文 | 中文字幕久久久久人妻 | 国产成人亚洲综合无码 | 亚洲色在线无码国产精品不卡 | 亚洲中文字幕成人无码 | 久久亚洲日韩精品一区二区三区 | 久久国产精品萌白酱免费 | 久久婷婷五月综合色国产香蕉 | 麻豆人妻少妇精品无码专区 | 国产高清av在线播放 | 无遮无挡爽爽免费视频 | 最近中文2019字幕第二页 | 亚洲综合无码一区二区三区 | 55夜色66夜色国产精品视频 | 最新国产麻豆aⅴ精品无码 | 水蜜桃色314在线观看 | 国产人妻精品一区二区三区 | 中文字幕av伊人av无码av | 性欧美牲交xxxxx视频 | 亚洲欧美色中文字幕在线 | 日本一本二本三区免费 | 真人与拘做受免费视频一 | 亚洲欧美日韩国产精品一区二区 | 又粗又大又硬毛片免费看 | 无遮挡国产高潮视频免费观看 | 少女韩国电视剧在线观看完整 | 在线看片无码永久免费视频 | 乱中年女人伦av三区 | 牲欲强的熟妇农村老妇女视频 | 无码成人精品区在线观看 | 俺去俺来也在线www色官网 | 成熟女人特级毛片www免费 | 精品欧美一区二区三区久久久 | 国产精品成人av在线观看 | 国产婷婷色一区二区三区在线 | 欧美黑人乱大交 | 亚洲国产欧美在线成人 | 300部国产真实乱 | 1000部啪啪未满十八勿入下载 | 荫蒂添的好舒服视频囗交 | 亚洲人成网站在线播放942 | 强奷人妻日本中文字幕 | 成人综合网亚洲伊人 | 熟妇激情内射com | 18无码粉嫩小泬无套在线观看 | 98国产精品综合一区二区三区 | 国产精品第一国产精品 | 无码乱肉视频免费大全合集 | 在线观看免费人成视频 | 色老头在线一区二区三区 | 99在线 | 亚洲 | 久久人人爽人人爽人人片av高清 | 99精品国产综合久久久久五月天 | 波多野42部无码喷潮在线 | 亚洲熟妇色xxxxx欧美老妇 | 香港三级日本三级妇三级 | 国产精品二区一区二区aⅴ污介绍 | 亚洲一区二区三区国产精华液 | 麻豆精品国产精华精华液好用吗 | 十八禁真人啪啪免费网站 | 精品久久久久久亚洲精品 | 正在播放老肥熟妇露脸 | 亚洲国产综合无码一区 | 国产精品资源一区二区 | 思思久久99热只有频精品66 | 美女黄网站人色视频免费国产 | 亚洲国产欧美在线成人 | 男女爱爱好爽视频免费看 | 中文字幕无码av波多野吉衣 | 熟女俱乐部五十路六十路av | 成年美女黄网站色大免费视频 | 精品国产一区二区三区四区在线看 | 国产亚洲精品久久久久久久久动漫 | 麻豆精品国产精华精华液好用吗 | 日韩在线不卡免费视频一区 | 欧美性猛交内射兽交老熟妇 | 国产亚洲美女精品久久久2020 | 亚洲色大成网站www | 丰满少妇高潮惨叫视频 | 人人妻人人澡人人爽欧美精品 | 男女作爱免费网站 | 久久精品人人做人人综合试看 | 性生交大片免费看l | 亚洲男人av香蕉爽爽爽爽 | 国内揄拍国内精品少妇国语 | 久青草影院在线观看国产 | 日本大乳高潮视频在线观看 | 日本乱偷人妻中文字幕 | √8天堂资源地址中文在线 | 亚洲理论电影在线观看 | 蜜桃av抽搐高潮一区二区 | 牲交欧美兽交欧美 | 福利一区二区三区视频在线观看 | 欧洲熟妇精品视频 | 蜜臀aⅴ国产精品久久久国产老师 | 国产亲子乱弄免费视频 | 88国产精品欧美一区二区三区 | 中文字幕人妻无码一区二区三区 | 国产乱人无码伦av在线a | 色综合久久88色综合天天 | 国产香蕉尹人视频在线 | www国产亚洲精品久久网站 | 欧美日韩人成综合在线播放 | 色狠狠av一区二区三区 | 婷婷五月综合激情中文字幕 | 性色av无码免费一区二区三区 | 久久国产精品精品国产色婷婷 | 免费网站看v片在线18禁无码 | 国产精品高潮呻吟av久久4虎 | 97夜夜澡人人双人人人喊 | 亚洲成av人片天堂网无码】 | 国产超级va在线观看视频 | 亚洲日韩av一区二区三区四区 | 粗大的内捧猛烈进出视频 | 极品嫩模高潮叫床 | 免费观看又污又黄的网站 | 欧美日本精品一区二区三区 | 中文字幕久久久久人妻 | 无遮挡国产高潮视频免费观看 | 啦啦啦www在线观看免费视频 | 无码午夜成人1000部免费视频 | 精品国产成人一区二区三区 | 日日摸天天摸爽爽狠狠97 | 欧美性生交活xxxxxdddd | 亚洲成a人一区二区三区 | 无码人妻丰满熟妇区五十路百度 | 亚洲色偷偷男人的天堂 | 99riav国产精品视频 | 日本大乳高潮视频在线观看 | 男女猛烈xx00免费视频试看 | 动漫av一区二区在线观看 | 老司机亚洲精品影院无码 | 熟妇人妻无乱码中文字幕 | 免费无码av一区二区 | 骚片av蜜桃精品一区 | 久久99精品国产麻豆蜜芽 | 性欧美熟妇videofreesex | 人人澡人人妻人人爽人人蜜桃 | 午夜免费福利小电影 | 亚洲 日韩 欧美 成人 在线观看 | 亚洲午夜福利在线观看 | 狂野欧美性猛xxxx乱大交 | 性生交大片免费看女人按摩摩 | 夜先锋av资源网站 | 久久久久成人片免费观看蜜芽 | 欧美一区二区三区视频在线观看 | 俄罗斯老熟妇色xxxx | 成人免费视频在线观看 | 在线观看国产午夜福利片 | 国产av无码专区亚洲awww | 国产亚洲欧美日韩亚洲中文色 | 亚洲狠狠婷婷综合久久 | 99麻豆久久久国产精品免费 | 亚洲人成网站色7799 | 成人一在线视频日韩国产 | 精品国产aⅴ无码一区二区 | 18禁黄网站男男禁片免费观看 | 影音先锋中文字幕无码 | 中文字幕无码乱人伦 | 国产麻豆精品一区二区三区v视界 | 成人影院yy111111在线观看 | 亚洲综合久久一区二区 | 日本xxxx色视频在线观看免费 | 欧美亚洲国产一区二区三区 | 日日夜夜撸啊撸 | a国产一区二区免费入口 | 青青青手机频在线观看 | 18禁止看的免费污网站 | 婷婷五月综合缴情在线视频 | 色一情一乱一伦一区二区三欧美 | 东京热一精品无码av | 免费人成在线视频无码 | 四十如虎的丰满熟妇啪啪 | av无码电影一区二区三区 | 国产高潮视频在线观看 | 无遮挡国产高潮视频免费观看 | 日本精品少妇一区二区三区 | 免费中文字幕日韩欧美 | 无码精品人妻一区二区三区av | 亚洲乱码国产乱码精品精 | 99国产精品白浆在线观看免费 | 国产精品高潮呻吟av久久4虎 | 亚洲爆乳精品无码一区二区三区 | 国产精品福利视频导航 | 国产午夜精品一区二区三区嫩草 | 亚洲中文字幕在线观看 | 亚洲男女内射在线播放 | 少妇被黑人到高潮喷出白浆 | 欧美日韩一区二区三区自拍 | 夫妻免费无码v看片 | 国产精品va在线播放 | 亚洲中文字幕无码一久久区 | 无码午夜成人1000部免费视频 | 久久99久久99精品中文字幕 | 99久久久无码国产精品免费 | 亚洲爆乳大丰满无码专区 | 性啪啪chinese东北女人 | 国产又爽又猛又粗的视频a片 | 999久久久国产精品消防器材 | 亚洲一区二区三区无码久久 | 蜜桃视频插满18在线观看 | 波多野结衣高清一区二区三区 | 精品无码一区二区三区爱欲 | 久久久久免费看成人影片 | 一本无码人妻在中文字幕免费 | 精品国产青草久久久久福利 | 鲁一鲁av2019在线 | 亚洲日韩av一区二区三区四区 | 久久久久久国产精品无码下载 | 亚洲欧美精品aaaaaa片 | 妺妺窝人体色www婷婷 | 蜜桃视频韩日免费播放 | 欧美人与善在线com | 国产午夜手机精彩视频 | 国产一精品一av一免费 | 伊在人天堂亚洲香蕉精品区 | 人妻体内射精一区二区三四 | 超碰97人人射妻 | 亚洲の无码国产の无码影院 | 香港三级日本三级妇三级 | 中文字幕人妻无码一区二区三区 | 4hu四虎永久在线观看 | 亚洲自偷自偷在线制服 | 又粗又大又硬毛片免费看 | 亚洲色成人中文字幕网站 | 丝袜人妻一区二区三区 | 大地资源中文第3页 | 人人妻人人澡人人爽精品欧美 | 亚洲精品成人av在线 | 国产艳妇av在线观看果冻传媒 | 久久午夜无码鲁丝片午夜精品 | 亚洲精品国产a久久久久久 | 国产精品无码成人午夜电影 | 亚洲综合无码一区二区三区 | 国产精品第一国产精品 | 我要看www免费看插插视频 | 无码人妻出轨黑人中文字幕 | 国产精品人人妻人人爽 | 99久久人妻精品免费二区 | 欧美成人免费全部网站 | 久久综合香蕉国产蜜臀av | 大胆欧美熟妇xx | 色 综合 欧美 亚洲 国产 | 内射白嫩少妇超碰 | 曰本女人与公拘交酡免费视频 | 精品无人国产偷自产在线 | 欧美日韩一区二区综合 | 青春草在线视频免费观看 | 中文字幕无码视频专区 | 日韩少妇白浆无码系列 | 欧美国产亚洲日韩在线二区 | аⅴ资源天堂资源库在线 | 亚洲欧美日韩成人高清在线一区 | 国产在线一区二区三区四区五区 | 久久婷婷五月综合色国产香蕉 | 六月丁香婷婷色狠狠久久 | 亚洲区小说区激情区图片区 | 乱中年女人伦av三区 | 亚洲熟妇自偷自拍另类 | 97夜夜澡人人爽人人喊中国片 | 国产精品久久久av久久久 | 人妻少妇精品无码专区动漫 | 亚洲а∨天堂久久精品2021 | 无码人妻黑人中文字幕 | 人人妻人人澡人人爽精品欧美 | 久久久久免费看成人影片 | 久久99久久99精品中文字幕 | 午夜精品久久久内射近拍高清 | 一本久久a久久精品vr综合 | 国产成人精品一区二区在线小狼 | 日本xxxx色视频在线观看免费 | 欧美真人作爱免费视频 | 国产农村妇女高潮大叫 | 激情内射亚州一区二区三区爱妻 | 一本精品99久久精品77 | 成人免费视频一区二区 | 欧美日本精品一区二区三区 | 大肉大捧一进一出好爽视频 | 午夜男女很黄的视频 | 激情爆乳一区二区三区 | 日本欧美一区二区三区乱码 | 免费观看的无遮挡av | 亚洲s码欧洲m码国产av | 久激情内射婷内射蜜桃人妖 | 欧美熟妇另类久久久久久多毛 | 激情综合激情五月俺也去 | 小鲜肉自慰网站xnxx | 波多野结衣av一区二区全免费观看 | 国精产品一品二品国精品69xx | 亚洲呦女专区 | 日本丰满护士爆乳xxxx | 国产午夜精品一区二区三区嫩草 | 国产精品久久久午夜夜伦鲁鲁 | 中文字幕中文有码在线 | 欧美人与禽zoz0性伦交 | 亚洲熟妇色xxxxx欧美老妇 | 亚洲精品无码国产 | 东京一本一道一二三区 | 亚洲日韩av一区二区三区中文 | 亚洲 高清 成人 动漫 | 成人无码精品1区2区3区免费看 | 久久人妻内射无码一区三区 | 亚洲码国产精品高潮在线 | 欧美35页视频在线观看 | 久久人人爽人人爽人人片av高清 | 欧美自拍另类欧美综合图片区 | 图片小说视频一区二区 | 国产熟妇高潮叫床视频播放 | 波多野结衣高清一区二区三区 | 久久综合给合久久狠狠狠97色 | 伦伦影院午夜理论片 | 久久精品中文字幕大胸 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 亚洲国产高清在线观看视频 | av人摸人人人澡人人超碰下载 | 无码国内精品人妻少妇 | 人妻aⅴ无码一区二区三区 | 久久午夜夜伦鲁鲁片无码免费 | 动漫av网站免费观看 | 蜜桃无码一区二区三区 | 久久综合给久久狠狠97色 | 少妇高潮一区二区三区99 | 中文字幕人成乱码熟女app | 东北女人啪啪对白 | 人妻少妇精品久久 | 国产乱码精品一品二品 | 国产美女极度色诱视频www | 久久精品视频在线看15 | 1000部啪啪未满十八勿入下载 | 国产人妻久久精品二区三区老狼 | 亚洲日韩中文字幕在线播放 | 成人影院yy111111在线观看 | 内射爽无广熟女亚洲 | 欧美性生交活xxxxxdddd | 精品国产青草久久久久福利 | 国产成人一区二区三区在线观看 | 一本久道久久综合婷婷五月 | 水蜜桃色314在线观看 | 亚洲中文字幕乱码av波多ji | 漂亮人妻洗澡被公强 日日躁 | 国语自产偷拍精品视频偷 | 亚洲成a人片在线观看无码 | 色综合久久网 | 国产亚洲精品久久久久久久久动漫 | 精品国产一区二区三区av 性色 | 欧美人与牲动交xxxx | 国产内射老熟女aaaa | 男人和女人高潮免费网站 | 国产乱人无码伦av在线a | 妺妺窝人体色www在线小说 | 成人欧美一区二区三区黑人免费 | 麻豆人妻少妇精品无码专区 | 丰满人妻一区二区三区免费视频 | 国内丰满熟女出轨videos | 天天躁夜夜躁狠狠是什么心态 | 日韩人妻无码中文字幕视频 | 蜜桃视频插满18在线观看 | 久久精品国产亚洲精品 | 国产成人综合色在线观看网站 | 国产午夜福利100集发布 | 欧美性猛交内射兽交老熟妇 | 大胆欧美熟妇xx | 免费人成在线观看网站 | 爱做久久久久久 | 国产无套内射久久久国产 | 久久精品女人的天堂av | 中国大陆精品视频xxxx | 无码播放一区二区三区 | 亚洲国产精华液网站w | 久久亚洲精品中文字幕无男同 | 国产sm调教视频在线观看 | 精品无码一区二区三区爱欲 | 国产成人精品三级麻豆 | 亚洲综合无码一区二区三区 | 国产在线无码精品电影网 | 美女张开腿让人桶 | 正在播放东北夫妻内射 | 中文字幕av无码一区二区三区电影 | 全黄性性激高免费视频 | 日本爽爽爽爽爽爽在线观看免 | 亚洲综合无码久久精品综合 | 欧美熟妇另类久久久久久多毛 | 国产精品高潮呻吟av久久4虎 | 夜夜躁日日躁狠狠久久av | 中国女人内谢69xxxxxa片 | 狂野欧美性猛交免费视频 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 性史性农村dvd毛片 | 性色av无码免费一区二区三区 | 99久久亚洲精品无码毛片 | 樱花草在线社区www | 午夜理论片yy44880影院 | 亚洲国产欧美日韩精品一区二区三区 | 一区二区三区乱码在线 | 欧洲 | 色诱久久久久综合网ywww | 999久久久国产精品消防器材 | 国产偷自视频区视频 | 国产尤物精品视频 | 人人超人人超碰超国产 | 日本熟妇浓毛 | 亚洲午夜福利在线观看 | 国内精品人妻无码久久久影院 | 国产精品亚洲а∨无码播放麻豆 | 999久久久国产精品消防器材 | 亚洲熟妇自偷自拍另类 | 亚洲国精产品一二二线 | 99久久久国产精品无码免费 | 内射爽无广熟女亚洲 | 国产成人精品无码播放 | 色欲久久久天天天综合网精品 | 性生交片免费无码看人 | 精品国产福利一区二区 | 国产精品igao视频网 | 曰本女人与公拘交酡免费视频 | 亚洲国产一区二区三区在线观看 | 少妇久久久久久人妻无码 | 99re在线播放 | 久久97精品久久久久久久不卡 | 国产午夜视频在线观看 | 久久精品国产一区二区三区 | 宝宝好涨水快流出来免费视频 | 中文精品久久久久人妻不卡 | 在线视频网站www色 | 亚洲国产av精品一区二区蜜芽 | 日韩视频 中文字幕 视频一区 | 国产偷自视频区视频 | 成人aaa片一区国产精品 | 精品国产aⅴ无码一区二区 | 亚洲精品久久久久avwww潮水 | www成人国产高清内射 | 无码国产色欲xxxxx视频 | 波多野结衣一区二区三区av免费 | 中文字幕无码日韩专区 | 性色欲情网站iwww九文堂 | 人妻aⅴ无码一区二区三区 | 国产在线精品一区二区三区直播 | 国产成人午夜福利在线播放 | 最近中文2019字幕第二页 | 中文字幕无码免费久久99 | 天堂无码人妻精品一区二区三区 | 精品aⅴ一区二区三区 | 国产精品igao视频网 | 成人欧美一区二区三区黑人免费 | 大肉大捧一进一出好爽视频 | 国产av无码专区亚洲a∨毛片 | 成人免费视频一区二区 | 亚洲精品一区二区三区大桥未久 | 国产另类ts人妖一区二区 | 女人色极品影院 | 国产亚洲tv在线观看 | 黑森林福利视频导航 | 麻豆国产人妻欲求不满 | 日韩欧美群交p片內射中文 | 我要看www免费看插插视频 | 亚洲高清偷拍一区二区三区 | 欧美国产亚洲日韩在线二区 | 性史性农村dvd毛片 | 国产欧美精品一区二区三区 | 精品 日韩 国产 欧美 视频 | 国产亚洲精品久久久久久大师 | 亚洲乱码中文字幕在线 | 色一情一乱一伦 | 大肉大捧一进一出好爽视频 | 久久99热只有频精品8 | 国产成人无码午夜视频在线观看 | 亚洲春色在线视频 | 俺去俺来也www色官网 | 国产九九九九九九九a片 | 国产亚洲精品久久久久久久久动漫 | 女高中生第一次破苞av | 成人试看120秒体验区 | 久久www免费人成人片 | 精品国产国产综合精品 | 网友自拍区视频精品 | 日韩人妻少妇一区二区三区 | 久久久www成人免费毛片 | 国产成人无码av一区二区 | 最新国产乱人伦偷精品免费网站 | 综合激情五月综合激情五月激情1 | 少妇人妻偷人精品无码视频 | 在线精品国产一区二区三区 | 亚洲欧美精品aaaaaa片 | 青草青草久热国产精品 | 日韩欧美中文字幕在线三区 | 天干天干啦夜天干天2017 | 爆乳一区二区三区无码 | av在线亚洲欧洲日产一区二区 | 人人妻人人澡人人爽欧美精品 | 国产精品福利视频导航 | 中文字幕无码视频专区 | 国产午夜福利100集发布 | 少妇人妻大乳在线视频 | 国产电影无码午夜在线播放 | 精品久久久久久亚洲精品 | 国产sm调教视频在线观看 | 亚洲综合色区中文字幕 | 久久久久久a亚洲欧洲av冫 | 曰本女人与公拘交酡免费视频 | 国产农村妇女高潮大叫 | 国产疯狂伦交大片 | 欧美老熟妇乱xxxxx | 一本大道久久东京热无码av | 人人妻人人澡人人爽欧美精品 | 在线 国产 欧美 亚洲 天堂 | 亚洲午夜久久久影院 | 色婷婷欧美在线播放内射 | 少妇性俱乐部纵欲狂欢电影 | 野外少妇愉情中文字幕 | 国产色精品久久人妻 | 久久久久成人精品免费播放动漫 | 天堂а√在线地址中文在线 | 色五月丁香五月综合五月 | 亚洲精品一区二区三区大桥未久 | 天堂一区人妻无码 | 日日橹狠狠爱欧美视频 | 精品一区二区三区波多野结衣 | 午夜精品一区二区三区的区别 | 亚洲一区av无码专区在线观看 | 欧洲熟妇精品视频 | 色婷婷av一区二区三区之红樱桃 | 久久精品中文字幕大胸 | 国产成人无码av一区二区 | 欧美一区二区三区视频在线观看 | 久久国产自偷自偷免费一区调 | 漂亮人妻洗澡被公强 日日躁 | 国产午夜视频在线观看 | 亚洲国产av美女网站 | 久久亚洲精品成人无码 | 一二三四在线观看免费视频 | 天天躁日日躁狠狠躁免费麻豆 | 久久精品国产精品国产精品污 | 丝袜 中出 制服 人妻 美腿 | 中文字幕精品av一区二区五区 | 骚片av蜜桃精品一区 | 国产黄在线观看免费观看不卡 | 男女下面进入的视频免费午夜 | 白嫩日本少妇做爰 | 亚洲の无码国产の无码步美 | 国产在线精品一区二区高清不卡 | 日本成熟视频免费视频 | 97精品国产97久久久久久免费 | 欧美自拍另类欧美综合图片区 | 亚洲国产精品毛片av不卡在线 | 天干天干啦夜天干天2017 | 精品国偷自产在线视频 | 蜜桃臀无码内射一区二区三区 | 欧美精品无码一区二区三区 | 亚洲成在人网站无码天堂 | 欧美性猛交内射兽交老熟妇 | 曰韩无码二三区中文字幕 | 麻豆成人精品国产免费 | 国产黑色丝袜在线播放 | 国产精品高潮呻吟av久久4虎 | 亚洲a无码综合a国产av中文 | 麻豆成人精品国产免费 | 极品嫩模高潮叫床 | 久久综合久久自在自线精品自 | av无码久久久久不卡免费网站 | 牛和人交xxxx欧美 | 国产在线精品一区二区高清不卡 | 久久久久亚洲精品中文字幕 | 最近免费中文字幕中文高清百度 | 乱人伦中文视频在线观看 | 免费无码的av片在线观看 | 亚洲国产成人av在线观看 | 一本无码人妻在中文字幕免费 | 久久综合给合久久狠狠狠97色 | 131美女爱做视频 | 婷婷丁香五月天综合东京热 | 婷婷色婷婷开心五月四房播播 | 狠狠噜狠狠狠狠丁香五月 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 亚洲国产精品无码久久久久高潮 | 国产人妻精品一区二区三区 | 久久亚洲中文字幕无码 | 无遮无挡爽爽免费视频 | 国产suv精品一区二区五 | 暴力强奷在线播放无码 | 久久精品中文闷骚内射 | 一本久道久久综合婷婷五月 | 正在播放东北夫妻内射 | 国产精品永久免费视频 | 天下第一社区视频www日本 | 欧美日韩一区二区免费视频 | 人人澡人人妻人人爽人人蜜桃 | 国产一区二区三区精品视频 | 天堂无码人妻精品一区二区三区 | 老熟妇乱子伦牲交视频 | 免费人成在线观看网站 | 中文字幕无码免费久久99 | 亚洲精品一区二区三区四区五区 | 亚洲熟妇色xxxxx欧美老妇y | 樱花草在线社区www | 精品久久久久久亚洲精品 | 99国产欧美久久久精品 | 国产激情精品一区二区三区 | 国产三级久久久精品麻豆三级 | 国产成人无码a区在线观看视频app | 亚洲国产欧美在线成人 | 成人无码精品一区二区三区 | 色 综合 欧美 亚洲 国产 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 国产超级va在线观看视频 | 一本色道婷婷久久欧美 | 色一情一乱一伦 | 免费无码的av片在线观看 | 免费中文字幕日韩欧美 | 国产精品多人p群无码 | 精品偷自拍另类在线观看 | 伦伦影院午夜理论片 | 久久99热只有频精品8 | 99久久精品无码一区二区毛片 | 精品日本一区二区三区在线观看 | 亚洲色成人中文字幕网站 | 中文字幕无码乱人伦 | 精品无人国产偷自产在线 | 久久无码中文字幕免费影院蜜桃 | 无码国产色欲xxxxx视频 | 国产偷自视频区视频 | 亚洲成在人网站无码天堂 | 大色综合色综合网站 | 伊在人天堂亚洲香蕉精品区 | 国产suv精品一区二区五 | 天天燥日日燥 | 人人澡人人透人人爽 | 亚洲综合无码久久精品综合 | 国产极品视觉盛宴 | 樱花草在线社区www | 无码帝国www无码专区色综合 | 无码毛片视频一区二区本码 | 亚洲欧美国产精品专区久久 | 99视频精品全部免费免费观看 | 国产精品第一国产精品 | 国产97色在线 | 免 | 少妇性荡欲午夜性开放视频剧场 | 国产乱人伦av在线无码 | 成熟女人特级毛片www免费 | 亚洲理论电影在线观看 | 久久国产36精品色熟妇 | 亚洲人成无码网www | 18无码粉嫩小泬无套在线观看 | 国产精品免费大片 | 无码精品国产va在线观看dvd | 国产在线精品一区二区三区直播 | 国产熟女一区二区三区四区五区 | 一本久久a久久精品vr综合 | 无套内射视频囯产 | 欧美日韩一区二区免费视频 | 久久久久av无码免费网 | 国产莉萝无码av在线播放 | 色婷婷香蕉在线一区二区 | 久久久久人妻一区精品色欧美 | 亚无码乱人伦一区二区 | 免费看男女做好爽好硬视频 | 亚洲国产高清在线观看视频 | 精品久久久无码人妻字幂 | 青草青草久热国产精品 | 国产艳妇av在线观看果冻传媒 | 国产精品资源一区二区 | 99国产欧美久久久精品 | 国产人妻精品一区二区三区不卡 | 欧洲精品码一区二区三区免费看 | 国产激情无码一区二区app | 宝宝好涨水快流出来免费视频 | 亚洲欧美日韩国产精品一区二区 | 亚洲精品美女久久久久久久 | 自拍偷自拍亚洲精品10p | 亚洲日韩av一区二区三区四区 | 少妇人妻偷人精品无码视频 | 精品无码一区二区三区爱欲 | 性啪啪chinese东北女人 | 色噜噜亚洲男人的天堂 | 乱人伦中文视频在线观看 | 国内精品久久毛片一区二区 | 欧美日韩久久久精品a片 | 久久久精品成人免费观看 | 熟女俱乐部五十路六十路av | 青青久在线视频免费观看 | 日欧一片内射va在线影院 | 成人性做爰aaa片免费看不忠 | 亚洲码国产精品高潮在线 | 国语自产偷拍精品视频偷 | 久久精品国产精品国产精品污 | 牛和人交xxxx欧美 | 色妞www精品免费视频 | 偷窥村妇洗澡毛毛多 | 色噜噜亚洲男人的天堂 | 亚洲va欧美va天堂v国产综合 | 国产无遮挡吃胸膜奶免费看 | 亚洲成av人综合在线观看 | 午夜免费福利小电影 | 久久精品人人做人人综合试看 | 帮老师解开蕾丝奶罩吸乳网站 | 亚洲熟妇自偷自拍另类 | 人妻少妇精品无码专区二区 | 无码国产乱人伦偷精品视频 | 夜夜高潮次次欢爽av女 | 国产精品99爱免费视频 | 人妻中文无码久热丝袜 | 国产无遮挡又黄又爽免费视频 | 国产精品国产三级国产专播 | 99精品国产综合久久久久五月天 | 大色综合色综合网站 | 成熟人妻av无码专区 | 无遮挡啪啪摇乳动态图 | 久久久久久九九精品久 | 日欧一片内射va在线影院 | 女人被男人躁得好爽免费视频 | 国内精品久久久久久中文字幕 | 激情爆乳一区二区三区 | 无套内谢的新婚少妇国语播放 | 国产无遮挡又黄又爽又色 | 亚洲精品国产精品乱码视色 | 性欧美牲交xxxxx视频 | 99视频精品全部免费免费观看 | 无码av中文字幕免费放 | 免费无码的av片在线观看 | 强开小婷嫩苞又嫩又紧视频 | 曰韩无码二三区中文字幕 | 在线成人www免费观看视频 | 熟妇女人妻丰满少妇中文字幕 | 老司机亚洲精品影院无码 | 久久久久免费看成人影片 | 大地资源网第二页免费观看 | 亚洲热妇无码av在线播放 | 亚洲熟妇色xxxxx欧美老妇y | 国产美女精品一区二区三区 | 色欲综合久久中文字幕网 | 中文字幕无线码免费人妻 | 国产女主播喷水视频在线观看 | 中文字幕色婷婷在线视频 | 欧美亚洲日韩国产人成在线播放 | 88国产精品欧美一区二区三区 | 日本熟妇大屁股人妻 | 人人爽人人澡人人高潮 | 国产特级毛片aaaaaa高潮流水 | 国产成人久久精品流白浆 | 亚洲一区二区观看播放 | 国产莉萝无码av在线播放 | 中文字幕无码日韩专区 | 国产莉萝无码av在线播放 | 少妇高潮喷潮久久久影院 | 国产成人精品一区二区在线小狼 | 麻豆av传媒蜜桃天美传媒 | 国产精品久久久久影院嫩草 | 亚洲中文字幕无码一久久区 | 亚洲另类伦春色综合小说 | 午夜福利一区二区三区在线观看 | 亚洲精品国产第一综合99久久 | 东京无码熟妇人妻av在线网址 | 国产美女极度色诱视频www | 欧美黑人乱大交 | 亚洲日韩av一区二区三区四区 | 国产精品成人av在线观看 | 国产精品鲁鲁鲁 | 无码人妻丰满熟妇区毛片18 | 日本精品少妇一区二区三区 | 黑人玩弄人妻中文在线 | 亚洲小说图区综合在线 | 狂野欧美激情性xxxx | 荫蒂被男人添的好舒服爽免费视频 | 国模大胆一区二区三区 | 久久国产精品偷任你爽任你 | 精品亚洲韩国一区二区三区 | 99视频精品全部免费免费观看 | 荡女精品导航 | 麻豆果冻传媒2021精品传媒一区下载 | 国产人妻精品一区二区三区 | 午夜时刻免费入口 | 日韩精品无码一区二区中文字幕 | 水蜜桃亚洲一二三四在线 | 嫩b人妻精品一区二区三区 | 无人区乱码一区二区三区 | 国产一区二区三区精品视频 | 久久亚洲a片com人成 | 成人综合网亚洲伊人 | 欧美性生交活xxxxxdddd | 久久久婷婷五月亚洲97号色 | 老熟女重囗味hdxx69 | 国语自产偷拍精品视频偷 | 国产成人无码午夜视频在线观看 | 精品无码国产自产拍在线观看蜜 | 久久zyz资源站无码中文动漫 | 狠狠色噜噜狠狠狠7777奇米 | 久久久久久国产精品无码下载 | 粉嫩少妇内射浓精videos | 久久午夜无码鲁丝片秋霞 | а天堂中文在线官网 | 国产女主播喷水视频在线观看 | 中文字幕无码免费久久99 | 4hu四虎永久在线观看 | 漂亮人妻洗澡被公强 日日躁 | 国产乱人偷精品人妻a片 | 色老头在线一区二区三区 | 亚洲精品午夜无码电影网 | 精品 日韩 国产 欧美 视频 | 人人超人人超碰超国产 | 狠狠色噜噜狠狠狠狠7777米奇 | 樱花草在线社区www | 日日天干夜夜狠狠爱 | 无码中文字幕色专区 | 中文无码精品a∨在线观看不卡 | 中文字幕无码视频专区 | 熟女少妇在线视频播放 | 亚洲自偷自偷在线制服 | 国产美女极度色诱视频www | 日韩人妻无码一区二区三区久久99 | 丝袜 中出 制服 人妻 美腿 | 国产九九九九九九九a片 | 丰满妇女强制高潮18xxxx | 一本久道久久综合婷婷五月 | 亚洲天堂2017无码 | 国产网红无码精品视频 | 精品人妻中文字幕有码在线 | 无码午夜成人1000部免费视频 | 1000部夫妻午夜免费 | 无码国产色欲xxxxx视频 | 欧洲熟妇色 欧美 | 国内精品人妻无码久久久影院蜜桃 | 99久久久国产精品无码免费 | 免费乱码人妻系列无码专区 | 精品人妻人人做人人爽夜夜爽 | 中文无码伦av中文字幕 | 国产精品久久久久9999小说 | 夜夜高潮次次欢爽av女 | 高潮毛片无遮挡高清免费视频 | 日本一区二区三区免费高清 | 日韩av激情在线观看 | 欧美日本免费一区二区三区 | 天天做天天爱天天爽综合网 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 娇妻被黑人粗大高潮白浆 | 精品欧美一区二区三区久久久 | 中国大陆精品视频xxxx | 欧美亚洲国产一区二区三区 | 少妇久久久久久人妻无码 | 亚洲欧美精品aaaaaa片 | 婷婷色婷婷开心五月四房播播 | 3d动漫精品啪啪一区二区中 | 精品乱子伦一区二区三区 | 亚洲无人区午夜福利码高清完整版 | 爽爽影院免费观看 | ass日本丰满熟妇pics | 55夜色66夜色国产精品视频 | 欧美兽交xxxx×视频 | 欧美黑人乱大交 | 小sao货水好多真紧h无码视频 | 男女爱爱好爽视频免费看 | 亚洲综合无码一区二区三区 | 国产午夜无码视频在线观看 | 国内丰满熟女出轨videos | 国产精品香蕉在线观看 | 中文字幕无码视频专区 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 中文字幕无线码免费人妻 | 亚洲大尺度无码无码专区 | 蜜桃视频插满18在线观看 | 成人动漫在线观看 | 国产超级va在线观看视频 | 婷婷六月久久综合丁香 | 亚洲区小说区激情区图片区 | 久久国产精品二国产精品 | 国产极品视觉盛宴 | 日日橹狠狠爱欧美视频 | 中国女人内谢69xxxx | 久久精品国产一区二区三区肥胖 | 色情久久久av熟女人妻网站 | 日韩精品无码一本二本三本色 | 久久国产精品精品国产色婷婷 | 曰韩无码二三区中文字幕 | 亚洲性无码av中文字幕 | 性色av无码免费一区二区三区 | 国产乱人伦偷精品视频 | 国产性生交xxxxx无码 | 日韩av激情在线观看 | 欧洲熟妇精品视频 | 国产一区二区三区日韩精品 | 欧美一区二区三区视频在线观看 | 人人爽人人爽人人片av亚洲 | 老子影院午夜精品无码 | 精品亚洲韩国一区二区三区 | 欧美老人巨大xxxx做受 | 无码成人精品区在线观看 | yw尤物av无码国产在线观看 | 俺去俺来也www色官网 | 久久久国产一区二区三区 | 日韩精品乱码av一区二区 | 欧美乱妇无乱码大黄a片 | 精品一区二区三区无码免费视频 | 亚洲国产精品美女久久久久 | 三上悠亚人妻中文字幕在线 | 激情人妻另类人妻伦 | 老子影院午夜精品无码 | 国产精品欧美成人 | 无码人妻丰满熟妇区毛片18 | 俺去俺来也www色官网 | 欧美freesex黑人又粗又大 | 内射巨臀欧美在线视频 | a片免费视频在线观看 | 国产欧美亚洲精品a | 青青久在线视频免费观看 | 亚洲成在人网站无码天堂 | 人妻天天爽夜夜爽一区二区 | 妺妺窝人体色www婷婷 | 午夜精品久久久久久久 | 日韩欧美成人免费观看 | 国精产品一区二区三区 | 人妻中文无码久热丝袜 | 东京一本一道一二三区 | 精品国产aⅴ无码一区二区 | 色综合久久久无码网中文 | 高潮毛片无遮挡高清免费视频 | 国产午夜福利100集发布 | 欧美日本免费一区二区三区 | 免费无码的av片在线观看 | 丰满少妇人妻久久久久久 | 国产真实夫妇视频 | 欧美日本免费一区二区三区 | 丁香花在线影院观看在线播放 | 欧美老人巨大xxxx做受 | 天海翼激烈高潮到腰振不止 | 色综合视频一区二区三区 | av无码电影一区二区三区 | 国产两女互慰高潮视频在线观看 | 老子影院午夜精品无码 | 色欲人妻aaaaaaa无码 | www一区二区www免费 | 欧美肥老太牲交大战 | 一区二区三区乱码在线 | 欧洲 | 亚洲а∨天堂久久精品2021 | 久久久久久亚洲精品a片成人 | 久久久久成人精品免费播放动漫 | 日本护士毛茸茸高潮 | 久久久精品456亚洲影院 | 亚洲精品美女久久久久久久 | 成人精品视频一区二区三区尤物 | 亚洲国产精品美女久久久久 | 妺妺窝人体色www在线小说 | 动漫av一区二区在线观看 | 扒开双腿疯狂进出爽爽爽视频 | 国产九九九九九九九a片 | 强开小婷嫩苞又嫩又紧视频 | 亚洲人成网站免费播放 | 亚洲乱亚洲乱妇50p | 老熟妇仑乱视频一区二区 | 国产精品视频免费播放 | 亚洲国产精品久久久久久 | 在线精品亚洲一区二区 | 蜜桃无码一区二区三区 | 日韩人妻系列无码专区 | 丰满人妻一区二区三区免费视频 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 131美女爱做视频 | 97人妻精品一区二区三区 | 在线观看免费人成视频 | 久久综合九色综合欧美狠狠 | 丰满诱人的人妻3 | 日韩少妇内射免费播放 | 亚洲中文字幕av在天堂 | 日韩精品无码一区二区中文字幕 | 亚洲中文字幕成人无码 | 麻豆果冻传媒2021精品传媒一区下载 | 色诱久久久久综合网ywww | 色综合久久久久综合一本到桃花网 | 乱码午夜-极国产极内射 | 香蕉久久久久久av成人 | 日韩精品成人一区二区三区 | 日本一本二本三区免费 | 亚洲国产精品无码一区二区三区 | 无码av岛国片在线播放 | 欧美人与动性行为视频 | 俺去俺来也www色官网 | 一个人免费观看的www视频 | 成人影院yy111111在线观看 | 狠狠色欧美亚洲狠狠色www | 午夜精品一区二区三区在线观看 | 人妻插b视频一区二区三区 | 国产亚洲精品久久久久久 | 国产婷婷色一区二区三区在线 | 精品一区二区三区波多野结衣 | 精品国产一区二区三区四区在线看 | 国产亚洲tv在线观看 | 日韩在线不卡免费视频一区 | 国产精品久久久久久无码 | 一本大道久久东京热无码av | 亚洲国产av美女网站 | 免费人成在线观看网站 | 玩弄人妻少妇500系列视频 | 亚洲一区二区三区含羞草 | 99久久久国产精品无码免费 | 婷婷五月综合激情中文字幕 | 色综合视频一区二区三区 | 国内老熟妇对白xxxxhd | 狂野欧美性猛交免费视频 | 蜜臀av在线播放 久久综合激激的五月天 | 久久午夜夜伦鲁鲁片无码免费 | 永久免费观看美女裸体的网站 | 牲欲强的熟妇农村老妇女 | 亚洲精品国偷拍自产在线观看蜜桃 | 丰满岳乱妇在线观看中字无码 | 色婷婷欧美在线播放内射 | 在线 国产 欧美 亚洲 天堂 | 少妇无码av无码专区在线观看 | 国内少妇偷人精品视频免费 | 天堂а√在线地址中文在线 | 人人妻人人澡人人爽欧美一区九九 | 久久久久成人精品免费播放动漫 | 无码精品国产va在线观看dvd | 天堂亚洲免费视频 | 四虎影视成人永久免费观看视频 | 99久久久无码国产精品免费 | 久久精品人人做人人综合试看 | 国产精品18久久久久久麻辣 | 在线观看国产午夜福利片 | 欧美国产日韩久久mv | 久久99精品久久久久久动态图 | 又大又硬又黄的免费视频 | 成人亚洲精品久久久久 | 激情内射日本一区二区三区 | 未满成年国产在线观看 | 成人亚洲精品久久久久 | 无套内射视频囯产 | 日韩av无码一区二区三区不卡 | 国内精品人妻无码久久久影院 | 无码成人精品区在线观看 | av人摸人人人澡人人超碰下载 | 2020久久超碰国产精品最新 | 亚洲一区二区三区国产精华液 | 亚洲国产av美女网站 | 在线a亚洲视频播放在线观看 | 日日麻批免费40分钟无码 | 国产农村妇女高潮大叫 | 蜜桃视频韩日免费播放 | 永久黄网站色视频免费直播 | 18精品久久久无码午夜福利 | 久久国产精品精品国产色婷婷 | 亚洲中文字幕在线观看 | 国产激情一区二区三区 | 日本熟妇乱子伦xxxx | 奇米影视7777久久精品人人爽 | 欧美人妻一区二区三区 | 在线观看欧美一区二区三区 | 国产三级久久久精品麻豆三级 | 色偷偷人人澡人人爽人人模 | 国产成人无码av一区二区 | 国产乱人伦偷精品视频 | 在线播放无码字幕亚洲 | 中文字幕 亚洲精品 第1页 | 国产无遮挡又黄又爽免费视频 | 精品久久8x国产免费观看 | 亚洲国产精品一区二区第一页 | 国产在线精品一区二区高清不卡 | 玩弄人妻少妇500系列视频 | 一本色道久久综合亚洲精品不卡 | 成人一在线视频日韩国产 | 色综合天天综合狠狠爱 | 国产小呦泬泬99精品 | 久久99精品久久久久婷婷 | 国产特级毛片aaaaaa高潮流水 | 福利一区二区三区视频在线观看 | 色婷婷av一区二区三区之红樱桃 | 精品无人国产偷自产在线 | 撕开奶罩揉吮奶头视频 | 熟妇人妻激情偷爽文 | 人人超人人超碰超国产 | 人妻互换免费中文字幕 | 久久综合九色综合97网 | 色婷婷久久一区二区三区麻豆 | 国产亚洲精品久久久久久 | 野外少妇愉情中文字幕 | 中文字幕日产无线码一区 | 蜜臀av在线观看 在线欧美精品一区二区三区 | 狠狠色丁香久久婷婷综合五月 | 国产97人人超碰caoprom | 欧美 日韩 人妻 高清 中文 | 2019nv天堂香蕉在线观看 | 久久精品中文闷骚内射 | 天下第一社区视频www日本 | 久久五月精品中文字幕 | 久精品国产欧美亚洲色aⅴ大片 | 国产综合色产在线精品 | 亚洲一区二区三区香蕉 | 精品国产麻豆免费人成网站 | 亚洲国精产品一二二线 | 性欧美牲交xxxxx视频 | 无码av最新清无码专区吞精 | 日本一本二本三区免费 | 成人综合网亚洲伊人 | 蜜桃臀无码内射一区二区三区 | v一区无码内射国产 | 亚洲s色大片在线观看 | 全球成人中文在线 | 国产电影无码午夜在线播放 | 国产香蕉97碰碰久久人人 | 国产人妻人伦精品1国产丝袜 | 激情内射日本一区二区三区 | 精品国产精品久久一区免费式 | 伊在人天堂亚洲香蕉精品区 | 国产高清av在线播放 | 日本精品人妻无码77777 天堂一区人妻无码 | 无码国产色欲xxxxx视频 | 亚洲日韩av一区二区三区四区 | 亚洲а∨天堂久久精品2021 | 夜夜夜高潮夜夜爽夜夜爰爰 | 国产成人无码av片在线观看不卡 | 亚洲国产一区二区三区在线观看 | 天天摸天天透天天添 | 99精品无人区乱码1区2区3区 | 国产亚洲精品久久久久久国模美 | 老熟女乱子伦 | 天下第一社区视频www日本 | 国产精品国产三级国产专播 | 国产又粗又硬又大爽黄老大爷视 | 久久综合网欧美色妞网 | 亚洲日韩乱码中文无码蜜桃臀网站 | 日韩 欧美 动漫 国产 制服 | 久久久久人妻一区精品色欧美 | 国产两女互慰高潮视频在线观看 | 1000部夫妻午夜免费 | 无遮挡国产高潮视频免费观看 | 激情内射日本一区二区三区 | 精品人人妻人人澡人人爽人人 | 老熟妇仑乱视频一区二区 | 天堂а√在线地址中文在线 | 巨爆乳无码视频在线观看 | 亚洲国产精品一区二区美利坚 | 中文字幕无码日韩欧毛 | 亚洲精品综合五月久久小说 | 国产色精品久久人妻 | 内射白嫩少妇超碰 | 亚洲欧美综合区丁香五月小说 | 少妇激情av一区二区 | 全球成人中文在线 | 强奷人妻日本中文字幕 | 图片区 小说区 区 亚洲五月 | 日本一区二区三区免费高清 | 国产精品免费大片 | 丁香花在线影院观看在线播放 | 日本爽爽爽爽爽爽在线观看免 | 亚洲精品中文字幕乱码 | 欧美人与动性行为视频 | 国产卡一卡二卡三 | 精品久久久无码中文字幕 | 国产成人精品久久亚洲高清不卡 | 男女猛烈xx00免费视频试看 | √8天堂资源地址中文在线 | 欧美性生交xxxxx久久久 | 偷窥日本少妇撒尿chinese | 亚洲春色在线视频 | av香港经典三级级 在线 | √8天堂资源地址中文在线 | 老子影院午夜精品无码 | 日本一本二本三区免费 | 亚洲精品一区国产 | 久久久久久久久蜜桃 | 97久久超碰中文字幕 | 久久国产精品_国产精品 | 精品国偷自产在线视频 | 亚洲日韩一区二区三区 | 国产激情艳情在线看视频 | 久久精品无码一区二区三区 | 精品 日韩 国产 欧美 视频 | 国产亚洲人成a在线v网站 | 日本一卡2卡3卡四卡精品网站 | 亚洲人成影院在线观看 | 99久久久国产精品无码免费 | 国产绳艺sm调教室论坛 | 久久亚洲a片com人成 | 狂野欧美激情性xxxx | 国产激情精品一区二区三区 | 夜夜高潮次次欢爽av女 | 中文字幕无码av波多野吉衣 | 日本一区二区更新不卡 | 精品人人妻人人澡人人爽人人 | 又色又爽又黄的美女裸体网站 | 国产在线无码精品电影网 | 国产av久久久久精东av | 久久久精品国产sm最大网站 | 中文字幕av伊人av无码av | а√天堂www在线天堂小说 | 老子影院午夜伦不卡 | 亚洲精品一区三区三区在线观看 | 麻豆av传媒蜜桃天美传媒 | 精品国产一区av天美传媒 | 国产麻豆精品精东影业av网站 | 午夜福利试看120秒体验区 | 亚洲一区二区三区 | 国产精品久久久一区二区三区 | 帮老师解开蕾丝奶罩吸乳网站 | 少妇的肉体aa片免费 | 伊人久久大香线焦av综合影院 | 国产精品无码一区二区桃花视频 | 国产97在线 | 亚洲 | 欧美丰满熟妇xxxx | 色妞www精品免费视频 | 成人一在线视频日韩国产 | 日本一区二区三区免费播放 | 欧美日韩亚洲国产精品 | 一本久久a久久精品vr综合 | 国产av一区二区精品久久凹凸 | 伊在人天堂亚洲香蕉精品区 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 麻豆国产丝袜白领秘书在线观看 | 一本久久伊人热热精品中文字幕 | 无码人妻丰满熟妇区毛片18 | 麻豆国产人妻欲求不满谁演的 | 日韩人妻少妇一区二区三区 | 欧美日韩在线亚洲综合国产人 | 欧美人与禽zoz0性伦交 | 亚洲中文字幕va福利 | 国产手机在线αⅴ片无码观看 | 性色av无码免费一区二区三区 | 国产精品久久国产精品99 | 纯爱无遮挡h肉动漫在线播放 | 久久精品国产99精品亚洲 | 成人精品视频一区二区 | 中文字幕av无码一区二区三区电影 | 国产一区二区三区精品视频 | 国产99久久精品一区二区 | 日韩精品无码免费一区二区三区 | 天下第一社区视频www日本 | 蜜臀aⅴ国产精品久久久国产老师 | 色一情一乱一伦一区二区三欧美 | 精品国产成人一区二区三区 | 狠狠色欧美亚洲狠狠色www | 精品国产福利一区二区 | 午夜精品一区二区三区的区别 | 麻豆av传媒蜜桃天美传媒 | 中文字幕日韩精品一区二区三区 | 亚洲午夜福利在线观看 | 欧洲vodafone精品性 | 成人精品天堂一区二区三区 | 国产极品美女高潮无套在线观看 | 无码国模国产在线观看 | 亚洲 激情 小说 另类 欧美 | 亚洲自偷自拍另类第1页 | 国产av一区二区三区最新精品 | 欧美人妻一区二区三区 | 在线 国产 欧美 亚洲 天堂 | 又黄又爽又色的视频 | 沈阳熟女露脸对白视频 | 久青草影院在线观看国产 | 国产激情艳情在线看视频 | 久久综合狠狠综合久久综合88 | 色综合天天综合狠狠爱 | 最新国产麻豆aⅴ精品无码 | 国产精华av午夜在线观看 | 免费人成在线视频无码 | 久久精品国产精品国产精品污 | 九月婷婷人人澡人人添人人爽 | 搡女人真爽免费视频大全 | 国产手机在线αⅴ片无码观看 | 狂野欧美性猛xxxx乱大交 | 女人被男人躁得好爽免费视频 |