免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

ARTICLE DETAIL

資訊詳情

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

PCA9555 GPIO擴(kuò)展芯片詳解:從I2C原理到STM32實(shí)戰(zhàn)驅(qū)動(dòng)

PCA9555 GPIO擴(kuò)展芯片詳解:從I2C原理到STM32實(shí)戰(zhàn)驅(qū)動(dòng) 做單片機(jī)或者嵌入式開(kāi)發(fā)總會(huì)有那么一天你的GPIO不夠用了。板子上一堆傳感器、按鍵、LED、撥碼開(kāi)關(guān)都要接MCU引腳就那么幾十個(gè)還要留出一堆給SPI Flash、顯示屏、電機(jī)驅(qū)動(dòng)。我印象特別深的一次一個(gè)項(xiàng)目硬件已經(jīng)打樣了結(jié)果產(chǎn)品經(jīng)理臨時(shí)說(shuō)要加8個(gè)按鍵和幾個(gè)狀態(tài)燈MCU引腳一個(gè)都不剩。當(dāng)時(shí)唯一的出路就是掛一顆PCA9555搞定一切軟件上根本沒(méi)動(dòng)太多硬件上就多了一顆芯片和兩根線。這篇文章就把PCA9555這顆I2C GPIO擴(kuò)展芯片講透從內(nèi)部原理、通信機(jī)制到裸機(jī)驅(qū)動(dòng)、Linux驅(qū)動(dòng)再結(jié)合STM32WBA65這顆新出的高性能BLE芯片做實(shí)戰(zhàn)演示。如果你也遇到過(guò)引腳告急、或者想弄明白I2C通信到底怎么工作這篇文章可以直接當(dāng)參考手冊(cè)用。1. PCA9555到底是什么從管腳到寄存器逐個(gè)啃PCA9555是NXP原Philips出品的一款經(jīng)典I2C接口GPIO擴(kuò)展芯片24腳封裝提供16路雙向IO。市面上還有PCA9535、PCF8575等類似型號(hào)但PCA9555有個(gè)關(guān)鍵區(qū)別——它支持中斷輸出并且內(nèi)部有極性反轉(zhuǎn)寄存器用起來(lái)靈活很多。1.1 管腳功能與地址配置先看管腳布局。PCA9555的電源范圍是2.3V到5.5V對(duì)3.3V和5V系統(tǒng)都很友好IO口輸出電流能達(dá)到25mA灌電流直接驅(qū)動(dòng)LED完全沒(méi)問(wèn)題不需要再加驅(qū)動(dòng)三極管。關(guān)鍵管腳分幾類電源與地VCC、GND旁邊要放0.1uF去耦電容我習(xí)慣再加一個(gè)10uF電解電容電源更穩(wěn)。I2C接口SCL、SDA標(biāo)準(zhǔn)I2C引腳開(kāi)漏結(jié)構(gòu)。中斷輸出INT低電平有效。當(dāng)輸入引腳狀態(tài)發(fā)生變化時(shí)INT會(huì)拉低MCU可以通過(guò)這個(gè)引腳感知外部事件不用一直輪詢I2C總線。這個(gè)功能特別適合按鍵矩陣不然你只能不停讀I2CCPU占用高不說(shuō)總線也容易被占滿。地址選擇A0、A1、A2這三個(gè)腳決定芯片的I2C從機(jī)地址懸空時(shí)內(nèi)部下拉為低電平。IO口P0組P0.0~P0.7和P1組P1.0~P1.7共16路。地址計(jì)算規(guī)則是這樣的PCA9555的固定地址頭是0100即0x40的bit7~bit4加上A2、A1、A0組成的三個(gè)地址位最后一位是讀寫(xiě)位。所以7位設(shè)備地址范圍是0x20~0x27對(duì)應(yīng)到8位讀寫(xiě)地址就是0x40~0x4F。具體對(duì)應(yīng)關(guān)系是A2A1A07位設(shè)備地址寫(xiě)地址(8位)讀地址(8位)0000x200x400x410010x210x420x431110x270x4E0x4F這就是為什么一片I2C總線上最多能掛8顆PCA9555理論上可以擴(kuò)展出128個(gè)IO當(dāng)然實(shí)際還要考慮總線上拉電容和地址沖突。注意很多國(guó)產(chǎn)兼容芯片比如TCA9555地址完全一樣但有些便宜芯片的地址映射可能不同用之前一定要看對(duì)應(yīng)型號(hào)的數(shù)據(jù)手冊(cè)別想當(dāng)然。1.2 寄存器地圖六個(gè)寄存器搞定所有操作PCA9555之所以用起來(lái)簡(jiǎn)單是因?yàn)樗阉泄δ芏加成涞搅?個(gè)寄存器上通過(guò)I2C讀寫(xiě)這些寄存器就能完成全部配置和數(shù)據(jù)操作。寄存器名稱偏移地址(0/1代表P0/P1)功能說(shuō)明上電默認(rèn)值輸入端口寄存器0x00 / 0x01讀取IO引腳當(dāng)前電平只讀輸出端口寄存器0x02 / 0x03設(shè)置IO輸出電平0xFF極性反轉(zhuǎn)寄存器0x04 / 0x05反轉(zhuǎn)輸入極性0x00配置寄存器0x06 / 0x070輸出1輸入0xFF這里有個(gè)很重要的細(xì)節(jié)上電默認(rèn)值是所有引腳都是輸入模式配置寄存器默認(rèn)0xFF輸出寄存器默認(rèn)0xFF。這意味著如果你要配置某個(gè)引腳為輸出并輸出低電平順序必須是先把配置寄存器對(duì)應(yīng)位設(shè)成0輸出模式再設(shè)輸出寄存器為0。如果反過(guò)來(lái)可能會(huì)產(chǎn)生一個(gè)短暫的高電平毛刺在驅(qū)動(dòng)MOS管、繼電器的時(shí)候容易造成誤動(dòng)作。極性反轉(zhuǎn)寄存器用得不多但有時(shí)候能救命。假如你接了一排按鍵按下時(shí)引腳變低松開(kāi)時(shí)變高你希望讀到的值是按下為1就可以把對(duì)應(yīng)位設(shè)置成1這樣輸入寄存器讀出來(lái)的結(jié)果就變成邏輯取反了。省去在軟件里做異或操作的麻煩少幾行代碼多一分清晰。2. I2C通信機(jī)制搞懂時(shí)序才能寫(xiě)好驅(qū)動(dòng)PCA9555掛在I2C總線上I2C通信的核心就是兩根線SCL時(shí)鐘線和SDA數(shù)據(jù)線都是開(kāi)漏輸出必須接上拉電阻到VCC。很多新手在這上面栽跟頭我后面會(huì)詳細(xì)說(shuō)。2.1 地址幀和數(shù)據(jù)幀長(zhǎng)什么樣I2C通信以起始條件START開(kāi)始SCL為高時(shí)SDA從高跳變到低。結(jié)束條件STOP相反SCL為高時(shí)SDA從低跳變到高。起始條件之后發(fā)送的是設(shè)備地址幀一共8位7位設(shè)備地址 1位讀寫(xiě)位0表示寫(xiě)1表示讀。以PCA9555地址0x20為例寫(xiě)操作時(shí)發(fā)送的字節(jié)是0100 00000x40讀操作是0100 00010x41。發(fā)送完地址幀后從設(shè)備會(huì)回一個(gè)ACK位SDA拉低。如果等不到ACK說(shuō)明設(shè)備不存在、地址不對(duì)或者硬件有問(wèn)題。數(shù)據(jù)幀的格式取決于你要訪問(wèn)寄存器。寫(xiě)寄存器時(shí)先發(fā)寄存器偏移地址比如0x06對(duì)應(yīng)配置寄存器再發(fā)數(shù)據(jù)。注意PCA9555支持自動(dòng)地址自增連續(xù)寫(xiě)多個(gè)字節(jié)時(shí)不用重復(fù)發(fā)送寄存器地址。但讀寄存器時(shí)有兩種方式當(dāng)前地址讀直接發(fā)讀地址讀取上次操作位置的數(shù)據(jù)。隨機(jī)地址讀先用寫(xiě)操作發(fā)送寄存器偏移地址產(chǎn)生一個(gè)重復(fù)起始條件Repeated START再切到讀模式。我強(qiáng)烈建議大家用隨機(jī)地址讀邏輯清晰也方便讀連續(xù)寄存器。我曾經(jīng)見(jiàn)過(guò)同行用當(dāng)前地址讀結(jié)果因?yàn)樯弦淮尾僮魑恢貌淮_定讀回來(lái)的數(shù)據(jù)位置老是錯(cuò)排查了半天。I2C的時(shí)鐘頻率支持100kHz標(biāo)準(zhǔn)模式、400kHz快速模式PCA9555本身還支持1MHz高速模式。默認(rèn)用400kHz就行總線長(zhǎng)度短、負(fù)載輕的時(shí)候完全沒(méi)問(wèn)題。2.2 為什么I2C必須用開(kāi)漏輸出加上拉電阻這個(gè)問(wèn)題是網(wǎng)上被問(wèn)爆的也是面試嵌入式崗位的高頻題。I2C協(xié)議從設(shè)計(jì)上就要求支持多設(shè)備共享總線同一時(shí)刻可能有多個(gè)設(shè)備都要往總線上發(fā)數(shù)據(jù)。如果用推挽輸出Push-Pull兩個(gè)設(shè)備同時(shí)一個(gè)輸出高、一個(gè)輸出低就會(huì)直接懟在一起。輸出高的那個(gè)引腳要通過(guò)低阻抗路徑灌入另一個(gè)設(shè)備輕則邏輯錯(cuò)誤重則燒管子。開(kāi)漏輸出的結(jié)構(gòu)就相當(dāng)于一個(gè)MOS管的漏極只能主動(dòng)拉低輸出0拉高是完全靠外部上拉電阻完成的。這樣有兩個(gè)好處線與特性任何一個(gè)設(shè)備輸出低總線就是低電平天然實(shí)現(xiàn)了多設(shè)備通信的仲裁。電平轉(zhuǎn)換方便上拉電阻接3.3V各設(shè)備即使工作在不同電壓域比如一個(gè)5V的設(shè)備和3.3V的MCU由于開(kāi)漏結(jié)構(gòu)不主動(dòng)輸出高總線電平由3.3V決定天然兼容。生活化理解就是I2C總線像一條公交專線所有設(shè)備都在同一個(gè)站臺(tái)上車誰(shuí)要發(fā)數(shù)據(jù)就把車按住拉低沒(méi)人按的時(shí)候車自然停在高位上拉。2.3 上拉電阻怎么算要弄清兩個(gè)邊界上拉電阻阻值不能隨便選我之前踩過(guò)坑用了1kΩ的電阻結(jié)果總線負(fù)載太重拉低時(shí)電流太大通信不穩(wěn)定用過(guò)100kΩ的上升沿太緩信號(hào)變形高速模式下直接不通。選擇上拉電阻要注意兩個(gè)極端條件最小值限制設(shè)備輸出低電平時(shí)VCC經(jīng)過(guò)上拉電阻流到設(shè)備內(nèi)部MOS管灌電流不能超過(guò)設(shè)備允許的最大值一般為3mA~5mA。按3.3V電源、3mA灌電流來(lái)算Rmin 3.3V / 3mA ≈ 1.1kΩ所以低于1kΩ就容易出問(wèn)題。最大值限制總線上所有設(shè)備的引腳電容加上走線分布電容會(huì)形成一個(gè)RC充電回路。如果電阻太大上升沿時(shí)間常數(shù)過(guò)大在400kHz快速模式下信號(hào)拉不上去導(dǎo)致通信失敗。I2C規(guī)范要求快速模式下上升時(shí)間不超過(guò)300ns假設(shè)總線電容約200pF那么 Rmax ≈ 300ns / 0.9 × 200pF ≈ 1.7kΩ。綜合來(lái)看3.3V系統(tǒng)、400kHz單主設(shè)備、總線上不超過(guò)3~4個(gè)設(shè)備2.2kΩ到4.7kΩ是合理范圍??偩€越長(zhǎng)、設(shè)備越多阻值適當(dāng)小一些。我自己最常用的組合是4.7kΩ配100k模式2.2kΩ配400k模式基本沒(méi)翻過(guò)車。3. 驅(qū)動(dòng)開(kāi)發(fā)實(shí)戰(zhàn)從裸機(jī)到Linux用戶態(tài)PCA9555的驅(qū)動(dòng)寫(xiě)法分幾個(gè)層次最底層是操作I2C控制器或者模擬I2C時(shí)序往上才是PCA9555寄存器讀寫(xiě)邏輯。這里講兩種最常見(jiàn)的實(shí)戰(zhàn)場(chǎng)景。3.1 裸機(jī)環(huán)境GPIO模擬I2C的實(shí)現(xiàn)思路很多國(guó)產(chǎn)單片機(jī)沒(méi)有硬件I2C或者I2C外設(shè)用起來(lái)別扭狀態(tài)機(jī)復(fù)雜、出錯(cuò)不好排查我就直接用GPIO模擬。模擬I2C只要注意時(shí)序細(xì)節(jié)可靠性和硬件I2C沒(méi)差別。核心代碼分成幾層// 引腳宏定義按實(shí)際硬件修改 #define I2C_SCL_PIN GPIO_PIN_6 #define I2C_SDA_PIN GPIO_PIN_7 #define I2C_GPIO_PORT GPIOB #define SCL_HIGH() HAL_GPIO_WritePin(I2C_GPIO_PORT, I2C_SCL_PIN, GPIO_PIN_SET) #define SCL_LOW() HAL_GPIO_WritePin(I2C_GPIO_PORT, I2C_SCL_PIN, GPIO_PIN_RESET) #define SDA_HIGH() HAL_GPIO_WritePin(I2C_GPIO_PORT, I2C_SDA_PIN, GPIO_PIN_SET) #define SDA_LOW() HAL_GPIO_WritePin(I2C_GPIO_PORT, I2C_SDA_PIN, GPIO_PIN_RESET) #define SDA_READ() HAL_GPIO_ReadPin(I2C_GPIO_PORT, I2C_SDA_PIN) // 起始條件SCL高時(shí)SDA由高變低 static void i2c_start(void) { SDA_HIGH(); SCL_HIGH(); delay_us(5); SDA_LOW(); delay_us(5); SCL_LOW(); } // 停止條件SCL高時(shí)SDA由低變高 static void i2c_stop(void) { SDA_LOW(); SCL_HIGH(); delay_us(5); SDA_HIGH(); delay_us(5); } // 發(fā)送一字節(jié)返回ACK狀態(tài) static uint8_t i2c_write_byte(uint8_t data) { uint8_t i; for (i 0; i 8; i) { if (data 0x80) { SDA_HIGH(); } else { SDA_LOW(); } data 1; delay_us(3); SCL_HIGH(); delay_us(5); SCL_LOW(); delay_us(3); } // 釋放SDA等待從設(shè)備ACK SDA_HIGH(); delay_us(3); SCL_HIGH(); delay_us(3); uint8_t ack SDA_READ(); // 低電平表示ACK SCL_LOW(); return ack 0 ? 0 : 1; }注意SDA方向的切換。發(fā)送數(shù)據(jù)時(shí)SDA要配置為輸出模式等發(fā)送完釋放總線時(shí)要把引腳切回輸入模式或者寫(xiě)1讓開(kāi)漏輸出釋放否則你拉高了引腳從設(shè)備想拉低都拉不動(dòng)。PCA9555的寫(xiě)操作封裝如下void pca9555_write_reg(uint8_t dev_addr, uint8_t reg, uint8_t data) { i2c_start(); i2c_write_byte(dev_addr 1); // 寫(xiě)地址 i2c_write_byte(reg); // 寄存器偏移 i2c_write_byte(data); // 數(shù)據(jù) i2c_stop(); }讀操作要用到重復(fù)起始條件uint8_t pca9555_read_reg(uint8_t dev_addr, uint8_t reg) { uint8_t data; i2c_start(); i2c_write_byte(dev_addr 1); // 寫(xiě)地址先指定寄存器 i2c_write_byte(reg); i2c_start(); // 重復(fù)起始條件 i2c_write_byte((dev_addr 1) | 0x01); // 讀地址 data i2c_read_byte(); // 讀數(shù)據(jù) i2c_stop(); return data; }讀字節(jié)時(shí)要特別注意最后一個(gè)字節(jié)要回NACK給設(shè)備告訴它“不用繼續(xù)傳了”然后發(fā)停止條件。很多新手在這里漏掉NACK導(dǎo)致多讀了一字節(jié)或者總線狀態(tài)錯(cuò)亂。3.2 Linux環(huán)境用i2c-dev在用戶態(tài)直接讀寫(xiě)在嵌入式Linux里用PCA9555有兩條路一是寫(xiě)內(nèi)核驅(qū)動(dòng)注冊(cè)成gpio_chip這樣PCA9555的引腳就能像原生GPIO那樣被/sys/class/gpio或libgpiod使用二是直接留出I2C總線設(shè)備節(jié)點(diǎn)/dev/i2c-x應(yīng)用層用ioctl讀寫(xiě)寄存器這種方法快速驗(yàn)證硬件特別方便。對(duì)于快速驗(yàn)證我推薦第二種方案核心流程#include stdio.h #include fcntl.h #include linux/i2c-dev.h #include sys/ioctl.h int pca9555_write_reg(int fd, uint8_t reg, uint8_t data) { uint8_t buf[2] { reg, data }; if (write(fd, buf, 2) ! 2) { perror(write error); return -1; } return 0; } int pca9555_read_reg(int fd, uint8_t reg, uint8_t *data) { if (write(fd, reg, 1) ! 1) { perror(write reg error); return -1; } if (read(fd, data, 1) ! 1) { perror(read error); return -1; } return 0; } int main(int argc, char **argv) { int fd open(/dev/i2c-1, O_RDWR); if (fd 0) { perror(open i2c); return -1; } // 設(shè)置從機(jī)地址0x20為PCA9555基地址 if (ioctl(fd, I2C_SLAVE, 0x20) 0) { perror(i2c slave); return -1; } // 配置P0全部為輸出 pca9555_write_reg(fd, 0x06, 0x00); // P0輸出 1010 1010 pca9555_write_reg(fd, 0x02, 0xAA); uint8_t val; pca9555_read_reg(fd, 0x00, val); printf(Input P0 0x%02X\n, val); close(fd); return 0; }編譯命令gcc -o pca_test pca_test.c。然后運(yùn)行前確認(rèn)I2C設(shè)備節(jié)點(diǎn)存在并且當(dāng)前用戶有權(quán)限操作可能需要加sudo。Linux內(nèi)核驅(qū)動(dòng)的方式也很值得研究。內(nèi)核里其實(shí)已經(jīng)有現(xiàn)成的pca953x驅(qū)動(dòng)支持PCA9555在設(shè)備樹(shù)里配置好節(jié)點(diǎn)內(nèi)核會(huì)自動(dòng)注冊(cè)成GPIO控制器然后你在應(yīng)用層就能直接操作了。設(shè)備樹(shù)節(jié)點(diǎn)大致是這樣i2c1 { pca9555: pca955520 { compatible nxp,pca9555; reg 0x20; gpio-controller; #gpio-cells 2; interrupt-parent gpio1; interrupts 3 IRQ_TYPE_LEVEL_LOW; }; };這樣 Linux 里就能用gpiod_get或者命令行工具直接操作擴(kuò)展IO。用libgpiod命令測(cè)試gpioset gpiochip0 01 # 把PCA9555的P0.0置高 gpioget gpiochip0 5 # 讀P0.5電平4. 實(shí)戰(zhàn)落地用STM32WBA65連接PCA9555STM32WBA65是ST新一代藍(lán)牙低功耗芯片主打高性能BLE和豐富的外設(shè)資源但它的GPIO數(shù)量相比傳統(tǒng)大容量系列還是偏緊的畢竟射頻天線和射頻前端也占了PIN。用PCA9555來(lái)做外設(shè)擴(kuò)展算是處理MCU引腳不足的標(biāo)準(zhǔn)操作。4.1 硬件連接與初始化接線特別簡(jiǎn)單PCA9555的SCL、SDA分別接到STM32WBA65的對(duì)應(yīng)I2C引腳我用的是I2C1的外設(shè)PB6/PB7然后SCL、SDA各接一個(gè)4.7kΩ上拉電阻到3.3V。A0~A2全部接地INT引腳接到MCU的一個(gè)外部中斷輸入引腳比如PA0用于按鍵事件喚醒。關(guān)鍵初始化代碼void MX_I2C1_Init(void) { I2C_HandleTypeDef hi2c1; hi2c1.Instance I2C1; hi2c1.Init.ClockSpeed 400000; // 400kHz快速模式 hi2c1.Init.DutyCycle I2C_DUTYCYCLE_2; hi2c1.Init.OwnAddress1 0; hi2c1.Init.AddressingMode I2C_ADDRESSINGMODE_7BIT; hi2c1.Init.DualAddressMode I2C_DUALADDRESS_DISABLE; hi2c1.Init.OwnAddress2 0; hi2c1.Init.GeneralCallMode I2C_GENERALCALL_DISABLE; hi2c1.Init.NoStretchMode I2C_NOSTRETCH_DISABLE; HAL_I2C_Init(hi2c1); }順便說(shuō)一下GPIO配置I2C引腳要配置為復(fù)用開(kāi)漏模式同時(shí)開(kāi)啟內(nèi)部上拉或者外部上拉。如果你已經(jīng)接了外部上拉電阻內(nèi)部上拉開(kāi)不開(kāi)都行但如果沒(méi)接外部電阻就一定要開(kāi)內(nèi)部上拉不然通信上電后就是死路一條。另外PCA9555的INT引腳要配置成輸入上拉模式因?yàn)镮NT是開(kāi)漏輸出靠外部上拉拉高拉低表示有事件。4.2 核心讀寫(xiě)示例配置PCA9555的P0口全部為輸出用于控制8個(gè)LEDvoid pca9555_config_output(void) { uint8_t data 0x00; // 0輸出模式 HAL_I2C_Mem_Write(hi2c1, 0x40, 0x06, I2C_MEMADD_SIZE_8BIT, data, 1, 100); }注意HAL庫(kù)的HAL_I2C_Mem_Write內(nèi)部已經(jīng)包含了發(fā)寄存器地址寫(xiě)數(shù)據(jù)的完整流程第三個(gè)參數(shù)就是寄存器偏移地址傳0x06就是寫(xiě)配置寄存器P0口。設(shè)備地址傳0x40是8位寫(xiě)地址模式7位地址0x20左移一位HAL庫(kù)的地址參數(shù)直接傳8位形式別搞混??刂芁ED流水燈void led_flow(void) { uint8_t pattern 0x01; for (int i 0; i 8; i) { HAL_I2C_Mem_Write(hi2c1, 0x40, 0x02, I2C_MEMADD_SIZE_8BIT, pattern, 1, 100); pattern 1; HAL_Delay(200); } }按鍵檢測(cè)用中斷方式void EXTI0_IRQHandler(void) { if (__HAL_GPIO_EXTI_GET_IT(GPIO_PIN_0) ! RESET) { uint8_t input_val; // 讀取P0輸入寄存器假設(shè)按鍵接在P0.0-P0.3 HAL_I2C_Mem_Read(hi2c1, 0x41, 0x00, I2C_MEMADD_SIZE_8BIT, input_val, 1, 100); // 處理按鍵值把高四位對(duì)應(yīng)的按鍵狀態(tài)通過(guò)串口上報(bào) char msg[16]; snprintf(msg, sizeof(msg), Key:0x%X, input_val 0x0F); HAL_UART_Transmit(huart1, (uint8_t*)msg, strlen(msg), 100); __HAL_GPIO_EXTI_CLEAR_IT(GPIO_PIN_0); } }這里有個(gè)細(xì)節(jié)讀取輸入寄存器時(shí)設(shè)備地址傳0x41也就是讀地址這和寫(xiě)地址是差一位的。HAL庫(kù)的函數(shù)設(shè)計(jì)里DevAddress參數(shù)是完整的8位地址所以讀操作你要自己或上0x01。5. 踩坑實(shí)錄與排查技巧沒(méi)有不翻車的嵌入式開(kāi)發(fā)PCA9555的坑我也踩了不少。把最典型的幾個(gè)問(wèn)題和排查方法總結(jié)一下希望能幫你節(jié)省半天時(shí)間。5.1 常見(jiàn)問(wèn)題速查表現(xiàn)象可能原因排查方法I2C讀寫(xiě)無(wú)ACK地址錯(cuò)誤、芯片沒(méi)供電、SDA上拉缺失用邏輯分析儀抓起始條件和設(shè)備地址確認(rèn)發(fā)送的從機(jī)地址是否符合A0~A2配置SDA線一直是低某設(shè)備拉死總線、從機(jī)沒(méi)釋放SDA逐個(gè)斷開(kāi)從設(shè)備查找兇手或者把SDA引腳砍掉后重新上電看是否恢復(fù)高電平高速模式下通信不穩(wěn)定上拉電阻太大、總線電容過(guò)大、從設(shè)備不支持換2.2kΩ上拉降低頻率到100k縮短總線走線長(zhǎng)度輸出寄存器寫(xiě)入但I(xiàn)O不變配置寄存器還是輸入模式寫(xiě)0x06/0x07配置寄存器將對(duì)應(yīng)位設(shè)為0輸出中斷一直觸發(fā)輸入引腳懸空、極性反轉(zhuǎn)位沒(méi)關(guān)把輸入引腳配置成內(nèi)部上拉或下拉確保輸入電平確定讀回的數(shù)據(jù)不對(duì)讀地址寫(xiě)錯(cuò)、忘了重復(fù)起始條件參照3.1的隨機(jī)地址讀流程最好先用邏輯分析儀確認(rèn)時(shí)序5.2 邏輯分析儀實(shí)測(cè)心得調(diào)試I2C設(shè)備邏輯分析儀是神器操作也很簡(jiǎn)單把SDA通道接到邏輯分析儀的CH0SCL接到CH1共地設(shè)置采樣率10MHz以上然后解碼設(shè)置里選I2C協(xié)議填入7位設(shè)備地址0x20。抓波形的時(shí)候重點(diǎn)看幾個(gè)東西起始條件是否干凈SDA在SCL高電平跳變到低這一段上不能有毛刺。地址字節(jié)的bit順序是否正確地址是MSB先發(fā)第一個(gè)字節(jié)如果是0x40二進(jìn)制是0100 0000。ACK位是否正常9個(gè)時(shí)鐘周期中第9個(gè)周期SDA應(yīng)該被從機(jī)拉低如果一直是高說(shuō)明從機(jī)沒(méi)響應(yīng)。重復(fù)起始條件是否被正確識(shí)別讀操作時(shí)如果沒(méi)有重復(fù)起始直接拉低SDA/拉高SCL很多從機(jī)會(huì)不認(rèn)。我這幾年實(shí)際調(diào)試的經(jīng)驗(yàn)是90%的I2C問(wèn)題都出在硬件連接和時(shí)序不規(guī)范上軟件邏輯反而是次要的。常見(jiàn)的總線卡死就是某個(gè)設(shè)備沒(méi)釋放SDA導(dǎo)致的。這時(shí)候最快的處理就是把SDA、SCL的GPIO先復(fù)位配置連續(xù)切換十幾個(gè)時(shí)鐘信號(hào)把總線上的設(shè)備狀態(tài)機(jī)重置一遍很多問(wèn)題就迎刃而解了。6. 擴(kuò)展應(yīng)用與幾個(gè)實(shí)用技巧PCA9555不只是擴(kuò)個(gè)LED、按鍵這么簡(jiǎn)單我用的比較多的是三塊場(chǎng)景帶中斷的按鍵矩陣16路IO接16個(gè)按鍵每個(gè)按鍵按下都觸發(fā)INT中斷MCU通過(guò)一次I2C讀取就拿到全部按鍵狀態(tài)比起獨(dú)立按鍵省引腳不說(shuō)還不用輪詢功耗能壓得很低適合電池供電的可穿戴設(shè)備。STM32WBA65主打低功耗BLE配合帶中斷擴(kuò)展IO是最佳搭檔。產(chǎn)品配置撥碼開(kāi)關(guān)很多工控設(shè)備需要設(shè)備地址、波特率等參數(shù)撥碼設(shè)置PCA9555讀回來(lái)的值直接對(duì)應(yīng)配置表省去出廠燒錄環(huán)節(jié)。LED驅(qū)動(dòng)與指示燈復(fù)用PCA9555每個(gè)IO可以輸出25mA電流直接驅(qū)動(dòng)LED綽綽有余。還可以利用極性反轉(zhuǎn)寄存器做LED閃爍的邏輯反轉(zhuǎn)省去在MCU里做狀態(tài)翻轉(zhuǎn)。再說(shuō)一個(gè)技巧如果你用的是STM32的HAL庫(kù)I2C的通信過(guò)程有超時(shí)參數(shù)務(wù)必設(shè)一個(gè)合理的超時(shí)值。我習(xí)慣設(shè)100ms這樣當(dāng)從設(shè)備異常時(shí)MCU不會(huì)永遠(yuǎn)卡死在等待ACK的死循環(huán)里系統(tǒng)能及時(shí)報(bào)錯(cuò)和恢復(fù)。個(gè)人經(jīng)驗(yàn)里再補(bǔ)充一個(gè)PCA9555的IO上電瞬間是高電平輸出寄存器默認(rèn)0xFF如果你用這個(gè)IO控制繼電器或者PMOS開(kāi)關(guān)上電瞬間負(fù)載會(huì)被打開(kāi)這可能帶來(lái)安全問(wèn)題。解決方法是讓PCA9555先處于復(fù)位狀態(tài)如果有復(fù)位引腳或者在配置階段盡快把所有IO輸出置低再切換成輸出模式。如果硬件上做不到至少要在電路設(shè)計(jì)時(shí)考慮上電瞬間的行為。最后分享一個(gè)調(diào)試小技巧裸機(jī)環(huán)境下如果I2C怎么都讀不到數(shù)據(jù)先用萬(wàn)用表量一下SCL和SDA的電平正??臻e時(shí)都是高電平。如果量到某個(gè)引腳是0.8V左右不穩(wěn)定的中間電平那大概率是上拉電阻沒(méi)焊好或者焊反了。別問(wèn)我怎么知道這個(gè)細(xì)節(jié)的——我當(dāng)年在PCA9555上花了整整一下午最后發(fā)現(xiàn)是飛線斷裂導(dǎo)致SDA懸空電平漂在中間邏輯分析儀看起來(lái)全是亂碼。先把電源、上拉、焊接這些基礎(chǔ)項(xiàng)排查完再動(dòng)軟件你會(huì)少走很多彎路。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
97电影99热| 婷婷久久丁香五月| 色婷婷五月在线| 色九亚洲| 99精品综合| 色色射| 综合玖玖偷拍| 噼里啪啦完整版中文在线观看| 亚洲成人乱码av网站| 日笨久久网| 久久精品婷婷| 五月亭亭性| 成人色五月天婷婷| 日本97在线视频| 天天弄天天操| 五月丁香六月情| 99国产er热视频| 91人妻人人操| 国产成人精品亚洲线观看| 色五月丁香五月天| 五月天婷婷基地丁香| 亚洲精品**不卡在线播he| www.色婷婷.com| www色婷婷久久综合久色 | 成人国产欧美大片一区| 久久激情天堂| 99九九视频| 亚洲激情免费久久| 久久ER视频com| 婷婷五月天午夜激情影院| 99色综合| 五月丁香综合| 国自产拍偷拍精品啪啪一区二区| 天天爽天天干| 久久精品这里只有精品免费首页| 99在线69| 超碰免费人人| 日本色99| 伊人色综合久久久| 激情综合国产| 97碰| 色呦呦美女| 亚洲婷婷乱乱丁香| 婷婷丁香五月激情中文字幕版| 97碰免费精采视频| 五月婷婷日本| 熟美女麻豆| 人妻丰满精品一区二区A片| 婷婷五月丁香六月| 婷婷综合激情| 亚洲激情AV| 色婷婷久久综合| 亚洲激情五月| 狠狠操狠狠插| 91热99| www.9797国产| 五月丁香久久网| 婷婷五月六月| 色综合久久88色综合天天99| 9|无码久久久久久| 亚洲午夜AV| 色偷偷五月天| 蜜桃成语时李时珍 免费| 亚洲99综合| 五月天婷婷小说| 五月婷天天搞视频| 狠狠色噜噜狠狠| 99热久| 丁香五月亚综合图片| 日日射天天射| se99视频| 久/久精品99看9| 超碰免费大香蕉| 天天精品视频免费观看| 99九九在线视频| 九九这里有精品| 91成人性爱视频| 婷婷.com| 亚洲va国产va天堂va综合va| 99精品热| 五月婷婷电影院| 91婷婷视频| 国产成人综合亚洲| 婷婷色在线视频| 久久91久久91色欲精品| 丁香五月在线视频| 少妇综合网| 超碰91在线| 狠狠色综合网| 婷婷五月色花丁香社区| www激情| 亚洲AV免费在线| 99这里只有免费的精品| 午夜精品777| 五月丁香激情综合欧美| 国产午夜精品一区二区| 中文字幕丰满孑伦无码专区| 五月天婷婷色色网| 97色色色色色色色色色色色色色| 色综合激情| 激情五月婷婷网| 日本三级中文字幕| 亚洲操女| 综合丁香婷婷五月天| 激情美女五月天激情在线| 激情五月丁香综合网站| AVDV久久| 五月婷啪啪| 日本婷婷综合精品| 五月婷婷激情性爱| Caoporn公开| 在线观看欧美| 停停五月丁香| 亚洲无AV在线中文字幕| 97在线碰| 噜噜噜久久| 久草五月天| 五月天网址在线刘玥| 五月天伊人久久| 2016日日夜夜操| 丁香婷婷激情综合五月激情| 伊人网大香| 操人妻AV| 欧美激情xxxXX| 深爱五月激情| 色色色九九九五月婷婷| 激情五月天久久丁香| 丁香五月a| 俺去也综合| 婷婷五月天久| 色情五月停停丁香| 久草婷婷网| 丁香婷婷色| 天天看夜夜看| 在线理论片| 久久久婷婷五月亚洲97号色| 天天干天天爽| www.五月婷婷.com| 婷婷五月天基地| 国产精产国品一二三在观看| 99久久a线观| 超碰日日操| 任你搞免费视频观看| 99九九综合久久九九| 色婷婷狠狠干芒果TV| 开心五月天激情网| 梁铮版蜘蛛女在线观看| 五月婷婷基地| 丁香五月色色色色| 五月丁香婷婷色| 97性视频| 婷婷久久五月| 91中文在线| 99热这里只有精品55| 婷婷色五月91啪啪| 五月六月激情| 九九在线热九九在线热99热| 韩国婷婷丁香五月| 精品热九九| 婷婷丁香五月激情中文字幕版| 六月丁香激情网| 91色九| 五月丁香龟婷婷| 九九9久九9国产视频| 色五月天天在线观看资源站| 国产又粗又大又爽又黄| www.五月激情.com| 久久这里只有国产视频| 91狼友视频在线观看| 深爱五月激情网| 开心激情五月天网| 五月激情丁香久久综合网| 久久综合性| 99在线69| 99色在线| 婷婷五月天亚洲综合| 国产XXXX搡XXXXX搡麻豆| 婷婷欧美偷拍综合| 中文字幕成人网站| 久久人人妻| 国产女生爱爱AA| 99成人小视频| 九九干视频| 97碰超级人人看| 色欲婷婷五月天| 黄网免费观看| 欧美狠狠草| www.激情| 开心网五月色婷婷| 婷婷五月激情图片| 色色啊| 香蕉久久国产AV一区二区| 久色中文| 婷婷丁香宗合888| 99热官网精品在线| 欧美va亚洲va在线播放| 五月婷久久草| 极品少妇XXXX精品少妇偷拍| 五月天成人在线播放| 婷婷中文字幕网| 日日操日日撸| 国产Va视频| 婷婷色资源| 开心五月天激情网| 九九这里有精品视频| 免费观看全黄做爰的视频| 99热色在线精品| 99热一本久道| 国产美女无遮挡裸体毛片A片| 婷婷激情蜜桃玖玖丁香| 色欲丁香| 美腿丝袜AV天堂网| 亚洲精品操一操、噜一噜、摸一摸、爽| 亚洲精品无码一区二区| 99久在线观看| 亚洲色情网站| 侠女刀之记忆电影在线看免费| 亚洲色图欧美色图日本视频| 97狠狠色| 五月婷婷干| 日韩在线99| www.夜夜| 五月婷婷激情综合| 色婷婷久久综合久色综| 91se精品国产| 亚洲第一第二网站| 婷婷五月天电影网| 五月婷婷影院| 日本一道久久| 无套内射极品大美女| 五月丁香久久网| 人人操碰| 亚洲综合网在线| 丁香五月六月婷婷综合| 99免费视频在线观看爱| 人人操人人干AV| 色五月婷婷丁香婷婷| 97视频久久| 婷婷狠狠综合网入口| 天天爱天天做天天| 99在线观看视频蜜臀| 精品导航在线x不卡| 久久激情综合| 九九视频这里只有精品| 51XX午夜影福利| 另类小说婷婷色| 九月婷婷久久| 亚洲精品亚洲人成人网| 99热e| 五月婷婷久久大片| 国产午夜精品一区二区三区四区| 伊人五月天| 五月婷婷六月丁香五月| 99热官网精品在线| 久久婷婷亚洲| 五月婷婷婷婷| 狠狠干天天日| 99精品网| 丁香五月影视| 色婷婷丁香五月| 色婷婷九月| 五月天久久婷婷婷| 五五月五月| 天天操夜夜啊| 这里只有精品免费视频| 五月天激情四射| 97人凄人人操人人爽| 五月婷婷丁香瑟瑟视频| 九九精品热| 色在线视频网2025| AVDV久久| 91精品久久久久久| 婷婷综合网| 激情综合色网| www色色色com| 婷婷五月丁香基地| 国产精品电影| 97一区二区| 九九热123| 99精品视频免费观看近期发布| 婷色五月| 午夜成人av在线| 超碰成人公开| 禁片二区| 色情久久久| 91色干| www久久久久久| 无码九九九九| 开心久久五月天| 亚洲综合激情五月天婷婷 | 操逼视频网址| 人人插9| 国产肏屄大片| 久久久久久草黄色片AV在线观看| 狠狠人妻久久久久久综合丁香| 深爱网深爱综合网| 色色网站免费| 五月天激情丁香| 天天射影院| 五月天婷婷小说| 八戒青柠影视剧在线观看| 久久精品一区二区三区四区| 亚洲视频无| w婷婷五月婷婷w| 99热99成人| 综合亚洲色色| 色婷婷五月天视频网站| 婷婷丁香六月| 98热精品| 丁香五月天色| 日韩五月丁香| 久久精品99国产精品日本| 日韩aⅴ视频| 大香蕉Av在线| 色国产五月| 五月丁香六月香综合激情| 五月亭亭性| www.五月天婷婷| 五月丁香婷婷色啪| 婷婷丁香社区网| 五月丁香啪啪综合网| 丁香五月成人| 日比网免费国产| 亚洲婷婷激情综合激情999精品| 91啪啪| 五月婷在线| 日韩av免费版| 99精品这里只有免费视频| 日本va欧美va欧美va| 激情综合区| 激情五月丁香五月色| 人人操女人| 婷婷五月天xxx| 色色色色色色色色综合网| 91精品综合久久久久久五月丁香| 91综合色噜噜| 五月丁香六月情亚洲| WWW久久久| 毛片九九九九九九九九18| 色九月婷婷综合| 亚洲狠狠操| 九九色热| 亚洲五月天婷婷| 26uuu亚洲欧美| 996er热| 五月天天综合网色婷婷| 五月婷婷综合色啪首页| www.五月天| 婷婷色在线播放| 我要射综合| 99热精品在线观看| jiujiu热在线视频| 九月婷婷久久| 99色婷婷视频| 五月丁香婷婷久久| 99热国内精品| 五月婷婷日| 超碰日韩人妻在线| 五月涩涩网| 日韩免费视频| 九九免费视频在线| 国产亚洲精品久久久久久豆腐| 欧美久久网| 五月天色婷婷激情| 午夜福利成人AV91| 能看的av网站| 综合色影院| 色色色色色色色色色色色色色色,网站| 91九九| 九九亚洲视频| 亚洲色婷婷| 色色激情五月天| 99碰超| 久久婷五月综合| 六月婷婷色综合| 丁香五月伊人| 天天噜| 狠干综合| 久9免费视频| 激情综合网激情五月天| 色久女| 视频一二区| www.天天日| 超91在线视频| 香蕉狠狠爱视频| 超碰三级片| 日本99视频精品免费播放| 五月人妻婷婷视频| 五月丁香花视频| 亚洲AV成人精品日韩在线播放| 99精品久久| 亚洲乱码日产精品BD| 99爱免费在线观看| 丁香av网| 思思热在线| 亚洲不卡| 激情丁香五月| 亚洲色99| 深夜男女福利刺激影院一区完整| 99热精品在线| 九九99精品视频在线观看| 婷婷狠狠97| 99久.| 性色av大香综合| 九九亚洲视频| 五月婷婷激情四月| 五月婷婷激情久久| 无码91中文字幕| www.minyis.com【JT】实力收量可预付QQ2101460746 | 国产激情av| 亚洲操操| 丁香六月无码播放| 色婷婷99| 日本天堂网站99| 亚洲人人操| 成人做爰A片免费看网站找不到了| .精品久久久麻豆国产精品| 欧美va欧美va差| 91久久综合| 天天爽夜夜操| 丁香五月五婷| 婷婷开心深爱五月天| 九九九激情综合| 99精品综合| 五月天综合久久| 国产欧美日韩综合精品一区二区| 99只有这里有精品在线视频| 亚洲在线激情婷婷五月| 大香蕉操操| 亚洲综合另类| 丁香六月激情| 色99网| 色色色色热热| 婷婷丁香花五月天| 激情五月天情色| 桃色五月天| 婷婷开心激情| 五月丁香六月花| 九九热a| 丁香五月激情五月| 国产FREESEXVIDEOS性中国| 性天堂久久| 亚洲人妻五月丁香婷婷| 五月丁香999| www.色婷婷| 亚洲五月激情| 婷婷内射视频在线| 9久国产| 日韩美一级毛卡片| 丁香天堂夜| 4399无码视频二区| 日本美女97在线视频| 深爱五月婷婷| 性做久久久久久久免费看| 天天爽天天操| av九九| 天天色宗合| 婷婷五月天激情综合| 九色啦蜜臀| rr天天操| 丁香五月天激情综合| 五月激情天天干| av五月天婷婷丁香| 婷婷五月av| 五月婷婷69| 一本色道久久综合狠狠躁小说| 99热这里只有精品最新网址| 精品人妻午夜一区二区三区四区| 久久98| 99只有精品| 免费AV播放| 丁香六月婷婷| 91色五月在线观看| 久久ri精品视频| 玖玖综合玖玖| 性爱网五月天| 美妞av| 午夜青草资源| 欧美啄木乌丝袜人妻系列| 婷婷六月情| 四月婷婷五月丁香| 99热国产这里只有精品| 国自产拍偷拍精品啪啪一区二区| 秋霞九九无码| 午夜爱插插| 久久这里只有精彩| 久久99这里只有精品视频| 亚洲激情五月婷婷日日| 99偷拍视频在线日本| 婷婷五月天AV在| 综激情网| 狠狠久久婷五月综合色| 色婷婷五月天视频在线| 亚洲五月天婷婷| 色婷婷亚洲婷婷| 国产毛片欧美毛片久久久| 丁香婷婷天堂| 激情综合99| 精a品a视a频| 亚洲六月婷| 99热这里是精品| 人人爱操| 天天视频精品9| 人人干99| 激情婷婷五月色| 日韩天堂久久| www久久久| 99久久婷婷五月天| 色综合久久天天综合网| 任你躁XXXXX麻豆精品| 九九精品少妇| 琪琪秋霞| 亚洲婷婷基地| 六六久久黄色| 99久久66| 色九亚洲| 五月丁香狠狠爱婷婷综合| 成人丁香色| 五月丁花色综合网| 中文字幕成人| 久久九九亚洲| 99综合99| 狠狠做婷婷| 欧美A片在线视频免费观看| AV在线大香蕉| 五月丁香六月婷婷久久| 99re热视频这里只精品| 久久99免费视屏| 97热这里只有精品| 亚洲色就是色色色| 婷婷开心深爱五月天| 五月婷婷二月丁香| 国产AV一区二区三区最新精品 | aaaaaa片| 国产激情视频在线观看| 婷婷五月丁香手机在线视频| 人妻久久久久久| 五月五月婷婷| 性生活久久人妻| 伊人激情影院| 97干97色| 97碰啪啪| 五月天婷婷色色网| 激情六月日韩| 欧美黄色一级录像| 五月激情综合婷婷| 五月天婷婷色| 性爱网久久| 久久久性爱视频| 五月色情婷婷| 99热这里只有精品无码| 日99网站| 东北婷婷五月天| 99久re热视频精品98| 婷婷五月精品中文字幕| 亚洲激情网| 亚洲精品九九| 婷婷五月天综合色| 《亚洲操B久久免费在线观看,亚洲操B久久在线播放》在线播放 - 高清资源 - 97 | 五月婷婷激情综合网| 无码少妇高潮喷水A片免费 | 婷婷99视频在线| 午夜九九电影| 亚洲精品久久久久久久久久吃药| 第二色AⅤ| 日日干天天| 97天堂| 97人人射| 五月天日日操夜夜操 | 色婷婷操逼网| 亚洲综合另类| 中美日韩成人在线| 99热一区| 狠狠操天天操天天操| 婷婷五月天成人| 日韩99色| 五月丁香本色在线观看| 日本五月视频| 狠狠色网| 91天天操天天干天天射| 九九视频免费| 97在线观视频免费观看| 五月丁香基地| 久久精品夜色噜噜亚洲a∨| 成人网址在线观看| www婷婷| 色色色色色色网| 996er在线观看| 成人精品视频99在线观看免费| 五月丁香WWW| 亚洲av电影网站| 五月丁香六月婷婷欧美综合| 超碰电影在线播放| 婷婷午夜| 91色情播放| 亚洲免费av在线| 97久久超碰| 久久亚洲色导航| 99热午夜精品| 欧美啪啪9| 人妻AV在线| 中文毛片无遮挡高潮免费| 久久这里有精品在线观看| 狠爱婷色| 五月丁香综合| 久久婷婷五月综合色和| 久久久www| 亚洲最大成人综合网720P| 天天天天天日| 在线va网站| www.99操.com| 婷婷在线视频| 天天谢天天操| 天天激情5月天亚洲| 欧美综合激情| 五月色网| 成人综合伍月天| 玖玖无码中文| 国产毛片操B| 性生活视频98791| 最新精品视频99| 玖玖婷婷色五月| 92久久精品一区二区| 99色视频在线| 五月婷婷co.m| 激情五月天色色| 日韩五月婷婷久久| 婷婷成人视频| 五月天狠狠色| 丁香综合网| 天天插天天玩天天干| 丁香五月婷婷www..com| 丁香啪啪| 婷婷久久五月丁香| 五月天婷婷激情综合| 欧洲精品欧洲情| 欧美色色色色色色色色色色| 亚洲黄色操逼| 日日夜夜干| 天天天在线观看| 五月婷深深爱激情网| 综合激情五月丁香| 五月天婷婷网站888| 婷婷成人av| 五月天激情视频| 亚洲天堂爱爱| 九九热re99re6在线精品| 六月丁香VA| 极品少妇XXXX精品少妇偷拍| 久久九九@| 婷婷色av| 思思热在线精品视频网站| 激情五月婷婷| 五月天婷婷网站888| 色黄啪啪| 久月久在线视频| 性爱久久| 国产亚洲精品久久久久久郑州| 婷婷的色色五月天| 色无码| www99热| 黄色笑话深爱激情网丁香五月婷婷啪啪啪啪啪| 色综合色综合色综合高潮| 久操热| 婷婷色九月| 人妻aV在线| 一起肏在线视频| 色综合久网| 亚洲色图在线视频| 久久九九九九| 99久精品视频| 日韩AV片| 久久综合婷婷| 99丁香五月婷| 激情五月六月婷婷综合啪啪| 5月婷婷性视频| 婷婷五月天伊人网在线观看视频| 五月婷婷综合色啪首页| 婷婷五月丁香久久| 夜夜夜夜夜操| 五月婷婷,狠狠操| 久久综合影院| 在线日韩视频| 99热精品在线在线| AⅤ网站在线看| 久久婷婷五月天大香蕉| 97日本在线播放| 丁香五月成人自拍| 色色色色色五月| 热99免费在线| 六月丁香婷婷拍拍| 五月婷婷色情| 五月天综合在线观看视频| 999久久久国产精品| 婷婷伊人综合中文字幕| 色播播五月天| 大香焦A∨| 色情婷| 久久丁香五月综合六月激情红杏视频 | 天天爱天天日| 久久机热思思热| 丁香六月婷婷综合| 99久热这里只有精品| 九九热精品| 欧美一级a| 久9免费视频| 婷婷色五月婷婷姐妹| 婷婷六月激情丁香| 狼友超碰| 图片区 小说区 区 亚洲五月| 日韩成人影片网站| 欧美日韩成人在线观看| 性小说五月天| 99久在线精品99re8热| 超碰AV在线| 久久婷婷丁香花综合网| 影音先锋一区| 久香草视频在线观看| 亚洲人人操| 色色丁香| 色五月婷婷综合在线| 99rewww| 五月婷婷激情综合网| 99综合视频| 久久五月丁香综合| 亚洲另类婷婷五月丁香在线播放| 婷婷五月天中文字幕| 婷婷丁香六月| .肏屄视频一区二区| 天天操天天日天天爱| 久热视频这里只有精品| 玖玖热视频| 久久五月天丁香| www.99热最新视频8| 色噜噜五月天| A片试看120分钟做受图片| 色五月婷婷91| 26uuu亚洲精品国产| 亚洲色网址| 丁香五月综合久久综合| 婷婷激情欧美| 丁香六月综合激情| 久久婷婷色色| 久久激情网| 成人 在线观看国产| 91色色色| 婷婷狠狠97| 91黄色五月天视频| 激情综合啪啪啪| 婷婷五月天伊人| 亚洲免费综合一区| 精品色情一区二区三区四区| 五月婷婷与六月丁香图片激情| av五月天婷婷丁香| 狠狠狠人妻| 狠狠插狠狠插| 色五月天激情| 伊人www22综合色| 超碰免费电影| 丁香五月婷婷手机| 懂色av粉嫩av蜜臀av| 五月花综合网| 99热精品在线观看| 金桔一区二区ab地址| 97操碰视频| 91久久久久久久91| 天天摸天天做天天爱天天爽| 沈娜娜av| 五月婷婷人妻| 亚洲情欲久久| 日夜夜久久| 婷婷综合在线网| 婷婷伊人五月| 色狠狠婷婷| 久热a| 不卡在线超碰| 五月婷婷手机在线| 亚洲成人网址在线观看| 欧美成人精品老美女噜噜噜| 免费色婷婷| 这里只有免费精品| 久久色午夜在线导航| 婷婷五月天开心激情网| 天堂在线婷婷| 天天做天天爽| 五月婷婷色综图片| 99视频内射三四| 成人在线日韩| 九九热超碰| 五月丁香婷婷AV天堂| 亚洲精品一区中文字幕乱码| 激情五月亚洲综合网| 男人操女人高潮91视频| 五月丁香六月综合激情网| 久久婷婷五月综合色区| 久久思思精品| 99色日本| 亚洲AV网站| 99在线观看视频免费| 可以免费观看的av| 久久九精品| 日本高清不卡免费一区二区三区| 久色资源| 超碰人人干| 九九热超碰| 日日狠夜夜狠| 婷婷va| 久久婷婷五月天懂色| 久久成人性爱| 91a片爽| 亚洲无线视频| 五月婷婷色播视频| 日本美女97在线视频| 九九99久久| 99精品国产在热久久| 欧洲电影在线观看免费版英语版 | 国产FREESEXVIDEOS性中国| 玖玖九九99| 丁香五月婷婷亚洲天堂| 91超级碰碰| 丁香五月激情视频在线| 色情婷| 99久热| 久草五月天| 色五月激情综合网| 青青草婷婷五月天| 爆乳熟妇一区二区三区爆乳照片| 99热 免费| 激情五月婷婷丁香综合网| 99视频网址| 六月婷婷无码| 操逼综合网| 欧美成人va| 五月婷婷色激情| 色色色欧美| 五月天婷婷青青草| 激情五月天综合| 深爱婷婷丁香五月激情| 、激情六月天| 一级黄色操B| 五月丁香综合| 热久国产| 亚洲aV写真天天综合网久久| 婷婷色婷婷亚洲成人| 97婷婷五月| 丁香五月天激情综合| 天天日天天草| 色欲日日躁| 另类伊人婷婷| 婷婷五月天国产性感美女演员久久久久| 中文字幕av久久爽一区| 五月天色视频| 天天舔夜夜操www com| 婷婷的色色五月天| 秋霞少妇AV网站| 激情综合亚洲| 日本色婷婷| 另类综合国产| 久久亚洲婷婷综合色五月| 丁香五月婷婷天堂大香蕉| 精品人妻午夜一区二区三区四区| 99视频自拍| 五月天婷久精视频| 人人色AV| 婷婷丁香人妻天久久| 日韩天堂久久| 大香蕉色婷婷伊人在线| 亚洲天天| 五月婷婷欧美| 久久与婷婷| 婷婷久久色| 人人操人人爱丁香五月| va中文资源在线观看| 日本片日本片祼观看网站在线看中文版网页在线看 | 婷婷五月另类网站| 99精品无码| 97狠狠色| 91肏| 影音先锋偷偷色男人站| 五月天激情亚洲| 欧美激情-区二区三区| 六月五月久久丁香| 丁香婷婷六月激情| 九九热10| 五月激情精品视频| 小视频aaa久久久| 琪琪秋霞| 婷婷六月丁香1| 日本在线视频手机播放五月婷| 91ncom.色| 伊人干综合| 日韩久久视频| 7超碰自拍| 91色婷婷综合久久中文字幕二区| AV在线免费播放| 淫视馆AV在线| 九九精品综合| 99九九久久| 欧美欧盟性爱网| 五月丁香六月婷婷视频| 五月婷婷 婷婷五月 一区二区 久久久| 九九视频在线观看| 天天插综合| 涩涩五月天| 99精品免费| 中文字幕乱码亚洲精品一区| 97啪在线观看视频| 色碰97| 色色五月丁香婷婷综合| 国产综合81p| 婷婷六月激情| 丁香婷婷人妻| 婷婷五月天天| 人人爱人人添| 丁香五月婷婷偷拍| 91一起操| 五月天丁香| 国自产拍偷拍精品啪啪一区二区| 大学生高潮无套内谢视频| 99热这里有精品| 99在线视频网址在线观看| 久草婷妨| 91精品人妻少妇无码影院| 99热新网址| 人人操Av| 婷婷综合色播网| 99男人的天堂| 99热欧美| 大香蕉天堂色| 婷婷99中文字幕| 亚洲色婷婷婷婷人人爽| 亚洲色亚洲精品| 热久久这里只有精品| 丁香色婷婷五月天| 丁香婷婷成年| 91九色国产熟女| 这里只有精品视频在线观看免费| 五月天婷婷色小说| 五月天成人综合| 五月丁香综合在线| 久久91久久精品久久| 99资源在线视频| 五月婷婷丁香五月亚洲色| 色色色色色网站| 欧美日韩成人在线| 丁香五月天堂婷婷| 91爱操| 久久婷婷在线| 97干97色| 伊人激情综合| 亚洲激情四射| 久久偷拍综合五月天| 丁香五月天色婷婷| 九九成年视频| 九九热这里有精品视频| 婷婷五月天小说网| 九九精品热| 五月天婷婷情色| 91啪级电影| 亚洲av免费在线| 五月天久久小说| WWW,色五月| 五月丁香综合在线| 99噜噜噜在线播放| 免费黄色片子| 婷婷操婷婷干婷婷射| 欧美大肥婆大肥BBBBB| 98永久精品| 天天射综合网天天插| www久| 91综合网| 午夜精品777| 五月天精品视频| www.久久婷婷| 激情 婷婷 丁香五月天| 色欧洲| www.maotanji.com| 欧州色色| 热热色色五月天婷婷| 欧美va精品va老师va| 91九色视频在线观看| 亚洲精品第一国产综合亚AV | 色五月天电影| 丁香五月情| 婷婷五月av| 婷五月天影院| 五月天色官网| 激情综合网激情五月天| 国产精品社区| 五月婷婷九| 色97啪啪| 久久久精品色色色| 丰满少妇乱A片无码| 五月花婷婷在线精品视频| 99久.| 香蕉操亚洲| 亭亭五月丁香五月天激情| 五月丁小婷婷激情四射| 青青草蜜臀| 啪啪啪大香蕉| 五月激情丁香六月狠狠干| 五月婷婷丁香综合| 婷婷月综合| 久久婷婷综合国产| 五夜丁香| 日本3级片一区2区| 亚洲成人网站在线| 99热色精品| 婷婷综合九月| 人妻久久久久久| 色婷婷综合丁香五月天| 日日夜夜狠狠操| 久9草在线观看视频| 永久地址 色| 欧美A片在线视频免费观看| 米奇影视五月天| 亚洲无码性爱| 五月丁花六月丁香综合| 久久182| 人人摸人人| 一级二级色大片| 亚洲综合另类| www.久久久.com| 久久久18| 日日天天天| 少妇性BBB搡BBB爽爽爽视頻| 五月婷人妻| 色婷婷六月| 五月婷婷二月丁香| 激情婷婷九月| 中文字幕AV在线播放| 99婷婷| 99热在线播放| 五月天激情中文字幕| 婷婷五月天av小说| 婷婷五月丁香综合桃花色网| 激情综合色播| 91九色在线视频| 色色亚洲五月天| 伊人成人宗合网| 在线观看欧美3区| 五月天激情小说| 99re热视频这里只有综合亚洲| 色色99| 久色国产| 色婷婷a| 亚洲五月花| 密乳视频| 碰人人操| 亚洲午夜AV| 久久66成人网站| 五月停停色| 国产激情视频在线观看| 五月婷婷欧美激情| 五月丁香啪啪综合| 天天爽天天爽| 丁香五月Av| 激情小说五月天社区丁香| 丁香性爱在线视频| 99乱视频| 99热在线里有精品| 色色色色色日韩午夜激情| 激情综合无码| 狠狠干五码| 日本色图综合| 4438亚洲欧美| 51XX午夜影福利| 婷婷五月激情欧美大胆视频| 高清成人综合| 麻豆AV一区二区三区| 丁香婷婷成人网站| 狠狠88综合久久久久噜噜噜| 色色五月综合| 天天操综合网| 99热精品99| 丁香五月久久综合| 婷婷五月天av| 在线免费观看激情视频| 婷婷五月激情小说| 91婷婷五月天嫩女| 亚洲色色在线| 久久婷婷色综合| 伊人婷婷99热精品| 天天干,天天日| 五月婷婷在线视频| 777丁香六月青青草婷婷综合久月 五月丁香综合伦理片 | 天天射影视综合网| 色激情综合| 久草视频大香蕉99| 免费观看的av| 亚洲综合婷婷| 小视频久久久aaa| 插插插色综合网| 男人的天堂五月丁香| 丁香五月网在线观看| 五月丁香婷婷综合| 大胆伊人久久| 日日噜噜夜夜狠狠久久丁香五月| 天天日,天天插| 丁香综合婷婷五月天| 99在线视频在线观看| 色色操| 小骚穴电影| 狠狠色婷婷丁香五月| 欧州婷婷五月天综合| 丁香五月色| 99热在线精品观看| 狠狠99| 色播五月| 天天日,天天射,天天舔| 森林影视大全,最好看的2019年视频 | 丁香五月AV综合| 国产精品久久久久久白浆色欲| 日韩无码91| 亚洲视频在线网| 国产操B| 成人片黄网站色大片免费毛片| 综合色播| 婷婷综合激情| 91精品久久久久久综合五月天| 这里精品| 综合久久人妻| 黄色笑话深爱激情网丁香五月婷婷啪啪啪啪啪| 亚洲综合网激情小说| 丁香五月大香蕉| 日本不卡中文字幕| 色欲婷婷五月天丁香| 在线伦子99热| 超色欲天天| 狠狠色丁香久久婷婷综合五月| 色婷婷丁香AV综合| 九九成年视频| 欧洲区自拍| 五月婷婷狠狠久久| 9 9 9色色| 婷婷丁香www视频日本韩国| 日韩有码一区| 五月丁香趴趴| A级毛片高清免费不卡播放谢谢谢谢| www.91AV.COM| 国产色视频网站2| 丁香五月激情综合婷综| 91色在线| 丁香五月婷婷亚洲综合精品| 亚洲网视屏| 影音先锋色色色资源色资源色| 久久97| 天天影院色| 五月丁香综合网| 中文字幕日产A片在线看| 国产精品久久久久久久久久 | 亚洲欧美999| 中文av网站| 九色七七| 人人干av| 色伦专区97中文字幕| 99精品丁香五月| 91AV视频| 五月丁香啪啪激情| 成人操呦av| 综合色综合| 亚洲人人操| 婷婷六月激情| 办公室少妇激情呻吟A片在线观看 白人荫道BBWBBB大荫道 | 国产欧美日韩性爱| 欧美激情xxxXX| 亚洲色无码| 色婷婷中文在线| 五月天婷婷成人网| 97成人操| 国产.亚洲.欧洲视频在线| 五月丁香久人妻中文| 五月婷婷综合色拍| 色五月在线播放| 91精品综合久久久久久五月丁香| 欧美交换配乱吟粗大25P| 综合久久狠狠| 婷婷五月综合色中文字幕| 99精品在线播放| 青青草六月丁香| 日韩99视频| 99热这里都是精品| 91视屏在线观看com.wwwvv| 色婷婷社区| 69精品人人人人| 精品香蕉99久久久久网站| 五月花激情网| 六月丁香成人| 思思re99视频在线观看| 久热99| 懂色av粉嫩AV蜜臀AV| www99精品| 激情久久综合网| 色五月综合| 五月婷狠狠| 九九久久精品| 色婷婷裸体色性在线| 日本九九九九九九| 99精品在线观看| 丁香六月天堂| 97色色色色色| 99欧美三级视频| 色五月婷婷久久爱| 激情99| 九九成人电影婷婷| 久久激情视频99| 久久国产色| 中文字幕丰满孑伦无码专区| 狼人婷婷久久| 伊人网色婷婷五月天| 狠狠干在线| 丁香五月停停基地| 亚洲人妻一区二区 | 久久日韩婷婷五月| 天干干夜夜操| 99ri国产| 97成人在线视频精品| 欧美久久五月婷婷| 丁香婷婷网| 99婷婷五月天激情| 色婷婷五月网| 99激情视频| 五月天天综合| 91久久婷婷人人澡草| 婷婷五月天激情小说| 色婷婷婷婷| 六月丁香五月天| yazhoujiqingav| 凹凸7777操操操| 91热久久| 婷婷五月丁香超碰| 桔色成人在线| 大香蕉 婷婷| 日日干日日s| 婷婷色中文字幕| 日本久久天堂| 丁香五月网址| 97超级操操| 激情五月,色播五月| 色婷婷色综合久久精品V| 亚洲avjiujiur91| 久99| 91超碰在线观看| 久久狼人天堂| 成人五月天丁香婷| www.9797国产| 黄久久久| 综合网啪| 综合网啪| 可以免费观看的av| 97性高潮久久久| 九九色综合九九色| 91亚洲视频| 99亚洲日韩| 操逼五月天| 天天色综网| 综合久久综合综合| 日韩三级高清无码| 久久九九婷婷| 色婷婷电影网| 天堂综合久| 色婷婷五月综合在线| 91porn一起草| 婷婷综合精品| 337p大胆噜噜噜噜噜91Av| 色婷婷小说|