国产成人欧美一区二区三区vr_久久国产精品人人爽人人爽_国产精品永久免费播放_肉欲啪啪a∨无码精品一区二区_国产超短裙jk丝袜在线_亚洲AV片高清资源在线观看_国模无码一区二区三区久久_国产成年人未进视频_中文字幕无码精品夜_一区二区三区在线视频免费看_亚洲成AV人片在线观看网址_日本激情视频高清综合久久_亚洲午夜视频福利_国内大量揄拍人妻精品視_久久国产精品福利二区三区

ARTICLE DETAIL

資訊詳情

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

STM32+HX711高精度電子秤設(shè)計(jì):CubeMX配置與濾波算法詳解

STM32+HX711高精度電子秤設(shè)計(jì):CubeMX配置與濾波算法詳解 簡(jiǎn)介在稱重類嵌入式項(xiàng)目中HX711憑借高精度與簡(jiǎn)單接口被廣泛使用。這套基于STM32CubeMX與HAL庫(kù)的壓力傳感器工程面向嵌入式開發(fā)者覆蓋了從CubeMX初始化、HX711驅(qū)動(dòng)到串口與OLED顯示的完整流程。項(xiàng)目針對(duì)5Kg量程傳感器實(shí)現(xiàn)24位AD轉(zhuǎn)換自動(dòng)去皮并按GapValue系數(shù)換算克重實(shí)測(cè)既可通過(guò)串口助手實(shí)時(shí)查看數(shù)據(jù)也能在1.3寸帶字庫(kù)OLED屏上同步顯示。壓縮包共1278個(gè)文件以C源文件、頭文件為主兼有啟動(dòng)文件、鏈接腳本、Keil工程配置及編譯產(chǎn)物整體約24MB工程結(jié)構(gòu)完整便于直接導(dǎo)入學(xué)習(xí)或按需移植。已有5531人學(xué)習(xí)下載資源內(nèi)對(duì)壓力傳感器及OLED接線如DT接PA5、SCK接PA6的說(shuō)明清晰校準(zhǔn)方法簡(jiǎn)單有效是兼顧入門實(shí)操與工程參考的優(yōu)質(zhì)資料。1. 項(xiàng)目整體思路與方案選型1.1 這套方案解決什么問(wèn)題做嵌入式開發(fā)的朋友應(yīng)該都遇到過(guò)這種需求要做一個(gè)稱重或者壓力檢測(cè)相關(guān)的小設(shè)備傳感器數(shù)據(jù)得能實(shí)時(shí)看到最好還能在屏幕上直接顯示出來(lái)。我最初開始搗鼓HX711的時(shí)候市面上能找到的資料散得不成樣子要么是標(biāo)準(zhǔn)庫(kù)的老代碼要么網(wǎng)上扒下來(lái)的例程跑起來(lái)數(shù)據(jù)亂跳壓根不知道該信誰(shuí)。HX711是海芯半導(dǎo)體推出的一款24位高精度A/D轉(zhuǎn)換芯片專門為電子秤、壓力檢測(cè)這類橋式傳感器應(yīng)用設(shè)計(jì)。和ADS1232、MCP3561這些同類芯片比HX711最大的優(yōu)勢(shì)是外圍電路極簡(jiǎn)內(nèi)部集成了穩(wěn)壓電源、時(shí)鐘振蕩器和放大電路接上傳感器之后幾乎不用搭額外的東西就能工作。我挑選這款芯片來(lái)做壓力檢測(cè)項(xiàng)目核心原因就是它的24位采樣精度配上合適的濾波算法完全能滿足多數(shù)稱重場(chǎng)景的量程和分辨率需求。這套方案的完整鏈路是這樣壓力傳感器把重量變化轉(zhuǎn)成微弱的差分電壓信號(hào)HX711對(duì)信號(hào)進(jìn)行放大和24位AD轉(zhuǎn)換STM32通過(guò)GPIO模擬時(shí)序把數(shù)據(jù)讀出來(lái)一邊通過(guò)串口把原始數(shù)據(jù)和換算后的重量值發(fā)到電腦上的串口調(diào)試助手另一邊把處理結(jié)果送到OLED屏幕上顯示。整個(gè)鏈路覆蓋了從模擬信號(hào)采集、數(shù)字信號(hào)處理到人機(jī)交互顯示的全流程做學(xué)習(xí)項(xiàng)目或者產(chǎn)品原型都非常合適。1.2 為什么選STM32CubeMX加HAL庫(kù)這套組合早些年用標(biāo)準(zhǔn)庫(kù)寫STM32程序最痛苦的事情就是初始化外設(shè)。每次新建一個(gè)工程時(shí)鐘樹配置、GPIO模式設(shè)定、串口參數(shù)初始化這些代碼全靠手寫一不留神就出錯(cuò)。我曾因?yàn)镽CC時(shí)鐘配置少了一個(gè)分頻系數(shù)愣是調(diào)了一整天才發(fā)現(xiàn)外設(shè)主頻不對(duì)。STM32CubeMX的出現(xiàn)把這個(gè)問(wèn)題徹底解決了。它把引腳分配、時(shí)鐘配置、外設(shè)參數(shù)初始化全部圖形化鼠標(biāo)點(diǎn)一點(diǎn)就能生成完整的初始化代碼而且生成的工程結(jié)構(gòu)清晰規(guī)范特別適合做項(xiàng)目原型快速驗(yàn)證。配套的HAL庫(kù)把硬件操作抽象成統(tǒng)一的API接口換芯片型號(hào)的時(shí)候只要重新生成工程大部分應(yīng)用層代碼能直接復(fù)用。HX711模塊本身并不復(fù)雜但是有個(gè)容易被新手忽略的問(wèn)題它雖然也叫串行接口但并不是標(biāo)準(zhǔn)的I2C或SPI協(xié)議而是兩線制的自定義時(shí)序DOUT輸出數(shù)據(jù)、PD_SCK輸入時(shí)鐘。初始化的時(shí)候根本沒有寄存器配置這一步只要兩個(gè)GPIO引腳就能跑起來(lái)。但是別被這種簡(jiǎn)單迷惑了這個(gè)芯片說(shuō)實(shí)話不好對(duì)付關(guān)鍵就在時(shí)序細(xì)節(jié)和數(shù)據(jù)處理上。CubeMX加HAL庫(kù)恰好能把底層外設(shè)配置這塊快速搞定讓我把精力集中到HX711時(shí)序和數(shù)據(jù)處理上。2. 硬件準(zhǔn)備與接線要點(diǎn)2.1 完整硬件清單我用的是最簡(jiǎn)單的組合方案全部器件加起來(lái)成本不高適合大家照著復(fù)刻器件型號(hào)/規(guī)格數(shù)量用途主控板STM32F103C8T6最小系統(tǒng)板1核心控制稱重傳感器電阻應(yīng)變式壓力傳感器量程5kg1信號(hào)源AD轉(zhuǎn)換模塊HX711模組1信號(hào)采集轉(zhuǎn)換顯示屏0.96寸I2C接口OLEDSSD13061數(shù)據(jù)顯示USB轉(zhuǎn)串口模塊CH340方案1串口通信杜邦線母對(duì)母、公對(duì)母若干若干接線連接選擇STM32F103C8T6這款芯片的原因是它性價(jià)比高網(wǎng)上資料多而且CubeMX對(duì)它的支持很完善。我不建議一上來(lái)就使用復(fù)雜的芯片如果一個(gè)最基礎(chǔ)的方案都跑不順后面排查問(wèn)題會(huì)很痛苦。2.2 接線方式與電源注意事項(xiàng)完整的接線對(duì)應(yīng)關(guān)系如下HX711與STM32的連接VCC接5V建議和傳感器共用穩(wěn)壓電源GND接GNDDT數(shù)據(jù)輸出接PA6SCK時(shí)鐘輸入接PA5。OLED與STM32的連接VCC接3.3VGND接GNDSCL接PB6I2C1時(shí)鐘線SDA接PB7I2C1數(shù)據(jù)線。USB轉(zhuǎn)串口模塊與STM32的連接TXD接PA10USART1_RXRXD接PA9USART1_TXGND接GND。這里有一個(gè)很多人都會(huì)踩的坑。HX711模塊板上通常有一個(gè)穩(wěn)壓芯片給傳感器供電的AVDD可以承受較大的電壓范圍所以VCC接5V問(wèn)題不大。但是如果你用的是那種沒有板載穩(wěn)壓的裸片HX711供電電壓就不能超過(guò)5V否則很容易燒芯片。我之前圖省事直接從一個(gè)壞的充電寶上拆的鋰電池供電結(jié)果續(xù)航和穩(wěn)定性都出問(wèn)題后來(lái)又老老實(shí)實(shí)換回USB供電才穩(wěn)定下來(lái)。另外一個(gè)容易出現(xiàn)的問(wèn)題是杜邦線接觸不良造成的偶發(fā)性數(shù)據(jù)跳變這也是排查時(shí)需要留意的重點(diǎn)。實(shí)際接線時(shí)還有一個(gè)容易忽視的細(xì)節(jié)HX711的模擬電源和數(shù)字電源之間要加去耦電容模塊上一般已經(jīng)貼好了。如果你自己畫板子記得在靠近VCC引腳的位置放一個(gè)10uF電解電容加一個(gè)100nF陶瓷電容并聯(lián)不然采樣數(shù)據(jù)會(huì)容易受到紋波干擾導(dǎo)致讀數(shù)不穩(wěn)定。3. STM32CubeMX配置流程3.1 工程初始化與時(shí)鐘配置打開STM32CubeMX新建工程后搜索并選擇STM32F103C8Tx芯片接著就要進(jìn)行關(guān)鍵的配置了。我習(xí)慣先把時(shí)鐘樹配置好因?yàn)楹罄m(xù)外設(shè)的波特率、定時(shí)器精度都是從系統(tǒng)時(shí)鐘分頻出來(lái)的如果主頻不對(duì)串口數(shù)據(jù)可能會(huì)產(chǎn)生亂碼而很難發(fā)現(xiàn)。在RCC選項(xiàng)卡里把HSE高速外部時(shí)鐘設(shè)置為Crystal/Ceramic Resonator因?yàn)槲覀冇玫氖亲钚∠到y(tǒng)板上的8MHz晶振。然后切換到Clock Configuration頁(yè)面在HCLK輸入框填72回車讓軟件自動(dòng)計(jì)算分頻系數(shù)。這個(gè)操作會(huì)自動(dòng)把PLL倍頻到72MHz也就是STM32F103的最高主頻。如果在這一步遇到了HCLK數(shù)字變紅的情況通常說(shuō)明分頻配置有沖突需要檢查APB1和APB2的分頻設(shè)置APB1最大36MHzAPB2最大72MHz。3.2 GPIO引腳配置在Pinout Configuration頁(yè)面先點(diǎn)擊芯片圖上的PA5和PA6分別設(shè)置為GPIO_Output和GPIO_Input。PA5對(duì)應(yīng)的是HX711的SCK時(shí)鐘引腳設(shè)置為推挽輸出、無(wú)上下拉、輸出速度Low就夠用了。PA6對(duì)應(yīng)DT數(shù)據(jù)引腳設(shè)置為輸入模式這里我同樣不開啟上下拉。很多人可能會(huì)問(wèn)為什么SCK的輸出速度不選High因?yàn)镠X711本身是低速器件時(shí)鐘頻率要求不超過(guò)幾百千赫茲選擇Low輸出速度反而能減小信號(hào)邊沿的振鈴現(xiàn)象對(duì)信號(hào)完整性有好處。我在調(diào)試中發(fā)現(xiàn)把輸出速度改成High之后用示波器可以觀察到SCK邊沿有明顯的過(guò)沖雖然不影響邏輯判斷但對(duì)EMC不友好。OLED那邊需要在I2C選項(xiàng)卡里面把I2C1啟用選擇Standard Mode即可I2C速度100K就行不用開Fast Mode。OLED屏的I2C時(shí)序要求不高標(biāo)準(zhǔn)模式跑得很穩(wěn)定開Fast Mode反而容易因?yàn)樯侠娮枳柚挡缓线m導(dǎo)致通信錯(cuò)誤。3.3 串口配置和中斷優(yōu)先級(jí)在USART1選項(xiàng)卡里把Mode設(shè)置為Asynchronous異步模式波特率填115200數(shù)據(jù)寬度8位無(wú)校驗(yàn)1位停止位這是最通用的串口參數(shù)組合。USART1的引腳默認(rèn)就在PA9和PA10上如果之前被其他功能占用需要先釋放。串口這塊我建議你在CubeMX里直接打開中斷NVIC Settings里使能USART1 global interrupt。雖然我下面的代碼主要用阻塞式發(fā)送和接收但實(shí)際項(xiàng)目中經(jīng)常需要用中斷或DMA收發(fā)不定長(zhǎng)數(shù)據(jù)先把中斷配置好后面擴(kuò)展功能會(huì)方便很多。DMA方式接收不定長(zhǎng)數(shù)據(jù)是我后來(lái)才搞明白的高級(jí)玩法。簡(jiǎn)單說(shuō)就是用串口的空閑中斷配合DMA接收這樣不需要預(yù)先知道一幀數(shù)據(jù)的長(zhǎng)度。但是第一次做HX711項(xiàng)目沒必要一上來(lái)就上DMA先用阻塞式串口發(fā)送數(shù)據(jù)把整個(gè)鏈路跑通再考慮優(yōu)化傳輸方式這樣排查問(wèn)題會(huì)容易得多。3.4 生成工程代碼在Project Manager頁(yè)面Toolchain選擇MDK-ARM V5這樣生成的是KEIL工程。這里有個(gè)小坑如果你電腦裝的是KEIL V5.36以上版本建議在CubeMX的這個(gè)頁(yè)面把Minimum Firmware Package版本改成和固件庫(kù)版本匹配否則打開工程時(shí)可能會(huì)提示固件包版本太舊還要額外去更新比較麻煩。生成工程前記得檢查一下Code Generator里的配置勾選Generate peripheral initialization as a pair of .c/.h files per peripheral這樣會(huì)把每個(gè)外設(shè)的初始化代碼單獨(dú)放在對(duì)應(yīng)文件中方便閱讀和維護(hù)。如果不勾選所有初始化函數(shù)會(huì)全部堆在main.c文件里后期想改某個(gè)外設(shè)配置就得在main.c里翻半天。4. HX711驅(qū)動(dòng)代碼實(shí)現(xiàn)與原理4.1 HX711時(shí)序協(xié)議深度解析HX711的通信時(shí)序比較特殊它不像I2C那樣有地址和設(shè)備號(hào)的概念通信接口只有兩根線DOUT和PD_SCK。DOUT是數(shù)據(jù)輸出線PD_SCK是時(shí)鐘輸入線同時(shí)也是掉電控制線。平時(shí)DOUT保持高電平當(dāng)芯片完成一次AD轉(zhuǎn)換后DOUT會(huì)被拉低這時(shí)候主控開始發(fā)送時(shí)鐘脈沖讀取數(shù)據(jù)。讀取邏輯并不復(fù)雜當(dāng)檢測(cè)到DOUT引腳變?yōu)榈碗娖秸f(shuō)明轉(zhuǎn)換數(shù)據(jù)已經(jīng)準(zhǔn)備好此時(shí)PD_SCK每產(chǎn)生一個(gè)上升沿DOUT引腳就會(huì)輸出一位數(shù)據(jù)。芯片總共需要發(fā)送25個(gè)時(shí)鐘脈沖前24個(gè)用于移出24位轉(zhuǎn)換結(jié)果數(shù)據(jù)從最高位開始輸出第25個(gè)脈沖的作用是把DOUT拉高讓它回到高電平狀態(tài)為下一次轉(zhuǎn)換做準(zhǔn)備。這里有一個(gè)新手極易出錯(cuò)的細(xì)節(jié)如果你在第24個(gè)脈沖之后不發(fā)送第25個(gè)脈沖DOUT會(huì)一直保持低電平芯片不會(huì)開始下一次轉(zhuǎn)換。我之前調(diào)試的時(shí)候屏幕上的重量值一直顯示0加砝碼也沒反應(yīng)排查了很久才發(fā)現(xiàn)是少打了一個(gè)脈沖導(dǎo)致芯片根本沒有進(jìn)入下一次轉(zhuǎn)換周期。如果你也遇到了一直顯示0或者數(shù)據(jù)不更新的情況優(yōu)先查一下這個(gè)位置。另外關(guān)于有效位數(shù)的處理HX711硬件上雖然聲稱是24位ADC但實(shí)際有效的位數(shù)受噪聲影響遠(yuǎn)遠(yuǎn)達(dá)不到24位常見說(shuō)法是當(dāng)輸出速率在10Hz時(shí)有效分辨率大約在18到20位左右和增益倍數(shù)設(shè)置也有關(guān)系。所以很多工程師會(huì)把采集到的24位原始數(shù)據(jù)低幾位丟棄用來(lái)濾掉噪聲抖動(dòng)。我實(shí)測(cè)下來(lái)直接丟棄低兩位的采樣結(jié)果穩(wěn)定性就會(huì)有一個(gè)比較明顯的提升尤其在傳感器靜止時(shí)讀數(shù)會(huì)更穩(wěn)。4.2 GPIO模擬時(shí)序讀取核心代碼在我們用HAL庫(kù)的環(huán)境下直接在main.c里添加以下代碼塊。核心讀取函數(shù)如下// hx711.c #include hx711.h // 讀取一次HX711原始數(shù)據(jù) uint32_t HX711_Read(void) { uint32_t value 0; uint8_t i 0; // 等待DOUT變低表示數(shù)據(jù)已準(zhǔn)備好 // 如果DOUT一直為高說(shuō)明芯片可能未正常工作或SCK信號(hào)異常 while(HAL_GPIO_ReadPin(HX711_DOUT_GPIO_Port, HX711_DOUT_Pin) GPIO_PIN_SET); for(i 0; i 24; i) { HAL_GPIO_WritePin(HX711_SCK_GPIO_Port, HX711_SCK_Pin, GPIO_PIN_SET); value value 1; if(HAL_GPIO_ReadPin(HX711_DOUT_GPIO_Port, HX711_DOUT_Pin) GPIO_PIN_SET) { value; } HAL_GPIO_WritePin(HX711_SCK_GPIO_Port, HX711_SCK_Pin, GPIO_PIN_RESET); } // 發(fā)送第25個(gè)脈沖讓DOUT恢復(fù)高電平開啟下一次轉(zhuǎn)換 HAL_GPIO_WritePin(HX711_SCK_GPIO_Port, HX711_SCK_Pin, GPIO_PIN_SET); HAL_Delay(1); HAL_GPIO_WritePin(HX711_SCK_GPIO_Port, HX711_SCK_Pin, GPIO_PIN_RESET); return value; }這段代碼里面有個(gè)值得留意的點(diǎn)value變量用32位無(wú)符號(hào)整數(shù)保存24位數(shù)據(jù)這是有意為之的選擇——HX711輸出的數(shù)據(jù)是二進(jìn)制補(bǔ)碼形式最高位是符號(hào)位直接把左移后的結(jié)果存進(jìn)去后續(xù)用有符號(hào)類型轉(zhuǎn)換就能正確處理正負(fù)值。如果在這里用了16位變量正數(shù)部分可能溢出負(fù)數(shù)部分更會(huì)出錯(cuò)。第25個(gè)脈沖后面的HAL_Delay(1)是我加的一個(gè)保險(xiǎn)。理論上第25個(gè)脈沖發(fā)送完芯片就會(huì)立即開始下一次轉(zhuǎn)換但考慮到芯片內(nèi)部狀態(tài)切換需要一點(diǎn)時(shí)間延時(shí)1毫秒能確保下一次調(diào)用讀取函數(shù)時(shí)DOUT狀態(tài)已經(jīng)恢復(fù)到高電平。如果不加這個(gè)延時(shí)在某些情況下可能剛進(jìn)入下次讀取的等待循環(huán)時(shí)DOUT還沒來(lái)得及變高直接跳過(guò)了等待造成數(shù)據(jù)錯(cuò)位。實(shí)測(cè)下來(lái)加了這個(gè)延時(shí)后連續(xù)讀取數(shù)據(jù)的穩(wěn)定性明顯提升。4.3 多次采樣濾波與重量轉(zhuǎn)換單次讀取的數(shù)據(jù)抖動(dòng)非常大即使傳感器靜止不動(dòng)低位數(shù)值也會(huì)來(lái)回跳動(dòng)。解決辦法是用滑動(dòng)平均濾波連續(xù)讀取多次去掉最大值和最小值剩下的求平均。這樣一來(lái)脈沖干擾和瞬時(shí)噪聲都能被過(guò)濾掉。我在代碼里用了一個(gè)簡(jiǎn)單的濾波函數(shù)// 連續(xù)讀取n次去掉最大最小值后取平均 uint32_t HX711_Read_Average(uint8_t times) { uint32_t sum 0; uint32_t max 0, min 0xFFFFFFFF; uint32_t value 0; uint8_t i 0; for(i 0; i times; i) { value HX711_Read(); if(value max) max value; if(value min) min value; sum value; } // 如果采樣次數(shù)小于等于2去掉最大最小會(huì)導(dǎo)致沒數(shù)據(jù)可用 if(times 2) { sum sum - max - min; return sum / (times - 2); } else { return sum / times; } }調(diào)用這個(gè)濾波函數(shù)時(shí)次數(shù)建議設(shè)在5到10次之間取太少噪聲濾不干凈取太多則實(shí)時(shí)性變差。根據(jù)我的實(shí)測(cè)數(shù)據(jù)采樣速率設(shè)置為10Hz時(shí)一次濾波函數(shù)調(diào)用大約耗時(shí)80毫秒在稱重這類對(duì)實(shí)時(shí)性要求不高的場(chǎng)景下完全夠用。如果你要做的是動(dòng)態(tài)稱重需要更快的響應(yīng)速度采樣次數(shù)就要適當(dāng)降低或者改用中值濾波效果也還不錯(cuò)。接下來(lái)就是關(guān)鍵的標(biāo)定環(huán)節(jié)。HX711輸出的是24位原始數(shù)字量要換算成實(shí)際重量必須進(jìn)行兩點(diǎn)標(biāo)定先記錄空載時(shí)的零點(diǎn)值然后放上一個(gè)已知重量的砝碼記錄帶載值。利用這兩個(gè)數(shù)據(jù)點(diǎn)就能推算出每單位ADC讀數(shù)對(duì)應(yīng)的實(shí)際重量值。標(biāo)定代碼如下// 全局變量標(biāo)定后存儲(chǔ) int32_t offset_value 0; // 空載零點(diǎn)值 float scale_factor 0.0f; // 單位讀數(shù)對(duì)應(yīng)的重量單位克 // 標(biāo)定函數(shù)empty_offset為空載采樣值known_weight為砝碼重量克 // full_scale為放砝碼時(shí)采樣值 void HX711_Calibrate(int32_t empty_offset, int32_t full_scale, float known_weight) { offset_value empty_offset; // 除以0保護(hù) if(full_scale ! empty_offset) { scale_factor known_weight / (float)(full_scale - empty_offset); } else { scale_factor 0.0f; } } // 獲取實(shí)際重量 float HX711_Get_Weight(void) { int32_t reading (int32_t)HX711_Read_Average(5) - offset_value; return (float)reading * scale_factor; }關(guān)于這個(gè)轉(zhuǎn)換關(guān)系需要解釋一下scale_factor的單位是克/ADC讀數(shù)它取決于傳感器的量程和靈敏度。我手上這個(gè)5kg量程的傳感器實(shí)測(cè)標(biāo)定后scale_factor大約在0.0006克/ADC讀數(shù)附近也就是說(shuō)ADC讀數(shù)變化大約1670左右對(duì)應(yīng)1克。不同傳感器這個(gè)值差異很大同一個(gè)傳感器在不同增益倍數(shù)下也不一樣所以每換一個(gè)傳感器或者調(diào)整增益后都需要重新標(biāo)定。4.4 負(fù)值處理和零點(diǎn)漂移的修正很多人做稱重時(shí)還會(huì)遇到一個(gè)問(wèn)題空載時(shí)讀數(shù)不為零。這里面的原因比較復(fù)雜可能是傳感器本身的零點(diǎn)偏移也可能是HX711輸入的差分電壓有一個(gè)微小的偏置。標(biāo)定時(shí)把空載采樣值直接當(dāng)作offset_value記錄下來(lái)就能把零點(diǎn)漂移抵消掉了。但是這里還有一個(gè)在去皮操作中的常見問(wèn)題如果把傳感器上面的托盤或者容器也放在秤臺(tái)上進(jìn)行零點(diǎn)標(biāo)定后來(lái)?yè)Q了一個(gè)更重的托盤零點(diǎn)就會(huì)偏移。正確的做法是每次開機(jī)后等系統(tǒng)穩(wěn)定先獲取一次空載值更新offset_value然后再開始稱重。我在代碼里就是這么設(shè)計(jì)的上電后延時(shí)等傳感器穩(wěn)定然后做一次自動(dòng)零點(diǎn)校準(zhǔn)。另外一個(gè)值得警惕的現(xiàn)象是如果讀取到的重量值不是正數(shù)而是負(fù)數(shù)需要檢查采樣數(shù)據(jù)的符號(hào)位處理是否有問(wèn)題。我剛才說(shuō)了HX711是補(bǔ)碼輸出當(dāng)讀到的原始值大于0x800000時(shí)說(shuō)明是負(fù)值需要手動(dòng)將其轉(zhuǎn)換為負(fù)數(shù)才能正確計(jì)算或者用以下方式處理int32_t raw_signed (int32_t)HX711_Read_Average(5); // 如果是24位符號(hào)數(shù)需要手動(dòng)擴(kuò)展符號(hào)位 if(raw_signed 0x800000) { raw_signed raw_signed | 0xFF000000; }如果你不做這個(gè)符號(hào)擴(kuò)展最典型的癥狀就是傳感器上面放個(gè)重物讀數(shù)正常但用手往下壓傳感器時(shí)讀到的重量卻是一個(gè)很大的正數(shù)而不是負(fù)數(shù)。做過(guò)電子秤項(xiàng)目的朋友應(yīng)該對(duì)這個(gè)現(xiàn)象不陌生。5. 串口輸出與OLED屏幕顯示5.1 串口printf重定向把數(shù)據(jù)通過(guò)串口發(fā)到電腦上最方便的方式就是重定向printf函數(shù)。在HAL庫(kù)環(huán)境下這里需要自己實(shí)現(xiàn)一個(gè)fputc函數(shù)底層調(diào)用HAL_UART_Transmit// 重定向printf到串口1 int fputc(int ch, FILE *f) { HAL_UART_Transmit(huart1, (uint8_t *)ch, 1, 0xFFFF); return ch; }然后就可以直接用printf來(lái)輸出數(shù)據(jù)了printf(Weight: %.2f g\r\n, weight);在CubeMX生成的main.c里別忘了在main函數(shù)開頭添加#include stdio.h這個(gè)重定向的思路和標(biāo)準(zhǔn)庫(kù)在PC平臺(tái)的原生printf不太一樣它實(shí)質(zhì)上是將字符逐個(gè)通過(guò)串口發(fā)送出去。有一點(diǎn)需要注意如果使用微庫(kù)MicroLIBprintf處理和這個(gè)方式略有不同。在KEIL工程配置的Target選項(xiàng)卡里勾選Use MicroLIB通常就不需要額外實(shí)現(xiàn)fputc了有時(shí)會(huì)導(dǎo)致重定向不生效所以建議你在工程里把MicroLIB勾上然后在代碼里再實(shí)現(xiàn)fputc雙保險(xiǎn)。實(shí)際調(diào)試時(shí)我發(fā)現(xiàn)用USART1發(fā)數(shù)據(jù)在115200波特率下一幀大約幾十個(gè)字符傳輸時(shí)間在幾毫秒量級(jí)完全不會(huì)阻塞業(yè)務(wù)流程。5.2 用串口調(diào)試助手看數(shù)據(jù)連接好USB轉(zhuǎn)串口模塊后在電腦上安裝CH340的驅(qū)動(dòng)程序打開串口調(diào)試助手OpenJPort或者網(wǎng)上隨便一個(gè)都行選擇對(duì)應(yīng)的COM口波特率設(shè)置為115200數(shù)據(jù)位8、停止位1、無(wú)校驗(yàn)點(diǎn)擊打開串口。如果一切正常串口調(diào)試助手里就能看到不斷刷新的重量數(shù)據(jù)。這里有個(gè)地方需要注意有些USB轉(zhuǎn)串口模塊和STM32之間需要共地否則串口數(shù)據(jù)會(huì)隨機(jī)出錯(cuò)甚至完全收不到數(shù)據(jù)。接線的時(shí)候一定要把GND連上這一條經(jīng)驗(yàn)適用于所有串口通信場(chǎng)景。另外如果你的串口調(diào)試助手打開串口后沒有反應(yīng)優(yōu)先檢查設(shè)備管理器里COM口號(hào)是否正確以及是否被其他程序占用。如果你的操作系統(tǒng)是Windows 10/11CH340驅(qū)動(dòng)通常會(huì)自動(dòng)安裝但個(gè)別精簡(jiǎn)版系統(tǒng)可能需要手動(dòng)安裝。注意千萬(wàn)不要裝錯(cuò)成CH341的驅(qū)動(dòng)雖然名字像但芯片不通用。遇到驅(qū)動(dòng)安裝失敗的情況可以先更換USB口有些劣質(zhì)USB口的供電能力不足也會(huì)導(dǎo)致USB轉(zhuǎn)串口芯片無(wú)法工作。5.3 OLED屏幕初始化與顯示代碼OLED屏幕我用的是0.96寸SSD1306方案I2C接口方式。在CubeMX中已經(jīng)配置好了I2C1所以O(shè)LED的初始化就變得非常簡(jiǎn)單。因?yàn)镾SD1306的內(nèi)部驅(qū)動(dòng)邏輯已經(jīng)很成熟通常我們需要一對(duì)基礎(chǔ)的初始化命令序列和數(shù)據(jù)寫入操作。OLED顯示這塊有兩種常見方案硬件I2C和軟件模擬I2C。硬件I2C的優(yōu)點(diǎn)是CPU占用少但是有一個(gè)經(jīng)典坑如果模塊上的I2C地址不對(duì)初始化后屏幕沒有任何反應(yīng)。SSD1306的I2C地址常見是0x3C或0x3D一般由模塊背面的電阻決定。我手里這個(gè)模塊是0x3C如果你的屏幕不亮先確認(rèn)一下模塊的地址是不是和代碼里一致。核心的OLED顯示流程包括發(fā)送初始化命令序列、設(shè)置顯示坐標(biāo)、寫入顯示緩存數(shù)據(jù)三個(gè)步驟。我先用一塊128x64的OLED屏每次更新的時(shí)候把要顯示的內(nèi)容轉(zhuǎn)換成位圖數(shù)據(jù)然后通過(guò)I2C寫入SSD1306的顯存屏幕就會(huì)刷新。下面是一個(gè)簡(jiǎn)化的OLED顯示重量信息的核心片段// oled.c 部分代碼 void OLED_ShowWeight(float weight) { char buf[32]; sprintf(buf, Weight:%.2fg, weight); OLED_Clear(); OLED_ShowString(0, 0, buf); OLED_Refresh(); }SSD1306內(nèi)部有一塊顯示RAM大小為128*64/81024字節(jié)每8個(gè)像素點(diǎn)對(duì)應(yīng)一個(gè)字節(jié)。操作的時(shí)候需要先通過(guò)命令設(shè)置頁(yè)地址和列地址然后連續(xù)寫入數(shù)據(jù)。這里有一個(gè)容易出錯(cuò)的細(xì)節(jié)每次寫完一頁(yè)數(shù)據(jù)后需要重新設(shè)置頁(yè)地址否則寫第二頁(yè)時(shí)數(shù)據(jù)會(huì)錯(cuò)位。我第一次寫OLED驅(qū)動(dòng)時(shí)就遇到過(guò)屏幕內(nèi)容亂碼的情況原因就是頁(yè)地址沒有正確切換。OLED模塊的VCC是3.3V絕對(duì)不能接5V不然會(huì)直接燒掉屏幕。I2C上拉電阻的問(wèn)題也常見有些模塊已經(jīng)板載了上拉電阻就不需要再外接。如果你發(fā)現(xiàn)I2C通信時(shí)好時(shí)壞很可能是因?yàn)槟K板載上拉電阻和主控板上拉電阻并聯(lián)后阻值過(guò)小導(dǎo)致I2C信號(hào)畸變。5.4 完整數(shù)據(jù)流整合在主函數(shù)中我們把前面所有模塊串起來(lái)。主要的思路是先去皮讀取空載值接著持續(xù)讀取HX711數(shù)據(jù)并換算成重量然后把原始采樣值和換算重量通過(guò)串口輸出同時(shí)把重量值顯示在OLED上。主循環(huán)的核心代碼如下int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_USART1_UART_Init(); MX_I2C1_Init(); OLED_Init(); OLED_Clear(); printf(System Start...\r\n); // 等待一段時(shí)間讓傳感器穩(wěn)定 HAL_Delay(2000); // 自動(dòng)去皮標(biāo)定 int32_t zero (int32_t)HX711_Read_Average(10); HX711_Calibrate(zero, zero 16700, 10.0f); // 用10g砝碼做參考 printf(Calibration done, zero%d\r\n, zero); while(1) { HAL_Delay(200); // 200ms刷新一次數(shù)據(jù) int32_t raw (int32_t)HX711_Read_Average(5); float weight HX711_Get_Weight(); // 串口輸出原始值和重量值 printf(RAW:%6d | Weight:%.2f g\r\n, raw, weight); // OLED顯示 OLED_ShowWeight(weight); } }實(shí)際跑起來(lái)就是這樣上電后串口先打印標(biāo)定信息然后每隔200ms打印一行數(shù)據(jù)。OLED屏幕上實(shí)時(shí)顯示當(dāng)前的重量值。把砝碼放上去讀數(shù)馬上就有變化拿下來(lái)讀數(shù)回到接近零點(diǎn)的位置。這套流程雖然簡(jiǎn)單但串口輸出、屏幕顯示、傳感器采集三大模塊都完整地整合在一個(gè)項(xiàng)目里了。6. 常見問(wèn)題與排查實(shí)錄6.1 典型問(wèn)題速查表做這個(gè)項(xiàng)目過(guò)程中我踩了不少坑也幫網(wǎng)友排查過(guò)不少問(wèn)題。下面這個(gè)表格是最常見的問(wèn)題和解決辦法基本上覆蓋了90%的失敗場(chǎng)景現(xiàn)象可能原因解決辦法串口無(wú)任何輸出USB轉(zhuǎn)串口驅(qū)動(dòng)未裝好或TXD和RXD接反檢查設(shè)備管理器COM口TXD接對(duì)方RXDRXD接對(duì)方TXD串口輸出亂碼波特率不一致或時(shí)鐘配置錯(cuò)誤檢查CubeMX時(shí)鐘樹HCLK是否為72MHz串口波特率是否匹配OLED屏幕不亮I2C地址錯(cuò)誤或模塊供電電壓不對(duì)用I2C掃描程序確認(rèn)地址是否為0x3C或0x3DOLED屏幕花屏亂碼頁(yè)地址設(shè)置錯(cuò)誤檢查寫入數(shù)據(jù)前是否重新設(shè)置了頁(yè)地址和列地址重量讀數(shù)一直為0DOUT引腳配置錯(cuò)誤或缺少第25個(gè)SCK脈沖檢查DOUT是否為輸入模式且接線正確補(bǔ)上第25個(gè)脈沖重量讀數(shù)亂跳電源紋波大或采樣次數(shù)太少改用5V穩(wěn)壓電源增加滑動(dòng)平均采樣次數(shù)讀數(shù)一直是同一個(gè)固定值HX711模塊供電異?;騻鞲衅骶€序錯(cuò)誤檢查模塊上的LED是否亮起核對(duì)傳感器E/E-、S/S-接線負(fù)數(shù)處理不對(duì)未對(duì)24位補(bǔ)碼做符號(hào)擴(kuò)展對(duì)讀數(shù)和標(biāo)定后的差值做符號(hào)位判斷并擴(kuò)展6.2 我踩過(guò)的最大一個(gè)坑做這個(gè)項(xiàng)目時(shí)最讓我抓狂的問(wèn)題是這個(gè)把砝碼放在傳感器上串口顯示重量值從零跳到幾百克但拿掉砝碼后讀數(shù)很多時(shí)候不回到零一直在幾克到十幾克之間漂移完全無(wú)法確定最終歸零。排查過(guò)程是這樣的一開始我以為是傳感器有問(wèn)題換了一個(gè)新的問(wèn)題依舊隨后懷疑是HX711模塊采樣不穩(wěn)定試過(guò)調(diào)整采樣頻率和濾波系數(shù)還是沒有根治最后用示波器抓HX711的電源波形才發(fā)現(xiàn)VCC引腳上的紋波已經(jīng)高達(dá)200多毫伏幾乎可以確定是電源帶來(lái)的干擾。原來(lái)我用的是一個(gè)手機(jī)充電頭供電空載時(shí)輸出還算穩(wěn)定但接上傳感器和單片機(jī)之后負(fù)載變化電源紋波變大導(dǎo)致HX711的參考電壓也跟著抖動(dòng)讀數(shù)自然就漂移了。解決方式很簡(jiǎn)單換成電腦USB口供電或者用一個(gè)穩(wěn)壓芯片單獨(dú)給HX711供電問(wèn)題立刻消失。這件事給我留下了一個(gè)深刻印象很多看起來(lái)像是軟件算法問(wèn)題的現(xiàn)象根源往往在硬件電源上。所以如果你的重量數(shù)據(jù)飄得離譜先排查電源紋波再考慮改軟件濾波。6.3 濾波參數(shù)怎么調(diào)才合適關(guān)于濾波參數(shù)我建議用這種思路來(lái)確定采樣次數(shù)先用默認(rèn)值采樣5次在傳感器靜止時(shí)觀察讀數(shù)跳動(dòng)范圍。如果跳動(dòng)范圍在正負(fù)1克以內(nèi)說(shuō)明當(dāng)前濾波參數(shù)合適如果跳動(dòng)超過(guò)正負(fù)3克就把采樣次數(shù)改成10次再觀察。如果跳變?nèi)匀幻黠@那大概率不是軟件問(wèn)題需要回頭檢查硬件和電源。另外HX711芯片內(nèi)部的可選輸出速率設(shè)置也值得關(guān)注。模塊上一般有一個(gè)跳線或者電阻可以設(shè)置常見的是10Hz和80Hz兩種速率。如果項(xiàng)目不追求快速動(dòng)態(tài)響應(yīng)我會(huì)更推薦使用10Hz輸出速率它的噪聲更低讀數(shù)更穩(wěn)定。反過(guò)來(lái)如果我們做的是快速?zèng)_擊力測(cè)量那就要使用80Hz速率配合較少的平均次數(shù)來(lái)保證實(shí)時(shí)性。這個(gè)輸出速率的選擇是要和濾波次數(shù)組合考慮的不能孤立地只看一個(gè)參數(shù)。6.4 一個(gè)額外的好用功能串口指令控制去皮做完整套流程后我還給項(xiàng)目加了一個(gè)小功能通過(guò)串口發(fā)送字符觸發(fā)去皮歸零操作。這個(gè)功能在真實(shí)稱重場(chǎng)景中幾乎必備因?yàn)槊看畏派先萜骱蠖夹枰匆幌氯テゆI把容器重量清零然后再放物料才能準(zhǔn)確顯示凈重。串口指令方式非常適合遠(yuǎn)程控制或者批量測(cè)試場(chǎng)景。實(shí)現(xiàn)方法是在主循環(huán)中檢查串口是否收到特定字符收到后更新零點(diǎn)值// 在main.c的while循環(huán)中增加 if(HAL_UART_Receive(huart1, rx_buf, 1, 10) HAL_OK) { if(rx_buf t || rx_buf T) // 收到t或T觸發(fā)去皮 { int32_t tara (int32_t)HX711_Read_Average(10); offset_value tara; printf(Tara done, zero%d\r\n, tara); } }注意這里HAL_UART_Receive的最后一個(gè)參數(shù)是超時(shí)時(shí)間單位是毫秒。設(shè)置為10毫秒意思是阻塞等待10毫秒沒有數(shù)據(jù)就返回超時(shí)避免卡住主循環(huán)。這種非阻塞檢查方式在嵌入式程序里非常常用它是一種典型的超時(shí)輪詢思路。7. 核心代碼完整示例一次能跑通的HX711驅(qū)動(dòng)7.1 hx711.h頭文件定義為了讓項(xiàng)目結(jié)構(gòu)更清晰我把HX711相關(guān)的代碼整理到了獨(dú)立的頭文件和源文件中。頭文件內(nèi)容如下// hx711.h #ifndef __HX711_H #define __HX711_H #include main.h // 引腳定義 - 如果你用的不是PA5和PA6修改這兩個(gè)宏即可 #define HX711_SCK_PORT GPIOA #define HX711_SCK_PIN GPIO_PIN_5 #define HX711_DOUT_PORT GPIOA #define HX711_DOUT_PIN GPIO_PIN_6 // 函數(shù)聲明 uint32_t HX711_Read(void); uint32_t HX711_Read_Average(uint8_t times); void HX711_Calibrate(int32_t empty_offset, int32_t full_scale, float known_weight); float HX711_Get_Weight(void); void HX711_Auto_Tare(void); #endif這個(gè)頭文件單獨(dú)定義了引腳宏。你換用別的引腳時(shí)不需要去源文件里面改代碼只修改這兩個(gè)宏定義并且保證CubeMX生成的GPIO初始化一致即可。這是一個(gè)值得堅(jiān)持的工程習(xí)慣把硬件相關(guān)的配置集中在一個(gè)位置方便后續(xù)硬件改版和維護(hù)。7.2 hx711.c源文件實(shí)現(xiàn)源文件的完整實(shí)現(xiàn)如下直接復(fù)制就可以用// hx711.c #include hx711.h static int32_t offset_value 0; static float scale_factor 0.0f; uint32_t HX711_Read(void) { uint32_t value 0; uint8_t i 0; // 等待數(shù)據(jù)就緒DOUT由高變低 while(HAL_GPIO_ReadPin(HX711_DOUT_PORT, HX711_DOUT_PIN) GPIO_PIN_SET); for(i 0; i 24; i) { HAL_GPIO_WritePin(HX711_SCK_PORT, HX711_SCK_PIN, GPIO_PIN_SET); value value 1; if(HAL_GPIO_ReadPin(HX711_DOUT_PORT, HX711_DOUT_PIN) GPIO_PIN_SET) { value; } HAL_GPIO_WritePin(HX711_SCK_PORT, HX711_SCK_PIN, GPIO_PIN_RESET); } // 第25個(gè)脈沖通知芯片本次讀取完成開始下一次轉(zhuǎn)換 HAL_GPIO_WritePin(HX711_SCK_PORT, HX711_SCK_PIN, GPIO_PIN_SET); HAL_Delay(1); HAL_GPIO_WritePin(HX711_SCK_PORT, HX711_SCK_PIN, GPIO_PIN_RESET); return value; } uint32_t HX711_Read_Average(uint8_t times) { uint32_t sum 0; uint32_t max 0, min 0xFFFFFFFF; uint32_t value 0; uint8_t i 0; for(i 0; i times; i) { value HX711_Read(); if(value max) max value; if(value min) min value; sum value; } if(times 2) { sum sum - max - min; return sum / (times - 2); } else { return sum / times; } } void HX711_Calibrate(int32_t empty_offset, int32_t full_scale, float known_weight) { offset_value empty_offset; if(full_scale ! empty_offset) { scale_factor known_weight / (float)(full_scale - empty_offset); } else { scale_factor 0.0f; } } void HX711_Auto_Tare(void) { offset_value (int32_t)HX711_Read_Average(10); } float HX711_Get_Weight(void) { int32_t reading (int32_t)HX711_Read_Average(5) - offset_value; return (float)reading * scale_factor; }這段代碼里函數(shù)名使用了英文原詞注釋也用中文做了相應(yīng)的說(shuō)明方便新手理解。在代碼風(fēng)格上我比較推薦統(tǒng)一命名規(guī)范并且把模塊內(nèi)部的全局變量加上static限定防止被其他文件隨意訪問(wèn)盡可能降低代碼耦合度。7.3 在CubeMX工程中集成到主程序把hx711.c文件添加到KEIL工程中然后在main.c中包含頭文件#include hx711.h主函數(shù)中的初始化過(guò)程就是前面展示過(guò)的標(biāo)定流程這里不再重復(fù)貼代碼。但有一點(diǎn)需要強(qiáng)調(diào)上電后不要立即標(biāo)定要給HX711芯片和傳感器一個(gè)穩(wěn)定時(shí)間。我實(shí)測(cè)過(guò)HX711上電后開始讀取的數(shù)據(jù)會(huì)有少量漂移大約2到3秒后才會(huì)穩(wěn)定下來(lái)。所以在上電后加一個(gè)2秒延時(shí)然后再做去皮和標(biāo)定這樣得到的零點(diǎn)值才準(zhǔn)確。7.4 關(guān)于HX711有效位數(shù)的再討論網(wǎng)上搜索HX711的時(shí)候大家經(jīng)常會(huì)看到24bit 危-螖 adc這樣的說(shuō)法其實(shí)是在討論這個(gè)24位ADC在實(shí)際應(yīng)用中的有效分辨率問(wèn)題。我測(cè)過(guò)的結(jié)果是當(dāng)輸出速率設(shè)為10Hz、增益為128倍時(shí)HX711的無(wú)噪聲分辨率大約可以達(dá)到19到20位左右這在電子秤領(lǐng)域已經(jīng)是夠用的水平了。但是如果你把輸出速率調(diào)到80Hz無(wú)噪聲分辨率會(huì)明顯下降大約在17到18位。這個(gè)差異會(huì)直接體現(xiàn)在稱重的穩(wěn)定性和重復(fù)性上。因此在實(shí)際工程項(xiàng)目中我一般會(huì)先確定需要的精度等級(jí)。比如你做的是人體秤量程150kg分度值要求50g那么20位的有效分辨率綽綽有余。如果你要做的是珠寶秤量程100g分度值0.01gHX711的低噪聲能力就比較有限了在做小量程高精度測(cè)量時(shí)HX711的表現(xiàn)未必滿足要求。選芯片前先搞清楚需求避免做了一個(gè)看起來(lái)很酷但實(shí)際精度不符合預(yù)期的項(xiàng)目。8. 項(xiàng)目擴(kuò)展方向與最后一點(diǎn)個(gè)人體會(huì)這次HX711項(xiàng)目做完其實(shí)已經(jīng)形成了一個(gè)完整的信號(hào)采集、處理、傳輸、顯示的閉環(huán)。如果后面想繼續(xù)擴(kuò)展可以從幾個(gè)方向上入手一是把HX711的數(shù)據(jù)通過(guò)藍(lán)牙或Wi-Fi模塊發(fā)到手機(jī)APP上做成一個(gè)物聯(lián)網(wǎng)電子秤二是在系統(tǒng)中加入SD卡存儲(chǔ)功能記錄重量數(shù)據(jù)隨時(shí)間的變化曲線三是在算法上加入更復(fù)雜的濾波算法比如卡爾曼濾波雖然代碼復(fù)雜度會(huì)上升一個(gè)臺(tái)階但在動(dòng)態(tài)稱重場(chǎng)景下效果確實(shí)明顯。說(shuō)句實(shí)在話HX711套件做電子秤是嵌入式學(xué)習(xí)路上比較理想的一個(gè)練手項(xiàng)目。它不涉及冗長(zhǎng)復(fù)雜的寄存器操作同時(shí)又包含了模擬信號(hào)、數(shù)字信號(hào)、通信接口、顯示界面等多個(gè)維度整個(gè)鏈路走下來(lái)你會(huì)收獲一套非常完整的嵌入式基本功。雖然這套方案不能算作高深技術(shù)但如果你能把它徹底搞清楚后面再去接觸更高精度的ADC芯片比如ADS1232或者M(jìn)CP3561理解數(shù)據(jù)手冊(cè)的時(shí)序圖和寄存器配置時(shí)就會(huì)輕松很多。最后再多說(shuō)一句如果你用的是STM32F103C8T6這個(gè)板子接線的時(shí)候特別留意一下PA11和PA12這兩個(gè)引腳位置它們通常被USB功能占用有讀者在接線時(shí)不小心把HX711的DOUT接到了PA11上結(jié)果數(shù)據(jù)讀取一直異常排錯(cuò)了大半天才注意到這個(gè)細(xì)節(jié)。遇到奇怪問(wèn)題的時(shí)候先回頭檢查引腳配置很多時(shí)候答案就在最基礎(chǔ)的地方。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
成人无码影片视频在线| 亚洲高清欧美总合| 久久综合五月天| 嫩草在线视频| 免费岛国一级片| 一本色道久久综合熟妇| 欧美三级一级| 巨爆乳肉感一区二区三区竹菊影视| 精品午夜福利| 深夜视频| 成人日本片久久久蜜桃| 老司机久久| 亚洲男人天堂Av| 久久久久久久久成人av解说| 成人三一级一片aaa| 性爱av在线免费观看| 国产精品丝袜在线| 国产午夜精品在线观看| 亚洲精品久久久久久久蜜桃臀| 少妇特黄一区二区三区| 黄日韩| 久久啊哟| 狼人综合婷婷激情四射| 亚洲 综合 欧美| 免费啪啪一级视频| 精品少妇人妻av久久免费| 国产精品精品系列在线观看| 火箭成精品视频884必出精品| 欧美淫乱视频| 欧美成人贴图| 伊人骚琪琪亚洲天堂网站| 97久久国产亚洲精品超碰热| 麻豆成人av| 男人把坤坤插入女人的下体| 99re在线精品78| 人人搡人人肉久久精品| 国产精品3| 一区二区 电影 亚洲| http://qxhbdz.com| 日韩亚洲美女一区久久| 人人澡人人爽人人精品| 久久久熟女一区| 人妻少妇久久中文| 精品日日人妻| 日日骚中文字幕| 天天看天天综合成人网| 日本精品人妻少妇一区二区| 国产成人精品午夜福利| 老司机香蕉久久久久| 欧美在线大香999| 超碰97国产欧美| 夜夜爽夜夜高潮夜夜爽| 啊啊啊啊啊啊啊啊在线观看| 伊人黄色片| 国产一在线观看| 人人摸人人摸人人干| 国产人妖视频一区在线观看| 九色97| 久久久久久久久久久久黄色 | 人妻熟妇一区二区三区| 老子午夜伦不卡影院| 亚洲国产精品成人综合| 中文字幕精品资源在线| 色香阁在线| 久久人人爽爽爽人久久久| 一区中文字幕二区日韩| 日本久久久久久久久久| 操逼操逼操| 中文字幕五月婷婷免费| 麻豆婷婷成人一二三| 偷拍在线观看视频| 91性网| 26uuu久久| 欧美人妻一区| 久久免费看高潮毛片韩国| 国外91| 欧美日韩中文字幕不卡| 操逼大黄片| 狠狠干狠狠色| 夜夜嗨一区二区三区三州加勒比| 操逼操2| 手机在线A片| 九九热九九| 国产老熟女| 中出在线视频| a一区二区三区乱码在线| 人人摸人人添人人操 | 偷拍综合亚洲| 国产成人91一区二区三区| 97人人模人人爽人人| 中文字幕亚洲欧美在线不卡| 亚洲少妇在线观看| 色噜噜综合在线| 91网站在线播放| 囯戸精品高潮呻吟旡码| 99爱久久视频频| 色噜噜日韩精品| 自拍鲍鱼一区在线高清观看免费| 久草电影网| 亚洲 小说 欧美 激情 另类| 色色婷婷五月| 大香蕉92| 操逼国产免费| 嗯嗯啊啊视频一区二区三区| 综合亚洲欧美精品日韩?v| 精品少妇一区二区三区在线视频| 97伪v| 成人精品无码| 亚洲伊人久久精品狠狠在线| 天天艹天天日| 日韩国产十八禁| 精品国产av一区二区三区四区入口 | 亚洲无码色| 欧美体内射精| 国产97色在线| 啊啊啊啊操死我| 六月婷婷激情| 92一区二区| 色色色综合网| 少妇综合网| av优播| 天天干电影| 九月色婷婷| 97久久国产精品| 高清成年美女黄网站免费大全 | 人妻色偷色噜| 夜夜狠狠躁日日躁色视频| 一级AV性爱| 男生女生啊啊啊啊| 青娱乐亚洲自拍| 无码久| 国产女人操逼视频| 男生通女生屁股| 久久精彩免费视频| 偷拍精品一区二区三区| 性色av一区二区| 乱伦图一区| 国产精品久久久999| 日韩黄色一区二区三区| 人人操人人肉久久精品| 欧美美女在线高潮999| 人人看人人插| 久久精品无码不卡| 78综合网| 国产欧美日韩一区二区三区| 天操天操夜操夜月月年年操操| 国产一区二区在线电影| 9999久久久| 天天综合网久久ww| 伊人影院综合是一个与深夜成人在线| 精品无人区麻豆乱码1区2区图片| 亚洲另类综合欧美| 人人贴人人摸| 97操碰| 青青草亚洲一区| 欧美日韩国产中文精品字幕自在自线| 婷婷国产精品一区二区| 人人摸人人干| 国产久久久9999| 一牛影视成人片免费| 99精品无码| 免费夜夜爱黄色视频毛片| 日本性爱欧美性爱| 美欧色综合| 97超碰久| 欧美91在线+|+欧美| 色婷婷亚洲婷婷| 日本人妻伦在线中文字幕| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 人人艹亚洲| 91熟女网| 黄站在线免费观看| 色av中文字幕| 日本九九久久99播| 97人人射| 丝袜美腿制服人妻二区中文字幕 | 欧美日韩高潮喷水91| 免费在线黄片视频| 久久精品国产亚洲AV清纯| 99视频自拍区| 日本道日本道中文字幕日本道最新日本道在线观看 | AV天天在线观看| 国产精品无套内谢| 国产av激情无码久久天堂| 东京热伊久| 97精品国产手机| 任我爽视频在线观看| 操逼日韩无码 | 白丝在线一区| 中文字幕超碰CAO| 国产综合久久久鬼色| 噜噜吧,噜噜色,噜噜| 日韩Va亚洲va欧美Ⅴa久久| TS人妖另类精品视频系列 | 99精品视频在线观看| 亚洲图片欧洲图片aⅴ| 牛牛操视频逼| 国产精品免费1区2区视频| 欧美综合网A| 久久婷婷苹果| 国产精品农村妇女| 这里都是精品| 中国和日本人色哪个不下载能放| 蜜桃久久一区二区| 欧美精品97| 久久久久女教师免费一区| 久久6热精品99视频| 热久日综合| 欧美韩国你懂得在线 | 女一区二区| 美女在线H91| 泰国AV在线观看| 插入综合网| 亚洲情色五月天| 色综合中文字幕不卡| 夜夜一区二区| 亭亭丁香激情| 久久综合久色欧美综合狠狠| 久久久精品视频欧州站| 中文字幕在线免费观看| 国产精品蜜臀久久久久无码AV| 小说区 图片区色 综合区| 婷婷婷婷婷婷久久久久| 丰满人妻一区二区三区性色| 久久久无码av精| 国内自拍 日韩激情 99| 操久久久久久| 久久久久久久久久久久黄色| 国产欧美后入| 东京热,男人的天堂| 欧美78P| 亚洲加勒比| 一级性爱视频免费在线| 日韩欧美国产一区二区三区四区| 日韩成人电影AV| 婷婷五月天激情网| 91天美传媒精品| 亚洲区限制级 99| 久夜操| 色综合天天| 色偷偷综合91久久噜噜| 国产精品 久久久精品一牛| 日本不卡免费二区| 精品亚洲| 人妻熟女av国产网站| 久热这里| 亚洲青色欧美| 国产日本顶级一区二区三区| av日韩在线观看电影| 五月丁香在线| 好爽免费视频,| 欧美亚洲首页| AV污污污污| 亚码激情| 欧美后入式| 91精品国产91久久福利| 首页亚洲国产高跟丝袜诱惑视频| 日韩国产十八禁| 亚春色色| 免费观看的黄色的网站| 99热这里只有精| 嗯嗯啊啊好大好爽| 欧美日韩国产成人高清| 亚洲黑丝在线| 人妻少妇久久| 亚洲中文一区二区三区| 一区麻豆 高清中文字幕| 国产蜜臀精品一区二区尤物| 日本三级R| 中文字幕片| 香港久久久| 草草影院最新网址| 日日日啊啊啊| 蜜臀一区二区三区在线| 能看的av| 屁股久久久久久| 久久人人爽人人爽人人片Ⅴ| 亚洲精品 欧美精品| 男人天堂网站| 久久色一区| 国产又爽又黄| 午夜福利在线合集| 国产日韩欧美中文在线播放| 在线天堂999| 亚洲男人天堂AV| 五月天婷婷基地| 四虎免费视频| 亚洲激情AV| 五月天人妻综合| 操逼逼福利视频| 欧美亚洲美少妇一区二区| 亚欧色图在线激情| 麻豆人妻少妇在线免费观看| 精品美女久久久久| 狠狠夜色午夜久久综合在线| 人妻 丝袜美腿 中文字幕| 99操| 久久激情亚洲精品无码?V| 成人A片男人的天堂| 免费av在线播放二区| 少妇天堂网络| 乱伦日本色图AⅤ| 97超碰欧美手机在线| av日韩在线观看电影| 久久机热| 丁香五月久久| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 一色网男人的天堂| 日本一区二区三区四区免费观看| AV天黑人| 欧亚洲精品有视频| 欧美操人视频| 日本大香蕉| 亚洲性爱免费电影| 伊人在线大香蕉二。| 国产美女高潮叫床视频| 国产综合久久久麻桃个| 很很操在线| 色一射色一射| 中文色综合| 九九综合网| 熟女突然公开看18禁影片| 亚洲小说视频| 日韩ab网| 丁香婷婷九月| 欧洲亚洲国产综合在线| 夜夜嗨老熟女AV一区二区三区| 国产女人91精品嗷嗷嗷嗷| 男人综合网| 青青草吊丝| 口爆吞精在线观看| 丰满人妻一区二区三区四区| 神马久久中文字幕| 五月丁香在线| 丝袜熟女一区二区三区| 五月天我淫我色av| 久久一二三四五六七八九区| 色性荡荡荡荡视频| 国产成人无码久久精品| 久久久久亚洲三级电影| 久久久久国色αv免费观看| 激情图片伦理国产一区二区日韩| 亚洲最大AV网| 天天干天天燥| 国产偷拍网站| 欧亚日韩中文在线| 精品一区二区2| 久久9亚洲| 在线人人人人人人精品超| 免费a v| 久久精品操| 久久久久久性爱视频| 色婷婷亚洲婷婷| 国产高清无码一区三区二区| 亚洲丝袜诱惑| 91久久久久久久久18| 男人的天堂日韩| 少妇天堂网络| 亚洲欲色9532548967一区| 亚洲 日韩 丝袜 熟女 变态| 亚洲在线网站| 欧美97| 超碰超碰超碰超碰的大鸡吧操黑丝袜 | 蜜臀无码一区二区| 午夜欧美J进J出白浆流出久久久| 大香蕉啪啪啪| 五月天激情婷婷| 日韩性爱视频免费在线| 美国一区二区三区视频| 隔壁邻居波多野结衣中文字幕| 97九色| 亚洲视频精选| 中文字幕视频二区| 日韩精品人妻中文字幕不卡乱码| 欧美青青草视频| 蜜臀久久99精品| AV天堂电影网| 亚洲欧美综合色| 青草青青久久久久久国产| 丁香五月久久| 午夜激情床戏激情| 人妻插插人妻人| 少妇国产不卡| 狠狠色一区二区中文字幕| 免费网站观看www在线观| 日本999精品视频| 男女激情中文字幕| 欧美大战久久久伊人| 韩国女主播青草在线| 色综合潮| 一二三四视频在线社区中文字幕| 一二三四视频在线社区中文字幕| 男人的天堂在线| 偷拍在线观看视频| 韩国毛片一区二区三区| 3级毛片一二| 97超碰公开| 久九九九九九九九热| av2014 日韩在线中文字幕| 性欧美第一页| 亚洲综合在线第一页| 97欧美精品| 嗯嗯啊啊啊好舒服| 白 大 人妻 区 在线| 欧美综合 站| yazhouzaixian| 日骚逼视频| 久久精品国产亚洲AV先锋| 丰满美女一级毛片在线播放| 八人操人人摸人人看| 成人福利视频网| 97色碰| 午夜成人福利影视| 美女网站黄页| 国产400孕妇孕交群| 看一级特黄a大一片| 97在线精品| 精品十三区| 亚洲综合另类色图| 国产精品白丝| 免费强奸av| 久久手机好看网站| 国产蜜臀在线| 沈阳熟女高潮对白视频| 无码少妇精品一区二区60岁老人| 极品白嫩福利在线| 亚洲天堂另类| 日韩成人性爱AV| 亚洲综合色男人网| 久久噜噜噜精品国产亚洲综合| 黄页| 97人人操人人摸| 狠狠中文字幕| 女人天堂网| 91视频伊人| 欧美久热| 大香蕉92| 国产三级在线现体验区| 懂色综合久久久| 天操天操夜操夜月操月年年操操| AVE乱伦| 欧美99热| 干美女人妻| 刺激精品视频| 亚州一区二区| 五月色网| 91在线丝袜| 色翁荡息又大又硬又粗又爽| 999在线电影香蕉| 国产诱惑| 亚洲 自拍偷拍 欧美| 色综合一区二区三巨| 美女上床网站| 乱伦图一区| 久久精品国产99国产精品亚洲| 中文字幕乱亚洲美女精品一区| 国产偷拍自拍在线视频| 欧美91久久久久| 欧美一区二区三区四区综合| 亚洲色欲一区二区三区| 色色毛片| 久久综合日韩亚洲欧美| 97在线观看| 97天堂| 欧美精品激情| 天天做天天爱天天爽| 97超碰中文字幕| 一,爱啪啪,在线免费视频| 夜草欧美| 99久久e免费热视| 久久综合久色欧美综合狠狠| 美女尤物人人操| 97精品97| 艹少妇网站| 天天热精品| 久久精品色欧美aⅴ一区二区| 日韩八十路老熟女| 白嫩国模丰满一二三区| 亚洲蜜臀精品视频久久| 狠狠激情综合狠狠操中文字幕| 97久久天天综合色天天综合色电影| 天天操天天干一区二区 | 欧美一级AAAAAAA| 麻豆福利视频导航| 中文字幕精品日韩中文字幕| 国产精品一级毛片不卡视| 国产精品丝袜久久亚洲不卡| 岛园激情| 久久久精品网| 熟妇亚洲一区二区三区| 国产一区二区三区久久久精品| 九九国产| 开心五月婷婷| 成人av毛片在线观看| 天美传媒AV国产在线| 8050无码八戒| 亚洲欧美首页| 素颜老阿姨乱情色| 国产无马av| 精品无码久久久久久久杏吧| 久久m| 超碰免费人人| 日本爽爽爽爽爽爽免费视频| 97视频新免费| www.操| 国产美女mm131爽爽爽爽| 传媒在线观看一区二区三区| 亚洲色图20p| 综合欧美日韩在线观看| 91亚洲欧美| Aa东京男人的天堂| 九一亚洲国产免费| 中文字幕性感少妇av| 九九AV| 懂色av中文字幕一区二区三区天美| 大香蕉AV在线| 黄片com.| 亚洲国产一级黄色视频| 四虎884| 国产精品亚洲四五区在线观看| 亚洲一区二区性爱电影| 一个色导综合| 精品九九九| www久久精品| 欧美曰韩国产精品| 粉嫩国产精品久久粉嫩| 人人操人人操草草| 国产探花日韩援交| 亚洲人妻久久| 素人播放一区| 成人情色综合网| 一区黄二区黄| 2010男人的天堂| 51一区二区三区| 人人看黄色视频| 亚洲丝袜少妇在线| 激情文学亚洲| 欧美日韩天堂| 极品后入免费视频| 日韩一级二级在线| 色老汉玖玖爱| 丁香五月av| 一区二区三区精品视频| 中文字幕交换人妻| 色天使亚洲综合在线观看| 亚洲人妻在线精品| 91成人无码| 老鸭窝成人| 97国产精品久久久久| 日日夜夜青青草母狗| 欧洲中文字幕| 在线 亚洲 网爆 自拍| 亚洲男人天堂Av| 婷婷大香蕉| 激情五月天色色网| 97精品综合久久| 99操碰| 国产精品国产拍高清AV| 国产麻豆一级精品视频| 777奇米影视777四色| 亚洲砖码砖专无区2023| 又粗又长又爽在线观看| 欧美丰满少妇xx高潮| 无码 黑人一区二区三区| 日本性爱视频一级| 熟女这里只有精品6| 超碰免费人妻人人| 人人操人人操人人操人人操人人操人人人11.CM | 国产探花日韩援交| 天天色天天干天天爱| 日本色色视频网站| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 久久伊人最新网址视频| 美女裸体无遮挡永久免费观看网站| 久久超碰97| 日韩在线国产字幕| 中国操逼无码| 日韩探花精品在线视频| 九九色逼| 日本一二区免费| 久久99手机免费视频| 夜精品久无码| 91激情国产| 麻豆亚洲AV成人无码久久精品| 欧美翘臀视频网站一区二区三区| 欧美成人免费在线观看| 在线观看高清AV| 国产 v乱码一区二| 欧美躁死她一区二区| 亚洲精品一二三四区| 青青草字幕AV| v91av| 色综合一本| 强奸乱伦av电影| 蜜臀av在线播放一区二区三区| 亚洲男人天堂网久久| 九九九九九九视频| 日韩情色一区二区| av日韩国产一区二区| 99久久99九九99九九九| 综合久欧洲| 久久↗↗| av爱爱爱| 九热视频| 97超碰人操| 久久精品一区二区| 日韩国产乱子伦App| 大奶啊啊好爽 | 久久成人东京热人妻| 啪啪综合网| 亚洲图片欧洲图片aⅴ| 国产剧情一区在线观看| 亚洲综合图片在线| 91精品国产91久久福利| 日本片日本片祼观看网站在线看中文版网页在线看 | 亚洲欧美激情在线视频| 天天爽夜夜欢视| 日本久久久久久久久久| 95自拍视频在线观看| 少妇高潮99p| 亚洲脚交| 日韩卡一卡二卡三在线| 日韩内射视频| 欧美高清第一页| www.色婷婷色综合| 97一区二区三区视频| 丰满人妻aA一区二区三区| 性色av婷婷久久一区二区点复制| 成人久久精品| 欧美成人A√在线一区二区| 婷婷五月影院| 99久在线精品99re8蜜桃| 欧美亚洲尤物久久| 久久久久ab| 欧美性爱精品七区| 91女网站| 亚洲在线| 另类图片五月| 人妻久久一区二区三区| 色综合99| 国产麻豆91欧美一区二区久久婷婷国产精品 | 大地资源在线观看中文第二页| 国产丰满熟夫69mpp| 午夜视频黄| 大香蕉操久久| 97香蕉网| 欧亚乱色熟一区二区三四区| 97综合网| 日日日啊啊啊| 天天视频网站黄| 欧美丝袜激情| 1级午夜影院费免区| 伊人丝袜美腿高跟在线观看高清| 欧美亚洲国产91在线| 夜夜操老骚逼视频网站| 人人人摸人人| 97超级欧美| 日韩精品在线观看观看| 青青伊人这里只有精品| 一本一道vs波多野结衣| 色与欲影视天天看综合网| 一区二区娱乐网站| 欧综合网| 色91综合网| 97在线精品观看视频| 嗯嗯啊啊好大好爽| 不卡免费av在线播放| 欧美色爱综合| 亚洲影视综合网| 无码一区免费在线不卡| 麻豆成人av| 亚洲码专区| 亚洲 欧美 色图| 久久久久久久久久久97| 夜夜操青青草| 91天堂丝袜美腿| 国产原创自拍| 国产一区二区三区免费视频在性观看 | 精品天堂| 久久久18禁| 少妇高潮对白在线观看| 97chaopengongkai| 久久精品国产99国产精品亚洲| 国产精品自在线发布| 国产丝袜啪啪| 伊人国产视频| 91chinese在线| 日韩av性爱在线播放| 在线免费试看60秒| 日本欧美韩国日产片片在线看免| 国产91会所女技师在线观看| 亚洲 欧美 日韩另类 麻豆| 精品久久久九九九孕妇| 操逼操逼逼操操逼91 | 麻豆久久一区二区三区| 亚洲天天影视色综合| 天天爽天天爽| 熟女五十路一区二区三| 亚洲国产精品无石码久久| 中文字幕青青草| 日日AAvv| renqi久久久久久久久久久久| 福利社区午夜一区二区| 人妻天堂网| 后入式视频国产自| 综合色欧美| 九九热超碰97亚洲最新香蕉| 97av在线视频| 手机在线中文字幕国产| 午夜男人的天堂| 免费成人在线熟妇网| 天天影视网综合少妇| 久久久久成人亚洲国产| 强奸乱伦 亚洲一区| 网友自拍第1页| 久久精品电影| 97在线欧洲| 美中韩AV综合网| 91在线无码精品秘 软件| 国产乱色国产精品免费视| 国产精品久久久久久久久久久久久久吹| 91网站视频在线观看| 欧美午夜精品久久久久久3D| 丁香婷婷九月| 黄色av片三级三级三级免费看| 狠狠久久手机视频精品| 91丝袜在线观看| 蜜臀久久99精品久久久久电影| 亚洲日韩久久精品一区| 日本一天色道久久久精品视频| 成人五月香网在线| 激情文学网伊人| 看一级黄色视频| 婷婷深爱五月| 国内毛片免费h片在线| 综合操逼| 玖玖爱免费观看视频| 脫衣舞一区二区三区| 国产精品爱欲| 人人操人人摸人人看人人插| 五月天我淫我色av| 精品国产av一区二区三区四区入口| 久夜视频| 久久久96| 亚洲网站一区二区在线| 婷婷久久五月综合激情| 3PAV乱伦视频| 亚洲中文字幕在线视频一区二区| 色欧美亚洲| 亚洲天天操| 蜜臀久久99精品久久久久久-DVD原版全| 91精品国产一区三一| 欧洲综合色图| 日韩性爱长视频免费| 国产在线观看一区二区三区 | 岛国黄色短视频| 男人高清无码一区二区| 黄色av片三级三级三级免费看| 国产精品无码论坛| 天天天天干| 丰满人妻一区二区三区在线| 九九英色视频| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 99re6国产精品99re| 劲爆欧美人妖三区91| 久久久久久中文| 日韩91网站| www熟女乱伦com| 中文字幕一区二区三区高清| 国产男人又猛又粗又爽| 国产无马av| 中文字幕 一区二区 亚洲无码| 欧美亚洲一区二区久久久婷精品大包诱| 婷婷五月天久久精品视频一区二区三区| 白丝少妇一区二区| 色网亚洲人| 日韩三级伊人| 夜夜影视四色| 人妻激情另类| 国产久久一区二区| 中文字幕成人乱码熟女精品国50 | 国产精品婬乱一级毛片彝族| 天堂种子在线www网资源| 2001天天操| 91超碰在线播放| 日日骚中文字幕| 中文字幕一区二区三区高清| 99热精品在线在线| 中文字幕AV片| 精品无吗m| 97人人操人人摸| 五月天婷婷基地| 久久人妇| 91色色网站| 97任你吞精| 操B久久| 日韩91网| 午夜视频好爽啊| 久久色人体| 天天日骚逼熟女| 久久精品人人做人人看| 91九色在线| 欧美青青视频| 高清孕妇孕交| 国产大学生高潮在线播放| 极品内射| 日韩欧美日韩| 国产激情久久| 九一国产精品| 伦激情人妻另类人妻| 91丝袜美女国产| 国产欧美日产一区二区三区 - 国产欧美日 | 午夜精品久久久久久久99热影院| 亚洲第一页色网| 黄在线| 日本一天色道久久久精品视频| 精品人妻一区二区三区鲁大师| 人人人人插| 人人超碰在线观看黄| 78久久| 激情久久久| 人妻喷水| 看日韩操逼| 激情黄色五月天| 国产成人拍国产亚洲精品| 亚洲精品久久久久久久久豆丁网| 78m成人视线| 性爱av在线免费观看| 精品国产久久乱码| 中文字幕久热视频在线| 激情亚洲天堂| 在线无码视频| 加勒比海成人视频网 | 亚洲国内精品成人不卡| 人妻一二三区| 免费看污网址| 97精品熟女少妇一区| 中文字幕日韩精品一区二区三区| 亚洲乱码精品一区二区| 久草久热| 国产一区二区成人av在线播放| 久久久草成人网站久久久草成人久久久草久久久 | 大屁股xxxxx| 99re99在线视频| www…国产操逼| 天天摸天天操视频| 五月婷婷色色| 国产精品熟女一区二区三区| 国产青一二三| 成人无码电影在线观看网| 天天看片麻豆| 嫩草影院性色| 999热日韩精品| 成人欧美一区二区三区黑人一| 91亚洲在线| 玖玖爱综合| 天天弄天天操| 国产日韩中文字幕欧美| 91一区二区| 91视频精品| 国产视频大全| 久久久九九网站| 亚洲精品人体| 五十路熟女工口| 亚洲情色中文字幕一区| 亚洲资源吧| 91丨国产丨白浆| 高潮毛片无遮挡高清免费| 欧美天天综合站| 中文字幕在线日亚州9| 免费试看60秒| 操死我了嗯嗯嗯| 国产成人精品日本亚洲语言| 欧美高清色| 青青伊人久久| 婷婷伊人綜合中文字幕小说| 女人天堂av在线播放| 婷婷五月天无码 | 亚洲一区中文精品| 人澡逼| 久无码| 国产偷拍自拍在线视频| 一区二区三区四区理论片| 亚洲精品骚逼| 国产精品青草综合久久| 免费αV在线视频| 干妹子| 夜夜操91744565| 天天躁日日躁XXXXYY| 久久精品国产亚洲AV清纯| 东京热大香焦| 日日夜夜骚| 成年女人18级毛片毛片免费观看| 中文字幕人妻丝袜| 久久久精品中文字幕爱豆| 亚洲熟妇AV日韩熟妇在线| 国产欧美日韩女同性恋ww喷水精品 | 熟女突然公开看18禁影片| 午夜男女爽爽大片免费观看| 国产97综合| 丰满搜索结果 -第18页- 久久高清无码| 操逼网站视频漫画国产| 91色人妻| 伊人超碰97| 欧美在线第五页| 欧美午夜色妇色鬼| 无码又爽又硬又激情免费视频| 国产亚洲日韩在线三区黑人| 九九碰九九爱97超| 日韩精品人妻中文字幕不卡乱码| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 性色一线| 综合网色| 黄色性爱网网| 少妇xx精品| 欧美日韩啪啪电影| 永久免费观看的毛片的网站| 丝袜美腿91| 中文在线视频| 好舒服视频| 97超碰色屌| 亚洲熟妇乱女区二区三区| 丁香啪啪| 亚洲欧洲综合视频在线| 久久美女国产| 狠狠操夜夜| 欧美日韩国产另类综合| AV乱伦专区| 日本成熟少妇A∨网站| 五十路熟女人妻一区二区三区四区五| 老熟女综合网 | 欧美色婷婷| 久久综合激情| 91一起操| 婷婷色综合| 天天干天天干天天干| 天天操福利视频综合网站| 91路www| 男人把坤坤插入女人的下体 | 国产亚洲女v在线观看| 国产又黄又粗的视频| 亚洲欧洲无码bt精品合集| 操屄日韩| 欧洲综合无码| 伊人久久大香线蕉无码| 八人操人人摸人人看| 欧美另类综合久久| 亚洲码专区| 久久色情| 天天日天天插| 久久综合乱子伦国产免费| 综合日韩激情另类图片| 欧美人妻色| 亚洲清纯唯美| 熟妇人妻丰满久久久久久久无码 | 日韩伦理视频| 97视频7| 99在线啪| 亚洲美女高潮喷水视频| 亚洲天堂2020| 欧美视频一| 国产女人与拘做受视频免费| 中日韩欧美精品无码AⅤ一区二区| 国产激情av女片自拍| 大香网伊人久久综合| 青青草视频久久| 欧美97日韩| 国产女主播视频在线观看| 国产精品97视频| 国产亚洲色婷婷久久99精品91 - 百度| 国产婷婷综合在线观看| 九色精品视频导航1| 综合自拍| 大鸡吧尹人在线| 久久m| 欧美东京热青青草| 亚洲av无码国产精品字幕| 国产精品探花视频| 91粉芽高清在线一区二区| 久久欧洲| 国产精品久久久午夜夜伦鲁鲁| 欧美亚洲中文| 夜夜影视四色| 老鸭窝亚洲毛片| AV色五月天| 男人的天堂2018| 黄骗免费| 久久综合日韩亚洲欧美| 精品制服美女中文一区二区三区| 亚洲欧洲激情卡通另类文学四射小说网站| 高清无码在线播放网站| 五月激情影院| 免费成人在线熟妇网| 亚洲自拍97| 中文字幕123| 中文字幕加勒比海高清无码免费视频| 中文字幕精品专区搜索结果91| 狠狠91| 国内毛片免费h片在线| 60秒试看最爽10分钟网站| 亚洲av资源| 最新中文字幕精品在线| 欧美一二三区四五区| 欧美综色欧| 18禁网站在线播放| oumeisetupian| 欧美性夜| 天天干人妇| 91超碰碰在线| 四虎国产精品永久入口| 激情五月天网站| 久久女女| 一级黄色视频网| 校园春色综合色| 爱逼综合| 色色操| 日本亚欧爱爱| 成人 日本A片无码8888| 久久蜜色情在线视频xxx免费观看| 美女91| www.色五月| 色97欧美| 日韩欧美经典在线观看| 日本高清熟女久久一区| 自怕偷自怕亚洲精品| 国产精品久久发布| 9Ⅰ老熟女| 日本 欧美 亚中文字幕| 有码专区最新中文字幕有码| 91动漫操逼视频| 97在线资源| 韩国一级AAA| 欧洲一区二区三区免费| 久久 国产 无码| 九九久久一区二区三区| 在线日韩日本亚洲国产| 久久午夜伦| 无码人妻精品酒店| 99久久com免费视频′| 国产精品网址| 欧美色偷拍 | caorenqi shipin| 欧成人精品一区二区三区| 曰韩av中文字幕专区| 97精品全部| 国产精品电影| 久久久久久久97| 久久久久久久久久久久久久久性生活视频 | 日日黄色三级网站| 久思思热视频在线观看| 999 久久久| 午夜欧美女人操逼| 亚洲做性| 国产玖玖| 色吧5亚洲| 久久日本熟妇熟色高清| 亚洲天堂人妻熟妇视频| 久久久精品九| 五月色综合| 亚洲?V高清一区二区三区尤物| 人人手机欧洲亚洲国产人妻| 国产1024在线播放| 动漫区日韩区欧美区| 国产不卡免费在线视频| 天美传媒精品久久视频| 激情五月婷婷| 日韩特级毛片免费观看全集| 330Dv国产女人终合视频极品人与兽 | 五月丁香网站| 9色国产精品一区粉嫩| 天天干天天日天天射黄色片| 国精精品无码一二三区水多多| 亚洲91射| 操人妻少妇中文| 欧美日韩电影成人在线| 日本亚欧爱爱| 日韩AV电影网站| A级毛片在线看免费| 中出在线视频| 99国内精品| 欧美极品性爱天天射| 91欧美www| 欧美亚洲20p| 爽 好舒服 无码刺激久久| 久操97| 骚逼自拍99| 久久久艹艹艹| 国产一级操B视频| 另类图片天天影视| 97在线青| 狠狠 91| 91激情综合| 日本狠狠干| 国产精品极品美女视频| 91欧美综合| 精品一区二区久久| 99啪啪视频| 韩国黄色片精品久久久| 99久久精品无码一区二区毛片免费| 熟女一区二区三区四区| 成人老鸭窝人人在线视频| 久久99精品视频| 蜜乳AV.COM| 国产60页| 天天操狠狠日夜夜干超大胆开放com大香蕉视频在线观看 | 超碰97精品| 超碰 国产熟女精品一区| 超碰97资源大奶| 久久久激情| 青青久久手机线视频| 91人妻少妇| 亚洲色图 91| 香蕉av一区二区三区| 蜜臀在线免费观看在线免费观看| 国产强奸超碰AV| 日韩熟女乱伦中出| 神马久久久久久| 久久大香蕉97| 色哟哟AV| 天天内射| 久久综合女优| 日韩女优中文字幕| 欧美日韩国产电影| 97在线视频免费看| 夜夜 中文视频rt| 特级大荫道BBwBBwBBW| 丁香六月激情| 午夜国产成人福利视频| 欧美老妇曰批的视频| 无码直播久久久| 日日骚AV| 国产传媒日韩欧美| 少妇激情一区二区三区视频| 九九九久| 成人夜夜| 在线小说视频一区| 欧美在线综合| 91艹| 国产乱子伦一区二区三区免看| 成人在线视频一区| 精品国产99| 亚州乱码中文字幕综合久久久| 国产性感骚丝袜在线| 色综合一区二区三巨| 中文字幕啊啊啊在线观看视频| 色婷婷丁香| 婷婷综合网| 中文字幕精品一区二区精品| 婷婷99| 日韩人妻资源网| 久久婷婷一区二| 国产免费大片| 久久免费看高潮毛片韩国| 日本三级小说中文字幕| 特级大荫道BBwBBwBBW| 麻豆精品A片免费观看| 欧美色图成人网一区二区 | 女人的天堂大香蕉网| 四季AV一区二区凹凸精品小说| 成人热久久精品|