亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實戰(zhàn)洞察。

STM32 HAL庫移植MPU6050 DMP驅(qū)動:姿態(tài)解算實戰(zhàn)指南

STM32 HAL庫移植MPU6050 DMP驅(qū)動:姿態(tài)解算實戰(zhàn)指南 1. 項目概述為什么需要移植DMP庫如果你正在用STM32做四軸飛行器、平衡車或者任何需要姿態(tài)感知的項目MPU6050這個六軸傳感器三軸加速度計三軸陀螺儀大概率是你的老朋友。但拿到原始數(shù)據(jù)后姿態(tài)解算這塊硬骨頭——卡爾曼濾波、互補(bǔ)濾波、四元數(shù)、歐拉角——是不是讓你頭疼不已自己寫算法調(diào)參數(shù)光是處理零點漂移和噪聲就夠折騰幾個通宵了。這就是DMPDigital Motion Processor庫的價值所在。它本質(zhì)上是MPU6050芯片內(nèi)部的一個協(xié)處理器廠家InvenSense已經(jīng)把復(fù)雜的姿態(tài)解算算法固化在里面了。你只需要把DMP庫移植到你的MCU上它就能在傳感器內(nèi)部實時解算出穩(wěn)定的四元數(shù)或歐拉角通過I2C直接讀取結(jié)果極大減輕了主控MCU的運(yùn)算負(fù)擔(dān)也省去了自己調(diào)試算法的巨大工作量。用上DMP就相當(dāng)于給MPU6050裝上了“自動駕駛”你直接獲取成熟、穩(wěn)定的姿態(tài)數(shù)據(jù)就行。然而官方提供的DMP驅(qū)動庫示例代碼多是基于標(biāo)準(zhǔn)外設(shè)庫SPL或舊版IDE的。現(xiàn)在STM32生態(tài)主推HAL庫其硬件抽象層更高初始化、讀寫接口與SPL有顯著差異。很多朋友在移植時卡在了I2C通信、中斷配置或者庫文件路徑設(shè)置上導(dǎo)致DMP初始化失敗讀出來的數(shù)據(jù)全是0。網(wǎng)上資料零散新舊混雜跟著做常常掉坑里。這篇內(nèi)容就是基于我多次在STM32F1、F4系列上成功移植的經(jīng)驗為你梳理出一條清晰、可復(fù)現(xiàn)的HAL庫移植路徑。我的目標(biāo)很明確不深究DMP內(nèi)部數(shù)學(xué)原理只聚焦于“如何把官方庫在HAL環(huán)境下跑起來”這個工程問題。只要你手頭有STM32開發(fā)板以最常見的STM32F103C8T6為例、一個MPU6050模塊GY-521以及STM32CubeIDE或Keil MDK環(huán)境跟著步驟走就能成功讀出俯仰角pitch、橫滾角roll和偏航角yaw。2. 核心思路與準(zhǔn)備工作理解移植的本質(zhì)在動手寫代碼之前我們必須搞清楚移植DMP庫到底在做什么。這能讓你在遇到問題時知道該從哪里排查。2.1 DMP庫移植的核心任務(wù)移植的核心是搭建一個橋梁連接兩個部分MPU6050官方DMP庫文件這是一組由InvenSense提供的C語言源文件和頭文件主要是inv_mpu.c、inv_mpu_dmp_motion_driver.c、mpu6050.h等。它們包含了與DMP固件交互、加載、運(yùn)行的所有底層邏輯。但庫里的I2C讀寫函數(shù)是“空殼”或基于特定平臺的需要你來實現(xiàn)。你的STM32 HAL工程你使用STM32CubeMX生成的基于HAL庫的工程。它提供了硬件I2C的初始化配置MX_I2C1_Init和一套標(biāo)準(zhǔn)的HAL_I2C讀寫API如HAL_I2C_Mem_Write。因此移植工作 ≈ 實現(xiàn)DMP庫所需的底層I2C驅(qū)動接口并將其整合到你的HAL工程中。具體來說你需要修改或提供以下幾個關(guān)鍵函數(shù)i2c_write 向MPU6050的指定寄存器寫入數(shù)據(jù)。i2c_read 從MPU6050的指定寄存器讀取數(shù)據(jù)。delay_ms 毫秒級延時函數(shù)。get_ms 獲取系統(tǒng)毫秒時間戳用于某些超時判斷。2.2 材料與軟件準(zhǔn)備清單工欲善其事必先利其器。請確保你已準(zhǔn)備好以下物品和軟件環(huán)境硬件部分STM32最小系統(tǒng)板 如STM32F103C8T6BluePill、STM32F407VET6等。本文以F103為例但HAL庫的移植方法通用。MPU6050模塊 最常見的GY-521模塊。注意模塊上的電平轉(zhuǎn)換芯片確保其VCC與你的MCU邏輯電平匹配通常3.3V。連接線 杜邦線若干。ST-Link調(diào)試器 用于程序下載和調(diào)試。這是排查問題的利器強(qiáng)烈建議使用。軟件部分STM32CubeMX 用于圖形化配置MCU引腳、時鐘、I2C等外設(shè)并生成HAL庫工程骨架。開發(fā)環(huán)境 Keil MDK-ARMuVision5或 STM32CubeIDE 任選其一。本文操作會兼顧兩者進(jìn)行說明。DMP驅(qū)動庫文件 這是最關(guān)鍵的材料。你可以從InvenSense的官方開發(fā)者網(wǎng)站、MPU6050數(shù)據(jù)手冊的應(yīng)用筆記頁面或者一些開源項目如i2cdevlib中獲取。通常是一個包含inv_mpu.c、inv_mpu_dmp_motion_driver.c、dmpKey.h、dmpmap.h等文件的壓縮包。注意獲取正確的庫文件網(wǎng)絡(luò)上流傳的DMP庫版本眾多有些是針對特定型號如MPU9150裁剪過的。尋找名為MPU6050_6Axis_MotionApps_V6.12或類似版本的庫通常比較完整。如果找不到一個變通的方法是使用Arduino社區(qū)流行的MPU6050_light庫中的相關(guān)文件但可能需要更多適配工作。本文假設(shè)你已獲得一個相對完整的DMP庫文件包。硬件連接這是最容易出錯的第一步務(wù)必核對三遍MPU6050 (GY-521) STM32F103C8T6 VCC - 3.3V GND - GND SCL - PB6 (I2C1_SCL) SDA - PB7 (I2C1_SDA)AD0引腳 接GND表示MPU6050的I2C從機(jī)地址為0x68接VCC則地址為0x69。我們通常接GND。INT引腳 中斷引腳用于DMP數(shù)據(jù)準(zhǔn)備好時觸發(fā)MCU中斷。在初步調(diào)試階段我們可以先不使用中斷采用輪詢方式。若要追求效率可以連接到MCU的任一GPIO如PA0并配置為外部中斷模式。3. 工程創(chuàng)建與底層驅(qū)動適配這一節(jié)我們將從零開始創(chuàng)建一個HAL工程并完成DMP庫底層驅(qū)動的“嫁接”手術(shù)。3.1 使用STM32CubeMX創(chuàng)建基礎(chǔ)工程打開STM32CubeMX新建工程選擇你的MCU型號例如STM32F103C8T6。配置系統(tǒng)核心SYS 在Debug下拉菜單中根據(jù)你的調(diào)試器選擇Serial WireST-Link使用。這會影響SWDIO和SWCLK引腳。配置時鐘RCC 將HSE高速外部時鐘設(shè)置為Crystal/Ceramic Resonator如果你的板子有外部晶振的話。然后在Clock Configuration標(biāo)簽頁將系統(tǒng)時鐘HCLK設(shè)置到MCU的最高主頻對于F103通常設(shè)為72MHz。穩(wěn)定的時鐘是I2C通信的基礎(chǔ)。配置I2C1在引腳圖界面找到PB6和PB7分別設(shè)置為I2C1_SCL和I2C1_SDA。在左側(cè)外設(shè)列表找到I2C1將Mode設(shè)置為I2C。在Parameter Settings標(biāo)簽頁主要關(guān)注兩個參數(shù)I2C Speed Mode: 選擇Standard Mode標(biāo)準(zhǔn)模式100kHz或Fast Mode400kHz。初次調(diào)試強(qiáng)烈建議選擇Standard Mode(100kHz)成功率更高通信更穩(wěn)定。I2C Clock Speed (Hz): 當(dāng)選擇標(biāo)準(zhǔn)模式時這里會自動計算出一個值例如100000。保持默認(rèn)即可。配置一個串口USART1 為了打印調(diào)試信息我們需要一個串口。將PA9設(shè)置為USART1_TXPA10設(shè)置為USART1_RX。在USART1的參數(shù)設(shè)置中波特率設(shè)為115200字長8 Bits無校驗1停止位。生成工程代碼轉(zhuǎn)到Project Manager標(biāo)簽頁。設(shè)置Project Name和Project Location。選擇你的Toolchain / IDEMDK-ARM V5 或 STM32CubeIDE。在Code Generator部分務(wù)必勾選Generate peripheral initialization as a pair of ‘.c/.h’ files per peripheral。這會讓代碼結(jié)構(gòu)更清晰。點擊GENERATE CODE生成工程并打開你的IDE。3.2 將DMP庫文件添加到工程在IDE中我們需要把下載的DMP庫文件導(dǎo)入到工程里并建立正確的包含路徑。在工程目錄下創(chuàng)建文件夾 在你的工程根目錄與Core、Drivers同級新建一個文件夾命名為MotionDriver或MPU6050。復(fù)制庫文件 將你獲取的DMP庫文件至少包括inv_mpu.cinv_mpu_dmp_motion_driver.cinv_mpu_dmp_motion_driver.hmpu6050.h以及dmpKey.hdmpmap.h等復(fù)制到這個新建的文件夾中。在IDE中添加文件組和包含路徑Keil MDK在Project窗口右鍵點擊Target 1選擇Add Group...命名為MotionDriver。右鍵點擊新建的MotionDriver組選擇Add Existing Files to Group...將剛才復(fù)制到文件夾里的.c源文件添加進(jìn)來。右鍵點擊工程名選擇Options for Target...轉(zhuǎn)到C/C標(biāo)簽頁。在Include Paths一欄添加你創(chuàng)建的MotionDriver文件夾路徑。STM32CubeIDE在Project Explorer中右鍵點擊工程名選擇New-Folder創(chuàng)建一個名為MotionDriver的虛擬文件夾或鏈接到物理文件夾。將庫文件拖入該文件夾或在文件夾上右鍵Import-File System導(dǎo)入。右鍵點擊工程名選擇Properties。在C/C Build-Settings-Tool Settings-MCU GCC Compiler-Includes中添加MotionDriver文件夾的路徑。3.3 實現(xiàn)底層接口函數(shù)關(guān)鍵步驟這是移植的核心。我們需要修改DMP庫中的一個文件通常是inv_mpu.c來填充HAL庫的I2C讀寫函數(shù)。找到inv_mpu.c文件搜索i2c_write和i2c_read函數(shù)。它們通常被定義為__weak弱函數(shù)或者以空函數(shù)的形式存在。我們需要用HAL庫的函數(shù)來實現(xiàn)它們。方案一修改inv_mpu.c推薦直接明了在inv_mpu.c文件的開頭添加HAL庫的頭文件#include “main.h” // 這包含了 stm32f1xx_hal.h然后找到或?qū)崿F(xiàn)以下函數(shù)// 替換或?qū)崿F(xiàn) i2c_write 函數(shù) int i2c_write(unsigned char slave_addr, unsigned char reg_addr, unsigned char length, unsigned char const *data) { HAL_StatusTypeDef status; status HAL_I2C_Mem_Write(hi2c1, // 你的I2C句柄在main.c中定義為 hi2c1 slave_addr 1, // HAL庫需要7位地址左移1位 reg_addr, I2C_MEMADD_SIZE_8BIT, // 寄存器地址是8位 (uint8_t*)data, length, HAL_MAX_DELAY); // 使用最大延時等待傳輸完成 return (status HAL_OK) ? 0 : -1; // DMP庫期望成功返回0失敗返回-1 } // 替換或?qū)崿F(xiàn) i2c_read 函數(shù) int i2c_read(unsigned char slave_addr, unsigned char reg_addr, unsigned char length, unsigned char *data) { HAL_StatusTypeDef status; status HAL_I2C_Mem_Read(hi2c1, slave_addr 1, reg_addr, I2C_MEMADD_SIZE_8BIT, data, length, HAL_MAX_DELAY); return (status HAL_OK) ? 0 : -1; }方案二在main.c中重寫保持庫文件純凈如果你不想修改原始的inv_mpu.c文件可以在main.c中重新實現(xiàn)這些函數(shù)并確保它們被正確鏈接。但需要注意函數(shù)聲明和編譯器的鏈接規(guī)則對于新手方案一更簡單可靠。實現(xiàn)延時和獲取時間戳函數(shù)同樣在inv_mpu.c中找到delay_ms和get_ms函數(shù)或類似函數(shù)用HAL庫的函數(shù)實現(xiàn)// 毫秒延時 void delay_ms(unsigned long num_ms) { HAL_Delay(num_ms); // 直接調(diào)用HAL的延時函數(shù) } // 獲取系統(tǒng)滴答計數(shù)毫秒 unsigned long get_ms(unsigned long *count) { *count HAL_GetTick(); // HAL的滴答計數(shù)器每毫秒加1 return 0; }實操心得I2C地址左移問題這是移植中最常見的坑MPU6050的7位I2C地址是0x68AD0接GND。但HAL庫的HAL_I2C_Mem_Write/Read函數(shù)內(nèi)部會自動處理讀寫位即最低位所以傳入的從機(jī)地址需要是7位地址左移1位后的值即0x68 1 0xD0。很多移植失敗就是因為這里沒搞清楚直接傳了0x68導(dǎo)致通信失敗。上面的代碼slave_addr 1就完成了這個操作。3.4 解決編譯錯誤與警告添加文件并修改代碼后編譯工程你可能會遇到一些錯誤和警告。常見問題及解決方法#include “mpu6050.h”路徑錯誤 檢查inv_mpu.c或inv_mpu_dmp_motion_driver.c中頭文件包含路徑。如果它們寫的是#include “mpu6050.h”而你的mpu6050.h在MotionDriver文件夾通常需要改為#include “mpu6050.h”并確保包含路徑已添加。更穩(wěn)妥的做法是使用相對路徑或統(tǒng)一在IDE中設(shè)置包含路徑。數(shù)據(jù)類型重定義 DMP庫中可能定義了uint8_t、int16_t等類型與STM32標(biāo)準(zhǔn)庫定義沖突。解決方法 確保在DMP庫的頭文件中包含了stdint.h或“stm32f1xx_hal.h”并且避免重復(fù)定義。通常注釋掉庫文件中自己的類型定義即可。未使用的參數(shù)警告 DMP庫中的某些函數(shù)參數(shù)可能未被使用編譯器會產(chǎn)生-Wunused-parameter警告。這通常不影響功能可以在IDE的編譯器設(shè)置中降低警告等級或者在函數(shù)開始處添加(void)parameter_name;來顯式忽略該參數(shù)。4. DMP庫的初始化與數(shù)據(jù)讀取流程底層驅(qū)動適配好后我們就可以在主程序中調(diào)用DMP庫的高級API進(jìn)行初始化和數(shù)據(jù)讀取了。4.1 主程序初始化步驟詳解在main.c的/* USER CODE BEGIN 2 */和/* USER CODE END 2 */之間即外設(shè)初始化完成后主循環(huán)開始前編寫DMP初始化代碼。這是一個標(biāo)準(zhǔn)的流程/* USER CODE BEGIN 2 */ uint8_t dev_id; // 設(shè)備ID int8_t result; // 函數(shù)執(zhí)行結(jié)果 // 1. 初始化MPU6050復(fù)位、喚醒、設(shè)置時鐘源等 result mpu_init(NULL); // 參數(shù)為NULL表示使用默認(rèn)I2C地址(0x68) if (result ! 0) { printf(“mpu_init failed! Error code: %d\r\n”, result); Error_Handler(); } // 2. 驗證設(shè)備ID確認(rèn)通信正常 mpu_get_device_id(dev_id); printf(“MPU6050 Device ID: 0x%02X\r\n”, dev_id); // 正確應(yīng)為0x68或0x69 if (dev_id ! 0x68 dev_id ! 0x69) { // 根據(jù)你的AD0接線判斷 printf(“Wrong Device ID! Check I2C connection.\r\n”); Error_Handler(); } // 3. 設(shè)置傳感器量程根據(jù)你的應(yīng)用選擇 mpu_set_gyro_fsr(2000); // 陀螺儀量程: ±2000 °/s mpu_set_accel_fsr(2); // 加速度計量程: ±2g (平衡車常用) 或 ±4g, ±8g, ±16g // 4. 設(shè)置數(shù)字低通濾波器(DLPF)帶寬 mpu_set_lpf(42); // 帶寬42Hz數(shù)值越小濾波越強(qiáng)延遲越大 // 5. 設(shè)置采樣率 mpu_set_sample_rate(100); // 設(shè)置采樣率為100Hz // 6. 加載DMP固件最關(guān)鍵的一步 result dmp_load_motion_driver_firmware(); if (result ! 0) { printf(“dmp_load_motion_driver_firmware failed! Error: %d\r\n”, result); Error_Handler(); } // 7. 寫入DMP配置方向矩陣、特征輸出等 // 這一步通常需要調(diào)用一系列 dmp_set_xxx 函數(shù)。 // 一個常見的配置是使能6軸姿態(tài)加速度計陀螺儀融合 result dmp_enable_feature(DMP_FEATURE_6X_LP_QUAT | // 6軸低功耗四元數(shù) DMP_FEATURE_SEND_RAW_ACCEL | // 同時輸出原始加速度 DMP_FEATURE_SEND_RAW_GYRO | // 同時輸出原始陀螺儀 DMP_FEATURE_TAP); // 可選使能敲擊檢測 if (result ! 0) { printf(“dmp_enable_feature failed! Error: %d\r\n”, result); Error_Handler(); } // 8. 設(shè)置DMP輸出速率應(yīng)與采樣率匹配或為其整數(shù)分頻 result dmp_set_fifo_rate(100); // 設(shè)置DMP輸出到FIFO的速率也為100Hz if (result ! 0) { printf(“dmp_set_fifo_rate failed! Error: %d\r\n”, result); Error_Handler(); } // 9. 最后啟動DMP result mpu_set_dmp_state(1); // 參數(shù)1為開啟 if (result ! 0) { printf(“mpu_set_dmp_state failed! Error: %d\r\n”, result); Error_Handler(); } // 10. 清零FIFO準(zhǔn)備接收數(shù)據(jù) mpu_reset_fifo(); printf(“MPU6050 DMP Init Success!\r\n”); /* USER CODE END 2 */4.2 主循環(huán)中的數(shù)據(jù)讀取與解析初始化成功后DMP會以設(shè)定的速率如100Hz將解算好的數(shù)據(jù)包推入其內(nèi)部的FIFO緩沖區(qū)。我們的任務(wù)就是定期或通過中斷去讀取這個FIFO并解析出我們需要的姿態(tài)數(shù)據(jù)。在主循環(huán)while (1)中添加以下代碼/* USER CODE BEGIN WHILE */ while (1) { uint8_t fifo_buffer[64]; // FIFO數(shù)據(jù)緩沖區(qū)大小至少為包大小 uint16_t fifo_count 0; // FIFO中等待讀取的數(shù)據(jù)字節(jié)數(shù) uint8_t more 0; // 是否還有更多數(shù)據(jù)待讀 float q0, q1, q2, q3; // 四元數(shù) float pitch, roll, yaw; // 歐拉角 // 1. 獲取當(dāng)前FIFO中存儲的數(shù)據(jù)長度字節(jié)數(shù) mpu_get_fifo_count(fifo_count); // 2. 如果FIFO中的數(shù)據(jù)足夠一個數(shù)據(jù)包大小取決于使能的特征 // 對于使能了6軸四元數(shù)和原始數(shù)據(jù)的配置一個包通常大于42字節(jié) if (fifo_count 42) { // 這個閾值需要根據(jù)你的實際配置調(diào)整 // 3. 從FIFO中讀取一個數(shù)據(jù)包 mpu_read_fifo(fifo_buffer, more); // 4. 解析數(shù)據(jù)包獲取四元數(shù) // 注意dmp_read_fifo() 函數(shù)內(nèi)部會調(diào)用mpu_read_fifo并解析 // 這里我們演示更底層的解析方式。通常使用 dmp_read_fifo 更方便。 // 假設(shè)我們直接解析原始FIFO緩沖區(qū)中的四元數(shù)數(shù)據(jù)小端格式 // 四元數(shù)在FIFO包中的偏移量和格式需參考DMP庫定義dmpmap.h // 更推薦使用庫函數(shù) long quat[4]; // 四元數(shù)用long型存儲是Q30定點數(shù)格式 unsigned long sensor_timestamp; short sensors; // 標(biāo)識哪些傳感器數(shù)據(jù)在本包中 unsigned char fifo_packet[64]; if (dmp_read_fifo(quat, NULL, NULL, sensor_timestamp, sensors, fifo_packet) 0) { // 5. 將Q30格式的四元數(shù)轉(zhuǎn)換為浮點數(shù) q0 (float)quat[0] / 1073741824.0f; // 2^30 q1 (float)quat[1] / 1073741824.0f; q2 (float)quat[2] / 1073741824.0f; q3 (float)quat[3] / 1073741824.0f; // 6. 將四元數(shù)轉(zhuǎn)換為歐拉角俯仰pitch橫滾roll偏航y(tǒng)aw單位弧度 pitch asin(-2 * q1 * q3 2 * q0 * q2); roll atan2(2 * q2 * q3 2 * q0 * q1, -2 * q1 * q1 - 2 * q2 * q2 1); yaw atan2(2 * q1 * q2 2 * q0 * q3, -2 * q2 * q2 - 2 * q3 * q3 1); // 7. 弧度轉(zhuǎn)角度可選 pitch pitch * 180.0f / 3.14159265358979f; roll roll * 180.0f / 3.14159265358979f; yaw yaw * 180.0f / 3.14159265358979f; // 8. 通過串口打印輸出 printf(“Pitch: %.2f, Roll: %.2f, Yaw: %.2f\r\n”, pitch, roll, yaw); } } // 延時或執(zhí)行其他任務(wù)避免過度占用CPU HAL_Delay(10); /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */注意事項FIFO讀取策略上面的代碼是“輪詢”方式不斷檢查FIFO長度。這簡單但效率不高。更高效的方式是使用MPU6050的INT引腳中斷。當(dāng)DMP有新的數(shù)據(jù)包準(zhǔn)備好時INT引腳會產(chǎn)生一個脈沖。你可以將這個引腳連接到STM32的外部中斷引腳配置上升沿或高電平觸發(fā)。在中斷服務(wù)函數(shù)中設(shè)置一個標(biāo)志位如dmp_data_ready 1然后在主循環(huán)中檢查這個標(biāo)志位再去讀取FIFO。這樣可以做到精確的、無延遲的數(shù)據(jù)同步并且讓MCU在等待數(shù)據(jù)時有空處理其他任務(wù)。5. 調(diào)試技巧與常見問題排查實錄即使嚴(yán)格按照步驟操作第一次成功前也難免遇到問題。這里我把自己踩過的坑和解決方法整理出來你可以像查字典一樣對照排查。5.1 初始化階段問題排查表問題現(xiàn)象可能原因排查步驟與解決方案mpu_init()失敗1. I2C物理連接錯誤線松、接反。2. I2C引腳配置錯誤未上拉、速度過快。3.I2C從機(jī)地址錯誤最常見。4. 電源問題模塊未供電或電壓不足。1.萬用表檢查測量VCC3.3V、GND、SCL/SDA電壓空閑時應(yīng)為高電平約3.3V。2.邏輯分析儀/示波器抓取I2C波形看起始信號、地址幀、ACK應(yīng)答是否正常。這是終極手段。3.打印調(diào)試在i2c_write/read函數(shù)里加入printf打印傳入的地址和狀態(tài)。確認(rèn)傳入HAL庫的地址是0xD0或0xD20x691。4.簡化測試先不移植DMP寫一個最簡單的HAL_I2C讀寫測試函數(shù)嘗試讀寫MPU6050的WHO_AM_I寄存器地址0x75其默認(rèn)返回值應(yīng)為0x68。dmp_load_motion_driver_firmware()失敗1. 之前的mpu_init等步驟已失敗。2. DMP庫文件不完整或版本不對。3. I2C通信在傳輸大量固件數(shù)據(jù)時不穩(wěn)定。4. 系統(tǒng)堆棧Stack大小不足。1. 確保mpu_init、mpu_set_xxx等函數(shù)都返回0。2. 檢查dmpKey.h和dmpmap.h是否存在且被正確包含。嘗試尋找更可靠的DMP庫源文件。3.降低I2C速度在CubeMX中將I2C速度從400kHz改為100kHz。4.增大堆棧在啟動文件或IDE的鏈接器配置中將堆Heap和棧Stack大小適當(dāng)調(diào)大例如Stack設(shè)為2048Heap設(shè)為1024。設(shè)備ID讀取正確但DMP初始化后數(shù)據(jù)全為01. DMP固件加載成功但后續(xù)配置如dmp_enable_feature失敗。2. FIFO讀取邏輯錯誤解析的偏移量不對。3. 傳感器模塊本身放置不水平初始姿態(tài)角不為0。1. 檢查dmp_enable_feature和dmp_set_fifo_rate的返回值。2.使用庫函數(shù)解析優(yōu)先使用dmp_read_fifo()這個高層函數(shù)來解析FIFO而不是自己計算偏移量。3.觀察原始數(shù)據(jù)在使能DMP前先嘗試讀取原始加速度計和陀螺儀數(shù)據(jù)看是否正常變化。確保模塊靜止時Z軸加速度約等于1g16384 LSB/g ±2g量程。4.進(jìn)行傳感器校準(zhǔn)雖然DMP有一定自校準(zhǔn)能力但上電靜止幾秒讓陀螺儀零偏穩(wěn)定能提升初始精度。5.2 數(shù)據(jù)輸出階段問題排查表問題現(xiàn)象可能原因排查步驟與解決方案歐拉角數(shù)據(jù)漂移Yaw軸尤其明顯這是MEMS陀螺儀的通病——零偏漂移。雖然DMP進(jìn)行了融合但長時間運(yùn)行尤其是Yaw軸無重力參考積分誤差會累積。1.上電校準(zhǔn)模塊上電后務(wù)必保持絕對靜止2-3秒讓DMP完成初始零偏校準(zhǔn)。代碼上可以在初始化后加長HAL_Delay(3000)。2.磁力計融合對于需要絕對航向的應(yīng)用如無人機(jī)必須融合MPU9250內(nèi)置磁力計或外接HMC5883L等磁力計為Yaw軸提供絕對參考。DMP庫也支持9軸融合但配置更復(fù)雜。3.定期重置對于非關(guān)鍵應(yīng)用可以設(shè)定運(yùn)行一段時間后在系統(tǒng)靜止時軟件重置DMP或重新初始化。角度響應(yīng)遲鈍或有滯后感數(shù)字低通濾波器DLPF帶寬設(shè)置過低或DMP輸出速率太慢。1.調(diào)整DLPFmpu_set_lpf()的參數(shù)數(shù)值越大帶寬越高延遲越小但噪聲越大。對于平衡車、四軸常用42Hz或98Hz。可以嘗試調(diào)高。2.提高采樣率mpu_set_sample_rate和dmp_set_fifo_rate同步提高如從100Hz提到200Hz。注意不能超過規(guī)定最大值通常約200Hz。3.檢查主循環(huán)速度確保你的while(1)循環(huán)執(zhí)行一次的時間遠(yuǎn)小于數(shù)據(jù)更新周期如100Hz對應(yīng)10ms。如果主循環(huán)里有耗時任務(wù)考慮用中斷方式讀取數(shù)據(jù)。角度值在某個方向始終有固定偏差1. 傳感器模塊安裝有物理傾斜。2. DMP的坐標(biāo)系與你的應(yīng)用坐標(biāo)系不匹配。1.物理調(diào)平確保模塊安裝基準(zhǔn)面與你的載體基準(zhǔn)面平行。2.軟件旋轉(zhuǎn)矩陣DMP庫允許通過dmp_set_orientation()函數(shù)設(shè)置一個旋轉(zhuǎn)矩陣來補(bǔ)償安裝差異。你需要根據(jù)模塊相對于載體的安裝方向如旋轉(zhuǎn)90度、180度計算并傳入對應(yīng)的矩陣。這是進(jìn)階操作需要理解坐標(biāo)系變換。串口打印數(shù)據(jù)導(dǎo)致系統(tǒng)卡頓printf函數(shù)重定向到串口輸出是阻塞式的且速度較慢。在100Hz下連續(xù)打印浮點數(shù)會占用大量CPU時間。1.降低打印頻率每10次或20次循環(huán)打印一次數(shù)據(jù)。2.使用DMA串口發(fā)送將串口發(fā)送改為DMA模式非阻塞。3.上位機(jī)調(diào)試考慮使用匿名的上位機(jī)、VOFA等工具通過特定協(xié)議發(fā)送二進(jìn)制數(shù)據(jù)效率遠(yuǎn)高于字符串打印。5.3 進(jìn)階優(yōu)化與穩(wěn)定性提升當(dāng)基本功能跑通后可以考慮以下優(yōu)化讓系統(tǒng)更穩(wěn)定、更專業(yè)使用中斷讀取FIFO如前所述將MPU6050的INT引腳連接到STM32的EXTI中斷引腳。在CubeMX中配置該引腳為上升沿觸發(fā)外部中斷并生成代碼。在中斷服務(wù)函數(shù)中僅設(shè)置標(biāo)志位。在主循環(huán)中查詢該標(biāo)志位然后讀取FIFO。這能實現(xiàn)精準(zhǔn)的定時數(shù)據(jù)讀取并釋放CPU。加入溫度補(bǔ)償MPU6050的零偏會隨溫度變化。雖然DMP有在線校準(zhǔn)但對于高精度應(yīng)用可以讀取芯片溫度傳感器數(shù)據(jù)建立溫度-零偏查找表或公式進(jìn)行軟件補(bǔ)償。與RTOS結(jié)合在FreeRTOS等實時操作系統(tǒng)中可以將MPU6050的數(shù)據(jù)讀取任務(wù)放在一個高優(yōu)先級的線程中通過中斷信號量來同步姿態(tài)解算放在另一個線程實現(xiàn)模塊化。校準(zhǔn)加速度計比例因子雖然DMP使用了加速度計進(jìn)行重力對齊但加速度計各軸的比例因子可能存在微小差異??梢酝ㄟ^在多個已知重力方向下靜止測量計算并補(bǔ)償這個比例因子提升傾角精度。移植成功只是第一步把它穩(wěn)定、高效地融入你的實際項目才是真正的挑戰(zhàn)。我個人的體會是嵌入式開發(fā)中傳感器調(diào)試占了大半時間而清晰的調(diào)試思路和耐心的排查比盲目嘗試代碼更重要。當(dāng)你看到串口穩(wěn)定輸出變化的角度值并且用手轉(zhuǎn)動模塊時數(shù)據(jù)能快速、平滑地跟隨那一刻的成就感就是對之前所有折騰的最好回報。最后一個小技巧在調(diào)試初期不妨把I2C時鐘速度降到最低比如50kHz雖然慢但波形穩(wěn)定能排除很多時序上的幽靈問題等一切穩(wěn)定后再逐步提速。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
九九热三级片| 色色色99| 日韩熟女视频二区| 东京太热久久久| 国产精品成人无码a v毛片| 午夜九九| 欧洲精品一区二区三区| 操碰97| 欧美十八禁视频| 欧美亚洲激情一二三| AAA久久| 99re免费视频精品全部| 操逼操逼操| 91处女在线视频| 亚洲五区熟女| 99精品无码| 色综合天天| 天天草天天日| 国产51色综合久久免费| 国产精品一区av在线| 亚洲小说视频| 97人人爱人人乐| 婷婷15月天青娱乐| 丝袜天堂| 久久超碰免费的| 女人天堂AV五区在线| 国产一级αv免费看片| 免费啪啪av| 91老女人| 91人妻少妇| 亚洲另类色综合网站| 国产青视频| 国产偷仑| 亚欧美综合| 不卡一区视频| 久久精品91| 九9精品| 久久精品夜色国产亚洲AV| 骚逼一区二区| 超碰社区97| 久久机热| 97久久综合网| 另类欧美色| 色欧美在线| 国产又长又大又粗的视频| 97情超碰色| 无卡一区=区| 人妻素股| 久9爱精品| 亚洲美腿丝袜香蕉影视欧美成人| 夜夜高潮夜夜爽夜夜爱爱一区| 97操综合| 欧美偷拍| 日熟女| 亚洲导航深夜福利| 综合激情五月丁香| 日日干日日操五月天伦理视频| 久久久久久久少妇| 国产九区| 国产精品久久久久无码Av网曝门 | 国产精品日本无码A片| 日本一级特级毛片视频| 免费看国产曰批40分钟怎么下载| 大香网站| 玖玖爱一区在线| 免费亚洲国产精品久久一区| 超碰色97| 欧美1区二区三区公司 | 97超碰色屌| 麻豆AV短剧| 影音资源男人日韩| 婷婷操视频| 男人a天堂手机在线版| 色婷久久| 欧美色图 人妻| 色香天天| 91强热人妻| 婷婷五月成人| 怡红院成人av| 91肉片| blacked精品一区国产| 五月丁香色婷婷| 丝袜制服字幕在线| 婷婷探花久久精品一区| 日韩无码a片| 九九无码| 天天做天天爱| 欧美日韩性爱无码| 97视频网站在线观看| 乱久久久| 蜜臀久久99精品久久久久久-DVD原版全| CCYY草草影院地址入口| 簧片免费看视频| 色女综合| 无码精品久久久久久亚洲| 操逼操网| 青青草乱入乱欲视频在线观看| 91精品久久久久| 亚洲va有码在线天堂| 理论久久婷婷网 8| 极品少妇久久久久| 大香蕉黄色一区| 97在线无精品| 久久久国产av美女私房| 九色97| 少好三P| 加勒比在线视频一区二区三区| 亚洲男人的天堂V| 欲香欲色综合天天伊人| 簧片免费看视频| 亚洲日产专区婷婷| 黄色片一区二区三区四区五区| 亚洲 日本 一 二 三| 蜜臀aV午夜一区二区三区| 国产亚洲深夜激情| 亚洲 欧美 综合 91| 国产AV色黄看到爽| 久久久久女教师免费一区 | 午夜福利区| 在线日韩日本亚洲国产| 天天日天天插| 小视频国产| 欧美激情超碰777| 精品午夜福利| 好吊色在线观看| 日韩有码专区| 亚洲少妇色| 伊人网高清| 激情专区综合| 99精品九九九九九九| 色青青久久影视| 日本中文字幕一区| 91快色色色色色| 激情五月天校园春色网| 簧片免费看视频| 国产美女高潮视频| 国产后入精品| 免费国产电影一区二区| 午夜操操操| 超碰在线国产| 亚洲欧美另类小说| 欧美 亚洲 另类 综合| av无线看| 亚洲人妻久久| 91黑丝美女| 小视频玖玖| 视频在线中文字幕| 日本一区三级韩国| 岛国毛片在线观看免费| 超碰偷拍| 国产精品九9| 欧美成熟性爱精品| 2017天天插| 亚洲天堂另类小说男人| 日韩欧美国产一区二区三区四区| 在线天堂资源亚洲| 麻豆性爱视频在线播放| 色噜噜综合网| 天天看天天在线精品| 东北女人性交| 亚洲熟妇综合久久久久久| 激情色色| 精品人妻1区| 亚洲九九视频| 欧美乱妇狂野欧美在线视频| 五月婷婷久久综合| 人人操我人人干| 亚洲日本大香蕉1| 黑丝少妇在线观看| 国产AV高清AV无码| 26uuu性| 91视频在线观看18| 嗯,啊。舔我逼| 懂色综合久久久| 美国一区二区三区视频| 国产辣妈在线视频福利| 啊啊啊啊啊在线| 亚洲日韩少妇一道本视频| 激情四射五月天| 日韩 国产 欧美自拍| 亚洲999综合| 国产精品麻豆成人AV艾秋| 十八禁av无码免费网站APP| 青娱乐91| 狠狠躁久久躁| se,,,亚洲欧美| 久操高青| 亚洲美乱| 色色色综合网| 九久9精品| www国产天美久久久| 亚洲精品九九九| 蜜臀va69| 久久亚洲日韩国产欧| 佐山爱中文字幕| 久久99久久99久久99人受| 日韩亚洲精品一区二区| 成人性爱AV在线免费观看| 成人怡红院| 午夜经典| 情色大香蕉| 97超碰超欧美。| 97超碰天天| 九九视品黄色| 韩日精品四区| 人妻少妇视频在线播放| 夜夜嗨一区二区| 五月天婷婷基地| 新婚人妻扶着粗大强行坐下| 国产人伦a片信息免费片| 亚洲欧美日韩二区视频| 欧美性巨大╳╳╳╳╳高跟鞋| 国产操伦| 十八禁的黄污污免费网站| 九月丁香婷婷色| 91P0RNY大屁股人妻| 97免费在线观看| 精品无吗m| 亚洲天堂男人的天堂| 9久久久久| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 私人尤物在线精品不卡| 中英熟女操女| 欧美黑人精品在线播放| 肉嘟嘟www视频在线观看高清| 99re热有精品视频国产| 亚洲精品一二区| 园内精品自拍视频在线播放| 国产久久av| 色欲蜜臀AV| 天天色综亚洲91污| 亚州精人品大香蕉| 熟妇艹鸡八| 69人妻精品丰满熟女区| 婷婷探花久久精品一区| 夜夜草天天| 秋霞成人做爱| 在线国产探花| 久久理论字幕视频| 狠日欧美| 色爱国产| 91美女在线看| 久久粉色| 天天操人人操狠狠插| A片 AV一级在线播放观看免费| www.zbzhongsen.com| 高清不卡一二三区视频......| AND人妻系列| 色婷婷淫色网| 天天干天天舔| 国产97色在线| 精品久久久久久久久久久久| 亚洲国产日韩欧美熟妇在线| 亚洲综合色男人网| 人妻无码视频一区二区三区久久| 人妻精品一区二区| 精品亚洲黄色片 国产精品导航一区二区| 中文字幕精品区先锋资源| 婷婷久草| 爱妻综合网| 91性片| 欧美精品日韩久久久九| 中文字幕精品一区二区精品| 爱妻综合网| 97欧美日韩| 色噜噜精品一区二区三| 亚洲欧美性生活| 90后后入| 欧美日韩激情无码专区| 国产九九久久久精品| 亚洲影视第一页| 91精品人| 玖玖婷婷五月天| 欧美一区二区成人一卡| 视频国产成人精品日本亚洲18| av天堂天堂av日韩| 中文久久一区| 少妇综合| 九九九久千久久激情蜜桃在线看 | 尤物视频偷拍免费| 色婷婷视频| 欧美高清无码免费视频高清版| 欧美黑人精品一区二区| 久久久久久久久久黄色网| 亚洲男人的天堂va亚洲男人社| 国产一区二区三区视频在线看| 色蜜AV| 殴美色网| 性爱av网站| 91少妇香蕉久久精品| www.色吧5.com| 亚洲国男人的天堂| 无码78| 99超级碰免费视频| 九九九九九九综合| 亚洲啪啪性视频| 日本黄色天堂| 黄片无码在线制服| 色97综合中文字幕| 亚洲四虎熟女精品| 国产三级中文字幕粉嫩| 91操人视频| nuu12国产麻豆精品| 久久亚洲AV无码专区国产精品| 欧美伦乱爱| 国产传媒操逼视频| 亚州国产成人精品女人久久| 五月婷婷久久综合| 香蕉99秘 一区精品蜜桃臀| 思思99热| 操逼视频色| 国产偷人妻精品一区二区在线| 青草草免费网站av| 99国内熟女露脸视频| 玖玖玖玖精品国产剧情| 丝袜加勒比| 国产在线视视频有精品| 日韩欧美传媒一区国产| 九月丁香婷婷| 岛国网址国产 | 99久久久无码| 日本成人A片网站| 亚洲欧美精品久| 一本一道vs波多野结衣| 91n处女在线观看| 国产伦精品一区二区三区视频女| 日本一区二区中文字幕久久| 九九九九精品一区| 五月丁香| 乱伦熟女专区| 国产精品一区二区麻豆| 亚洲。日韩。欧美| 人妻精品一区二区在线| 亚洲性爱成人| 成人情色综合网| 熟妇熟女亚洲天堂网| 伦理弟一页| 秋霞欧美性爰视频| 久久人妻无码毛片A片麻豆| 中文字幕日韩专区精品系列| 亚洲日本韩国在线| 夜夜草网站| 人妻无码一区二区三区久久99| 玖玖蜜臀资源网| 九九热在线视频| 久久久无码av精| 国产精品久久久久亚洲av| 欧美高清第一页| 午夜性生活av免费在线看| 国产树林里野战在线看| 欧洲亚洲天堂精品| 999精品乱码| 婷婷激情四射| 啊啊啊啊啊好大好舒服想要| 日本福利二区视频| 岛国在线免费视频| 亚洲无码日韩电影| 久久久久久久久久久久九| 亚洲男人的天堂亚洲| 国产美女自拍AV| 久久精品无码专区| 97视频新免费| 第45页一区二区| 五月色综合| 玖玖爱免费观看视频| 日日爱99| 久久9久| 熟女熟妇伦久久影院毛片一区二区| 蜜臀久久99精品久久综合| 91成人在线免费视频| 欧差乱伦二三| 97亚洲中文| 日韩欧美蜜桃精品久久中文字幕久久| 日韩成人午夜精品久久高潮| 9久综合网| 九月丁香| 亚洲欧洲另类| 超碰人人干| 久久久久亚洲Aⅴ无码| 欧美精品一区二区少妇免费A片 | 成人av在线播放| 97综合国产| 啊啊啊慢点| 大香蕉性欧美| 99999国产| 久久久久久久久女黄| 极品一区二区三区免费| 台湾佬中文娱乐网久久久久久久久久com| 在线视频一区二区传媒| 大香蕉十区| 女人天堂AV五区在线| 亚洲高潮少妇| 黑操B| 精品人妻伦一二三区久久| 大香蕉黄色一区| 五月婷婷爱六月丁香色| 九九热男人天堂| 超AV色女| 久操在97| 肥臀熟女一区二区三区视频| 亚洲成人ab| 精品午夜福利| 国产9 9在线 | 亚洲| 亚欧免费| 国产操逼逼网| 日日夜夜天天| 刺激性视频黄页| 午夜欧美神马久久久久| 97网址97| 欧美中日韩XXXX| 亚洲天堂男人的天堂| 男人天堂网站| 又大又长又粗又爽又黄| 日韩性爱网址| 操穴国产| av东京热男人的天堂| 欧美青青草视频| 97鸡把在线视频| 亚洲在线欧美| 综合免费无码中文| 猛交交| 啊啊啊在线观看免费视频| 久久爱超碰网| 日本媚薬中文字幕在线| 国产精品久久99日日| 亚洲aV性爱| 五月丁香色婷婷| 婷婷色一区| oumeisetupian| 青青伊人久久| 秋霞色色影院| 婷婷中文网| 精品久久久久,69国产成人精| 麻豆性爱视频在线播放| 97中文字幕一区| 精品人妻免费观看| 五月婷久久| 久久AV无码1区2区3区| 大干人妻| 91午夜无码| 无码又爽又硬又激情免费视频| 人人超碰在线观看黄| 国产蜜臀精品一区二区尤物| 天堂а√在线最新版在线| 国产亚洲色婷婷久久99精品91| 国产SV一线| 噜噜噜亚洲精| 国产精品久久久久久久黄无码| 欧美性色欧美| 亚洲蜜乳av| 江都AV在线| 日日骚网站| 亚洲高清国产理伦片| 日韩国产品视频中文字| 97碰碰色| 丁香五月天堂| 欧美高潮| 国产亚洲女v在线观看| 台湾佬激情综合| 91天天综合在线| 亚洲一级特黄大片在线播放91| juliaann精品熟女一区| 91精品人妻一品二品三品| 夜间福利片1000无码| 丝袜综合| 在线观看亚洲成人精品| 麻豆性爱视频在线播放| 免费无码婬片AAAA片直播色戒| www.yw尤物| 久久久性少妇| 国产成人无码网站在线视频| 久9爱经典视频| 新久久AV| 丰满人妻一区二区中文| 操逼片中文| 97超碰总站| 密乳无码| 天天日熟妇| 女人被男人桶爽视频网站| 精品国产一区二区三区久久久蜜臀 | 用力操死我| 国产高清成人免费视频| 女人被添高潮免费视频| 亚欧美色图| 亚洲国产欧美中文永久| 91九色首页| 久久精品无码熟妇一区二区三区视频导航| 天天干夜夜一操| 91热色| 久色网| 青青青青操国内视频在线| 操久久久久久| 人妻另类 专区 欧美 制服| 久草视频制服诱惑| 国产无马视频| 久久久亚洲熟妇资源| 五月婷婷六月丁香| 级做a爱无码性色永久免费| 中文字幕片| xxxx网站亚洲精品| 亚洲成人帖图| 国产精品小视频一区二区三区| 97视频在线免费观看| 久久神马影院| 五月丁香综合激情| 黄色成人网久久久久久| 久久一区二区加油站| 五月天黄色激情视频| 人妻精品一区二区| 人妻无码久久一区二区三区免费| 亚洲天堂 视频你懂的| 好爽免费视频| 校园春色综合香蕉| 九色 人妻 大香蕉| 欧美日韩操逼动图| 午夜αv| 欧美乱妇狂野欧美在线视频| 九九RE视频在线精品| 白丝一区| 亚洲极品| 操死我干死我| 免费黄色片子| 国产中文大片资源中文字幕| 91综合网在线| 青青草字幕AV| 极品丝袜无码| 国产男女无套视频免费观看| 韩日色费| 日本精品一区二区不卡| 久久草视频污视频| 91蜜臀在线久久久久| 永久免费发布性爱网| 亚洲国产丝袜熟女av| 无码九九| 亚洲精品一区二区免费在线观看| 蜜臀av一区二区三区免费观看| 少妇3P性爱自拍| 综合网91| 怡红院久久老司机| 久久久成人免费av电影| 自拍视频大全亚洲专媒视频/一区二区三区| 色色色色网站| 成人性爱视频在线看| 亚洲中字幕日本一区二区三区 | 国产一区二区三区影片| 日韩成人在线性爱视频| 丁香色狠狠色综合久久小说| 台湾佬大香蕉| 91热| 伊人网在线点播| 色踪合AV| 91亚洲欧美综合高清在线| 天天综合香 ld视频| 91人人爽人人爽| 六月婷婷五月丁香| 欧美在线视频99| 人妻熟女av国产网站| 美女写真| 在线观看黄色电话| 五月丁香社区婷婷日韩欧美精品影院 | 日本一二区免费| 黄色网址久久精品欧美喷水| 激情五月天婷婷| 丁香五月色| 婷婷综合网站| 色色国产| 神马久久久久眼| 欧洲综合视频| 天天摸夜夜摸| 超碰天天操| 国产中文日韩欧美一区二区三区人妻丝袜美腿 | 97精品国产97久久久久久免费| 五月天成人综合| 久99热| 91爽啪| 97爱欧美| 青青草日韩免费观看高清在线| 啊啊啊啊啊啊啊在线| 懂色av中文字幕一区二区三区天美| 久久高清无码夜夜操| 91欧美性| 一本大道久| 黄页| 桃花色综合影院| 熟妇的味道HD中文字幕| 在免费jIzzjIzz在线视频| 久久美女福利是上海美女| 色综合久久久久| 青青草在线成人视频| 91天天综合网,天天综合网| 加勒比av中文| 成人精品久久| 欧美夜夜草视频| 亚欧无码在线| 中文字幕黑人大片| 青青草白白色| 少妇贴图| 日韩99精品视频综合区| 色综合婷婷| 蜜桃视频精品一区二区三区| 欧洲精品欧洲精品| 国产精品美女视频诱惑| 国产男人又猛又粗又爽| 中文字幕精品一区二区精品| 麻豆激情综合| 夜色91| 欧美丝袜制服久久| 日韩97视频!在线| 99精品丰满人妻无码| 福利视频网站| 欧美人妻精品一区二区| 1区2区3区在线视频| 亚洲图片在线| 91啦人妻| 99性爱| 国产热av| 国产美女裸体秘 永久无遮挡| 狠狠干狠狠色| 黄久在线| 在线播放免费av福利片| 久久人妻丝袜一区二区三| 欧洲亚洲天堂精品| 国产v片在线免费观看| 色婷婷电影网| 日韩熟女视频二区| 99这里只有精品国产| 人妻碰碰碰碰碰碰| 久夜操| 久草免费在线一区二区| 动漫区日韩区欧美区| 无码天堂| 亚洲熟妇极品| 日韩大香蕉AV影片| 国产精品久久久鸭无码的功能| 骚逼一区二区| 国产婷婷综合在线观看| 好吊色在线观看| 97综合激情| 久久婷婷视频| 欧美日韩中文字幕不卡| 伊人色综合网电影| 日本天堂在线播放| 手机看av网站在线看| 国产久久久久影院老熟女| 亚欧免费| 330dv亚洲成年视频网| 翔田千里爆乳巨臀无码| 麻豆AV一区二区| 亚洲性网| 欧美天天谢综合网| 亚洲一区操| 成人热久久精品| 天天懆天天日| 久啪| 国产在线视视频有精品| 亚洲少妇综合| 99热亚洲| 精品视频在线观看| 超碰97在线 欧美 国产| 综合av社区| 国产25页| 久久香蕉综合一本到3atv| 亚欧美色图| 色噜噜综合网| 好爽免费视频| 欧美久久久15P| 亚洲av综合色区图片亚洲| 激情四射五月天| 日本一级性爱| 久久久久久九九九| 天天摸天天碰天天添青青| 亚洲欧美综合区自拍另类| 久湿久久| 伊人五月天| 人人搞人人插人人操| av麻豆啪啪| 91成人精品在线播放| 精品女同一区二区三区| 91麻豆天美国产欧美日| AV在线性爱| 99re在线视频| 五月综合视频| 色视频蜜乳| 成人精品水蜜桃久久久久久久| 超碰人人干| 人人操欧美风骚| 亚洲人91| 992这里有精品| 老司机天天操| 91性片| 怡红院成人av| 日本人妻A片成人免费看片| 亚洲无 码A片在线观看麻豆| 综合av影片| 亚洲人妻一区二区三区| 国产对白刺激视频| 东北熟女91| 免费超碰97久久| 青青草视频久久| 成人5码视频| 久久伊人最新网址视频| 久久久草草精品| 嗯阿好爽好紧| 九九人人操| 亚洲国产ⅴ高清在线观看| 超碰97男女| 日本新免费二区三区| 日韩AV电影网站| 国产黄色av大片网站| 人人搞人人插人人操| 亚洲天堂一二| 在线观看视频91| 欧美日韩性感| www色色com| 欧美人妻精品一区二区| 啪啪啪精品| 一起草在线视频| 黑丝制服中文字幕| 中文字幕第23区| 天天香香欲综合| www.91色综合| 欧美日综合| 国产 亚洲 丝袜 制服| 国产91亚洲精品一区二区三区| 99热精品在线观看| 四虎影视永久在线观看精品免费网站| 精品人妻一区二区免费蜜桃| 操久久久久久| 91九色精品熟女内射| 国产精品色片一区二区| 99老司机精品视频在线观看| 思思久热在线精品66| 亚洲激情视频| 91宗合网| 无码人妻一区二区三区四区老鸭窝| 国产不卡的视频| 狠色婷婷久久一区二区三区_| 欧美一二三区四五区| 极品丝袜无码| 天天淫人人妻日日色| 电影69乱码96| 操人妻丝袜高跟| 欧插网站| 女同性恋一区二区三区精品视频| 久久久久国产亚洲一区欧美色图日韩| 男人的天堂啪啪| 天天日少妇逼AV| 日韩有码一区三区| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 久久国产精品,久久国产| www.四虎在线| 欧美少妇第一页| 日日黄色三级网站| 97丝袜亚洲在线播放| 人妻激情在线视频| 蜜区区视频79| 天天噜| 欧美黄色手机在线观看| 久久久久久69国产一区二区| 亚一综合久久久久久久久久| 成年人性爱日韩| 午夜一区| 高清不卡视频| 91 亚洲情侣偷拍 久久| 91网站18+| 色综合大香蕉| 中国AAAAAA黄色片| 青青伊人这里只有精品| 国产97色在线| 少妇免费视频| 校园春色宗合网| av影院十区| 精品人妻一区二区三区四区不卡在| 99婷婷一区二区| 九色在线熟女国产黑人| 久久久久人妻| 五十路熟女工口 | 色综合尤物| 天天肏美女| 国产精品久久久九九九| 怡红院久久老司机| 91伊人久| 激情五月天丁香| 亚洲91网。| 97在线日韩中文字幕| 97香蕉网| 特级丰满少妇一级AAAA爱毛片| 深爱激情五月天| 热久久99999| 成人青青草原伊人| 日本熟女中文字幕一区| 大香蕉男女超碰精品在线| 91熟女综合| 91美女精品| 奇米四色影视777久久久| 亚洲日韩一区电影| 91精品久久久久久久久久| 99热这里只有精品18| 手机在线中文字幕国产| 97超碰jingpin| 中精品一区二区三区| 2018天天日天天日| 日本狠狠干| 色偷偷人人玩人人舔人人操人人摸人人爽| 人妻久久一区二区三区 | 秋霞无码av鲁丝片一区| 成人AV素股で擦久久| 91美女视频直播| 大黄片做爱的大的| 人妻一区二区三区| 伊香蕉综合久久久久久久噜噜噜| 无码黑人精品一区二区三区三| 亚洲图片 91| 婷婷丁香人妻| 一区二区视频在线播放| 亚洲激情色片| 无码一区免费在线不卡| 久久久一区二区三区四曲免费听| 韩日自拍| 成人 日本A片无码8888| 久久精品国产99国产精品亚洲| 好属操| 99色综合| 黄色工厂这里只有精品| 中文字幕日本久久| 伊人网一本| 亚洲砖码砖专无区2023| 91少妇香蕉久久精品| 国产在线观看91精品一区| 1024亚洲中文字幕久在线看片你懂的| 91制服丝袜| 亚洲精品成人| 美女黄色91| 韩国一级婬片A片AAAAA| 精品无码一区二区人妻久久蜜桃| 日韩免费大片一级播放| 天天射夜夜| 日韩卡一卡二卡三在线| 欧美久久人妻少妇一区二区| 日韩免费在线视频观看| 熟女网站最新| 久久一级无码精品毛片6| 亚洲宗合网| 欧美强奸一区二区诱惑| yazhououmeizongya| 综合色色婷婷| 偷拍视频青青草在线视频| 欧美亚州手机在线| 偷拍偷窥与盗摄视频专区| 欧美美女在线高潮999| 无码操逼视频一下| 国产十八禁视频| 日韩成人性爱AV| 伊人四虎综合| 操91| 日本一道在线播放高清| 少妇诱惑视频| 成年人三级黄色片视频| 97操在线| 亚洲性爱无码乱伦av| 亚洲欧洲日韩中文字幕一区| 国产11页| 操B视频日韩无码| 极品国产内射| 亚洲综合色网| 欧美激情精品久久久| 夜夜操一区二区| 色踪合AV| 欧美狠狠干| 超碰国产精品无码| 99久热| 诱惑人妻欧美一区在线播放| 久久日韩肥臀| 你懂的在线观看区国产| 人妻一区二区三区四区视频| 日本免费一区二区不卡| 人妻铁牛TV| 亚洲中文字幕97久久精品少妇 | 日日妻色网| 蜜臀久久久99久久久久 | 国产超碰AV在线精品| 动漫片子网站3黄| 999日韩中文精品观看视频。| 久久综合久久综合人久久夜精品| 欧美日韩大陆黑人少妇99| 嗯嗯嗯啊啊啊干死我吧| 久久国产精品91| 色色无码| 色网1| 国产99热| 欧美96交| yirendaxiangjiashipin| 俺去俺来也在线www| 日本欧美不卡| 久久一区二区三区四区五区| 亚洲精品三区在线观看| 久久九九综合| 亚洲熟女少妇免费视频| 国产精品熟女九色九色蜜臀| 久久久久久夜夜夜夜夜| 人妻丰满熟妇av无码区蜜桃| 精品国模无码| 欧美日韩青操| 大香蕉伊人色偷偷在线| 一类av片在线看| 欧美色图 色综合图| 日本道日本道中文字幕日本道最新日本道在线观看| 亚洲人妻av| 国产91乱伦| 一级一性爱免费视频| 丝袜视频网国产90| 精品国产99| 看看小穴| 五月天婷婷综合| 狠狠色噜噜狠狠狠狠狠色综合久久| 亚洲婷婷丁香在线| 亚洲欧美碰碰| 92大香蕉| 中国的操老妇女| 天天干天天日天天射黄色片| 午夜精品一区二区三区三上悠亚| 92人人操人人| 亚洲精品国产熟女久久久久久| av毛片aaaaa免费看| 人妻欧美| 国产精品夜夜| 春色91| 国产精品69久久久久孕妇欧美| 亚洲限制级| 欧美日韩淫加| 熟妇人妻一区二区| 精品久久久av| 午夜激情床戏激情| 骚货人妻偷情自拍在线视频| 狠狠色丁香| 9+1视频网址| 久久女婷| 婷婷五月天激情网| 蜜臀av在线播放一区二区三区| 大香蕉九九| 日本福利社| 东京热激情视频一二三区| 韩国久久97| 黄色乱论网站| 天天天肏屄欧美| 麻豆AV短剧| 婷婷五月天无码 | 日本 免费 一区二区三区 久久香蕉 | 亚洲妇色| 亚洲少妇在线影音| 97色色,97综合| 亚洲精品不卡一二三区| 亚洲男人天堂2| 91超碰在线观看| 国产丝袜啪啪| 在线综合网| 亚洲一区操| 一类无码操逼视频| 日韩性爱电影一区| www久久久| 久久久99久9| 91挑色欧美| nuu12国产麻豆精品| 国产一二三福利视频网| 亚洲黑人在线| 亚洲密乳AV| 韩国一级做A片免费的| 亚洲五月丁香花狠狠干一区二区三区 | wwe 天天干.com| 色网综合网| 天天干夜夜鈤| 成人小说另类在线| 99性爱在线观看| 五月综合色| 加勒比AV网| 亚洲综合色图欧美| 亚洲伊人久久综合97| 啪啪免费| 九九热免费视频| 97在线欧洲| 美女天天干| 乱伦熟妇一区二区| 欧美一级黄片免费播放| 亚洲天堂人妻一区二区| 热热热热日日漂亮永久永久国产日| 97草草| 亚洲av青草久久一区二区| 亚洲国产精品9999在线观看| 九九久久99| 青青草精品| 精品一级| 乱伦图av| 久久免费中文字幕在线观看| 超碰无码五月97| 污色区网站| 亚洲天堂 视频你懂的| 色999偷自拍拍| 91热| 久久成人国产| 2025亚洲男人天堂| AV女资源| 女人 A一级| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 五月天丁香欧洲日韩| 人人爽夜夜玩视频| 欧美综合国产精品久久丁香| 色综合久| 激情情色五月天| 韩三级a视频在线观看| 久久久久久亚洲精品不卡人乳| 欧美日韩亚洲电影| 伊人操你| 午夜天天碰综合视频| 欧美亚州综合网图片| 国产熟女免费观看久久| 91色图片| 大学生美女口爆| 色色激情| 久久熟女嫩草成人片免费| 中国少妇XXXX做受| 91麻豆天美国产| 青娱乐国产剧情av一区| 9九九九九视频在线观看| 中文字幕第二页| 欧美网站免费| 欧美最大综合网| 欧美精品日韩久久久九| 神马久久久久久久久久久久| 伊人加勒比| 久久久久久亚洲精品不卡人乳| 99视频自拍区| 日韩av不卡在线观看| 色网1| 国产大学生口爆吞精合集| 久久国99999| 91成人高清在线观看| 欧美黑人与女人91~| 在线视频 亚洲精品| 99少妇精品视频| 日韩熟女精一区二区三区不卡| 中文字幕成人| 色97干| 玖玖综合.com| 9久精品| 婷婷伊人一区| 欧美性爱综合,免费| 天天碰操中国年青熟妇| 91精品久久久| 久久久久无码一妻区| 色官网色综合| 亚洲影视第一页| 色情五月婷婷| 天天网综合| 黄色二级片网站| 久久久久久久伊人精品| 久久久久久久久久久久久久久久9| xxxx网站亚洲精品| 天天日熟妇| 婷婷五月丁香五月| 起碰97| 人人噜夜夜操| 久久99午夜精品一区人妻| 中文三一区| 日韩一999精品| 777AV电影| 五月天精品| 夜夜夜久久| 久久这里是精品| 久久精品综合| 国产精品久久久亚洲一区| 无遮挡男女激烈动态图| 精品久久大胆人体| 不卡啪啪视频| 91成人18| 亚洲色悠悠久久88| 成人av免费观看| 国产精品午夜AV完会免费| 欧亚日韩三区| 超碰在线成人| 女人天堂av在线播放| 久久亚洲熟妇在线视频| 搡老熟女老女人老熟妇免费视频| 91丝袜| 加勒比海成人视频网 | 舔足天天操天天射| 东北女人的毛片| 久久婷婷热| 五月丁香六月综合缴清无码 | 另类TS人妖一区二区三区| 很狠操| 久久久久密| 丁香六月东京热| dy888午夜老子影视达达兔| 亚洲污污网站| 日本人体九九九九九九| 韩国成人精品久久久免费看| 蜜臀网 一区| 99热这里只有是精品10| 激情久久久| 岛国色情视频在线观看| 1区2区3区视频| 日韩丨制服丨中文|在线| 91丝袜美女| av资源在线观看少妇| 51国产午夜精品视频| 日本精品加勒比海一区| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 98色网| 国产九九九九九九九九| a片久久久久久久久久久久 | 色97干| 久久精品男人的天堂| 青青草十区九区爱夜| 青青草操逼逼视频| 国产精品无码在线| 免费福利视频中文字幕| 久夜视频| 高清无码学生妹高潮| 制服中出中文人人精品| 自拍丝袜美腿人妻| 欧美亚洲综合色| 久久精品99| 国产懂色精品国产av| 久久精品久久九九精品| 国产 日韩 欧美一区| 怡红院久久老司机| 天天操天天7| 伊人991| 99操| 91精品人妻一区二区三区蜜桃臀 | 97精品视频| 久久久久99精品成人片蜜臀| 久操| 欧美日本不卡| 欧美天堂第二区| 丝袜无码a片| 国产精品网站www| 久久久9品一区二区三区| 亚洲天堂区| 久久综合99| 色婷婷激情| 天天日天天插| 五月天激情婷婷| 亚洲精品男人的天堂| 六月色色| www99热| 九九热在线视频| 九九九九九九九精品视频| 丁香五月激情综合| 丁香五月激情五月| 五月激情天| 久久久999日本大片| 操九九九九九九| 亚洲少妇诱惑| 久久水蜜臀亚洲AV无码精品| 一区中文字幕二区日韩| 久久超碰97中文字幕| 青青草白白色| 亚洲综合图片在线| 久欲AV|