99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

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
返回資訊列表
婷婷综合成人| 99碰网站| 六月婷婷在线| 9久热| 五月丁香六月婷婷久久| 激情五月婷婷综合色播小说| 99九九久久| 六月成人网| 天天干 夜夜爽| 狼友超碰| 夜夜爱爱亚洲| 狠狠干五月| 天天插天天射| 91精品国产综合久久密臀| 亚洲乱啪| 亚洲国产精品成人午夜| 开心激情站| 丁香五月婷婷手机| 激情五月天无码| WWW·色色色·COM| 色播色丁香五月| 99九九综合久久九九| 九九综合精品| 99热这里只有精品268| 久久婷婷五月综合色区| 久9热| 青草激情综合| 亚洲综合狠狠艹| …亚洲黄色在线播放日韩、av中文a…| 久久这里只有精品8| WWW五月婷婷| 五月天伊人久久| 伊人综合网站| 激情五月丁香五月| 久久久18| 99热精品在线| www.五月.com| 人妻精品一区二区三区| 色情婷婷五月天| 色播五月网| 91热er| 婷婷五月激情欧美| 99ri国产在线| 婷婷天堂综合| 1024日韩| 六月色日韩| 丁香五月人妻| 九九视屏| 9l视频自拍9l九色9l成人| 久久久久99精品成人片| 丁香五月六月婷婷自拍| 色综合久久88色综合中文字幕| 大香蕉婷婷| 欧美丁香五月| 久9热在线视频| 精品视频网| 国产午夜成人免费看片无遮挡| 丁香五月婷久久| 成人五月天丁香婷| 国产毛片精品一区二区色欲黄A片| 性视频久久| 噜噜狠狠色综无码久久合欧美| 26uuu欧美亚洲日韩| 欧美天堂久久| 丁香久久| caopeng97日韩| 啪啪啪综合网| 激情丰满熟妇五月| 成人免费va| 夜夜爽天操| 婷婷综合网伊人| 婷婷区日本| 亚州欧美国产久精国产99综合视频| 久久久人妻不卡| 色久九| 色5月婷婷色| 五月丁香婷草| 天天做天天爱天天日| 九九性视频| 色婷婷丁香网| 洗浴中心操B视频| 色99综合视频| 高清无码网址| 亚洲精品99| 蜜臀AV在线观看| 操人妻AV| 国产婷婷五月天| 亚洲AV网址| 九九九色综合| 亚洲九九九九| 国产激情av| 天堂成人久久| .操區COm| 开心激情五月天网| 九九Av| 伊人综合网站| 生活片五区| 9超碰在线| 欧美大道不卡| 九九这里精品| Av九九| 丁香婷婷久久| 人人看人人97| 五月丁香六月婷婷免费| 亚洲午夜视频| 草榴视频黄色网| 久久久jd| 激情小说之五月| 免费播放99性爱视频| 丁香五月婷婷六月丁香| 99人妻碰碰久久久禁片| 色婷婷免费观看| 久久婷婷激情五月天一区二区| 五月 丁香 欧美| 天天做天天爱综合| 丁香六月综合激情| 丁香五月婷婷五月天| 久久精品视频99| 色五月情| 99精品国产在热久久| 欧美毛片www| www.99热这里精品| 亚洲欧美成人在线观看| 情欲综合网| 色色色网站| 六月婷婷激情| 超色欲天天| 亚洲精品操一操、噜一噜、摸一摸、爽 | 婷婷五月情| 色婷婷亚洲婷婷| 99在线视频观看| 99色色| 丁香婷婷人妻综合网| 色婷婷五月在线| 色综合色色| 久久精品五月| 色七七色九九| 激情综合另类| 丁香五月区| 青青青在线视频国产| 99久久玖玖| 狠狠久久婷五月| 9 1大香蕉| 六月丁香五月婷婷| 五月婷久久在线| 婷婷五月天六月丁香| 草草夜夜操| 五月天色图| 五月天色五月| 91精品国产99久久久久久天美| 五月天电影网| 免费碰碰视频久| 五月婷婷内射网| 日本三级日本三级99| 亚洲天堂有码| 99久视频| 大香蕉中文| 五月丁香色婷婷| 九九色网| 深爱激情五月天| 影音先锋秋秋五月婷婷| 五月天综合影院| 色五天综合| 天天婷婷天天| 亚洲美女裸体被操在线观看| 婷婷草| 亚洲狠狠丁香婷婷香蕉| 久久色五月天激情小说| 色婷婷在线影院| 久久婷婷五月草视频在线播放| 九九热精品| 91婷婷丁香| 久久久久久9| 久热免费视频| 伊人婷婷五月天av| 九九久久网| 色综合久久综合| 欧美另类五月激情| 99资源在线| www激情| 日产精品久久久久久久蜜臀| 婷婷中文字暮| 五月天激情日色在线| 99热这里只要精品免费| 91色逼| 91婷婷| 欧美噜噜免费观看| 婷婷碰碰| 色婷婷导航| 97干网站| av高清无码| 5月丁香六月婷婷| 丁香五月激情五月| 精品久久99| 久久这里只有国产| 日逼影音先锋AV男人资源站| 成人在线视频网| 蜜桃婷婷五月| 激情丁香五月天图片| 五月婷婷丁香五月 | 9九色首页| 91丨九色丨熟女| 色婷婷丁香五月天| 99成人小视频| 99ri精品视频在线观看| 六月婷婷综合网2| 六月婷婷色综合| 亚洲超碰在线| 狠狠综合久久综合| 五月天激情小说| 五月天婷a| 玖玖精品婷婷| 成人在线二区| 久青操| 五月婷婷色色| 五月丁查人人| 色五月天综合| 99热国产精品| 婷婷五月激情基地| 婷婷五月激情图片| 五月天狠狠| 婷婷五月天视| 婷婷操久久| 国产伦亲子伦亲子视频观看| 另类图片激情五月| 五月噜噜| VA日本视频| www.1024久久| 人与禽A片啪啪| 久久激情五月婷婷| 99精品视频免费| 性爱AV天堂| 久久月天堂| 久久五月丁香| 99热偷拍| 天天射影院| 五月天婷婷激情小说| 色玖玖网| 天天日日综合| 激情综合网激情五月网| 99ri久久| 亚洲五月天另类小说图片| 天天做天天爱天天日| 婷婷五月激情五月丁香五月| 人人综合色| 思思热在线视频精品| 五月99久久| 襙逼网| 五月婷在线| 中文在线成人| 男人的天堂97| 91久女| 激情综合网五月婷婷| av操一操| 5月丁香啪啪啪| 一區四區歐美日韓| 丁香五月亚洲无码| 久婷婷久草| 99热自拍| 伍月婷丁香婷| 欧美婷婷五月激情| 婷婷综合成人五月天| 婷婷激情综合| 天天色丁香| 久久天堂女人| 九九色天堂| 99re资源在线视频导航| 抽插特写| 欧美在线ee日韩| 色婷婷九月| 99热这里只有精品在线| 99在线精品免费视频| 色五月在线观看| 99免费热视频在线| 91se在线观看| 久激情网| 人妻体体内射精一区二区| 色综合天天综合成人网| 丁香婷婷性爱| 99自拍视频| 日日日日日| 99热99在线| 99九九久久| 丁香六月婷婷综合| 狠狠爱青青草| 色婷婷情片| 91精产一区三区免费观看| 五月婷婷六月丁香首页| 免费97碰碰| 色色色综合色| hd五月婷婷在线| 手机AVAV天堂看网| Www.婷婷五月| 婷婷色丁香五月| 婷婷金品综合视频| 超碰9799| 91狠狠色色丁香婷婷综合久久| 91人人爽狠狠狠| av中文在线| 丁香五月天色综合| 五月综合六月婷婷| 五月色婷婷中文字幕| 色五月婷婷中文字幕| 玖玖色综合| 无码99| 亚洲精级| 殴美激情综合网| 9.1综合网| 六月婷婷激情小说网| 亚美欧色影院| 色区久久| www.日本91| 丁香五月精品视频| 99精品免费欧美小视频| 五月丁香激情综合网| 久久艹 五月天| 变天就操逼婷婷五月| 婷婷99中文字幕| 九九热这里有精品23| 五月网在线| AV在线免费网站| 狠狠操综合| 天天色凹凸| 婷婷婷久久久| 華人性愛AV在線| 亚洲色综合性| A久久| 日本色五月| 99欧州偷拍视频| 亚洲亚洲人成综合网络 | 亭亭色色五月天| 伊人婷婷五月| 99热在线观看免费精品| 91婷婷在线观看| 色色色99韩| 色播五月丁香| 97日本在线播放| 九月影院義母在线播放| 亚洲热视频| 99精品在线| 91大操| 91综合在线| 婷婷婷婷婷开心无码播放| 综合色99| 青青热视频| 久久丁香五月天| 亚洲深喉aV| 五月丁香婷婷在线| 99在线视频精品| 1024人妻无码中文字幕| 天天添天天摸天天天天做| 亚洲av成人在线| 色亭亭九月| 五月丁香天天| 国产精自产拍久久久久久蜜| 26uuu青青| 激情六月综合| 丁香社92视频| 亚洲热久久| 久久AV无码精品人妻系列试探| 日本啪啪网| 婷婷五月天免费视频| 夜夜操加勒比| 五月色丁香国产在线视频| 99热最新| 久久伊人大香蕉| 99爱视频在线| 综合久久高清| 久久婷婷网| 四射综合网| 五月婷婷婷婷网| 色欧美色色色| www.俺去也com| 91碰超| 久久婷婷的综合色丁香五月| 婷婷激情综合| 丁香五月天网站| 人妻视频在线| 狠狠搞五月天| 大香蕉AV在线| 日本成人噜噜噜噜噜| 91精品综合久久久久久五月丁香| 99色色网站| 婷婷五月天AV| 五月丁香久久综合精品| 五月天社区婷婷| 天天插天天干天天舔| 婷婷无五月无码视频| 99热精品9| 九月丁香婷婷基地| 亚洲成人五月| 色婷婷五月综合| 色五月播五月| 四色女婷婷| 婷婷五月丁香色色| 噜啊噜在线| 色域五月婷婷丁香| 九九热视频在线观看| 五月婷婷丁香五月亚洲色| 丰满少妇猛烈A片免费看观看| 久久伊人日日夜夜| 色九月国产| 国产综合色婷婷精品久久| 超碰人人艹| 色情综合| 99九九视频| 激情婷婷在线中文字幕| 国产欧美熟妇另类久久久| 五月婷婷深爱六月| 日本三日本三级少妇三级66| 亚洲男女激情| 狠狠操婷婷| 欧美色图天堂网色| 怡红院AV亚洲一区二区三区H| 狠狠五月天婷婷激情网。| 嘿嘿视频免费看9| 综合伊人久久| 五月婷婷之激情五月| 久热99久热| 综合色99| 天天色综网| 99久久婷| 婷婷狠狠青青| 九九香蕉网| 五月丁香婷婷激激激综合网色播| 日本啪啪天堂| 一区中文字幕电影| 无码少妇高潮喷水A片免费| 色综合久久88色综合天天99| 密臀久久| 99精品自拍视频| 热91久| 色五月超碰| 免费精品66| 欧美亚洲成人在线| 色婷婷五月综合激情中文字幕| 色婷婷超碰| 欧美激情2025| 激情99热| 精品婷婷| 久99久99精品免| 日韩成人中文| 久久人人妻| www婷婷| 色婷婷深爱五月| 成人av观看| 亚洲黄网AV| 色色99| 99免费| 99色视频在线观看| 狠狠操之狠狠操| 色色婷婷丁香五月天| 亚洲综合色婷| 熟女人妻视频| www.zbzhongsen.com| 久久久无码精品成人A片小说 | 丁香六月激情| 天天干狠狠| 97碰碰视频| 色欲久久久久| 婷婷六月情| 五月丁香婷婷综合激情基地| 五月激情综合婷婷| 五丁香激情综合| 99国产小视频2013| 色久播播| 中文久久久人妻| 色九九综合| 色情久久久| 日韩在线一级| 9l视频自拍9l视频自拍九色学生| 色五月婷婷AV| 99热丁香| 丁香色五月 97干| 操97免费超级视频| 亚洲成人av在线| 天堂久久性| 99免费偷拍视频| 亚洲情综合五月天| 亚洲激情五月| 激情五月婷婷| 成人丁香| 丁香婷婷久久 | 超碰国产在线观看| 欧洲亚洲免费视频9| 午夜爱爱网站| 婷婷激情五月综合| 九九色热| 91午夜婷婷狠狠久久综合9色| 婷婷综合中文字幕| 亚洲第二AV| 91干网站| 日本欧特黄色刺激一区影视久精品无码| 高清资源站日A美A欧亚…| 国产乱子轮XXX农村| 大地资源色婷婷视频在线| 五月天激情小说网| 婷婷综合天堂| 综合一区二区三区| www.激情.com.| 国产精品在线视频| 婷婷久久亚洲| Av大香蕉| 婷婷色影音天| 97婷婷五月激情六月丁香伊人| 五月婷婷丁香六月| 丁香五月婷婷六月婷婷| 五月婷婷干| 99热无码首页| 天天操比比| 亚洲A片成人无码久久精品青桔| 91男同视频| 色播激情婷婷| 综合日本婷婷| 偷偷狠狠久久婷婷五月天| 人人舔人人色人人高潮| 99热在线观看亚洲区| 激情综合网激情五月天| 免费做A爰片77777| 天天操五月天| 伊人成人宗合网| 欧美成人A片AAA片在线播放| 色色色色综合网| 青青久久五月| 婷婷色综合| 亚洲成人色五月婷婷综合| va亚洲中文在线| 中文字幕在线播放视频| 亚洲AV成人在线观看| www. 五月. com| 91大神操美女| 五月婷婷五月天天| 婷婷五月天av| 狠狠干狠狠操狠狠爱| 任你艹| 伊人五月综合网| 色婷婷伊人激情在线观看| 9色天堂| 婷婷色中文字幕| 四月婷婷丁香| 五月天成人综合| 精品九九婷婷| 五月天婷婷久久日| 影视av久久久噜噜噜噜噜三级| 亚洲综合五月天婷婷丁香| 六月色国内综合| 狠狠色婷婷7777久| 婷婷九月在线| 五月婷婷说| 九九av| 久久久久久久久久久久63| 色之综合网| 伊人婷婷色| 91碰碰视频在线观看| 丁香五月婷婷无码AV| 激情五月天影院| 国产69精品久久久久999小说| 五月天婷婷免费| 涩婷婷五月天| 91人妻九色大屁股| 激情网站五月| 亚洲综合九九| 久久草中文日韩欧美| 色婷五月天激情| 亚州在线中文字幕| 丁香婷婷激情五月色| 久久综合爱| 婷婷99狠狠躁天天躁中文| 亚洲性爱区无码区| 久久婷婷综合五月| 日本九九热| 久久人人妻| 99操久久| 九九香蕉网| 五月天激情四射网站| 26uuu最新地址| 婷婷五月天国产性感美女演员久久久久| 丁香五月天在线观看视频| 六月丁香中文字幕| 亚洲图片 丁香婷婷| 伊人狠狠狠综合| 丁香婷婷大香蕉| 99热r| www..999热久| 日本一道久久| 九九热精品视频| 久综合网| 开心五月深爱五月| 99视频地址| 久久婷五月天| 丁香六月成人网| 人人摸人人操人人爱| xxx综合在线| 欧美狠狠一在草| 激情久久综合| 色五月丁香六月资源站| 97操操| 天天婷婷天天| 超碰免费人人肏| 天天日天天干天天插天天射| 中文字幕在线不卡视频| 五月婷婷九| 九九99九九99偷拍视频免费看| av色婷婷| 色色99色色| 丰满少妇猛烈A片免费看观看| 色婷丨日丨天丨综合久久| 69精品人人人人| 青青草原99热| 激情文学第四色婷婷丁香五月| 丁香六月激情四射| 影音先锋xfplay资源男人网| av操逼网| 少妇人妻人伦A片| 五月丁香啪啪激情| 99热热热99精品婷婷| 五月婷婷激情综合视频| 色婷婷免费观看| 中文字幕 码精品视频网站| 久久成人精品视频| 日韩av在线免费观看| 丁香五月成人| 国产精品A片| 人人综合色| 六月撸婷婷| 亚洲视频丁香网va| 九九中文字幕九| 五月天com| 精品人妻久久久久久久| 肏屄色播伊人97婷婷| 久久九九网| 天天操狠狠操| 俺来也综合网精品一区| 99国产精品久久久久久久久久久| 日噜噜色| 日本高清久久| 激情99在线视频| 色 免费网站视频| 婷婷色网址| 久久99网站| 啪到高潮激情丁香五月| 涩涩涩,com| 久热久re| 亚洲精品久久久久久久久久吃药| 99成人| 六月伊人婷婷| 色五月激情| 超碰色热| 久久久久婷婷| 五月婷婷丁香啪啪| 九九99在线观看视频| 肏日网在线看| 成人精品一区日本无码网| 五月婷婷激情日本| 九九热这里只有精品31| 18av天堂| 丁香色六月婷婷| 热婷婷av| 不卡在线中文字幕无| 五月激情偷拍| 色吧婷婷| 婷婷丁香五月天激情| 五月色综合| Caop在线| 色444综合网| 色日本颜射| 丁香六月婷婷久久综合| 中文字幕AV网址| 日本色狠狠| 国语精品探花| 色宗合久久五月婷婷| 男人天堂伊人五月丁香| 久久久婷婷| 色综合久久中文| 免费99色| 婷婷中文字暮| 97碰 在线视频观看| 欧美精品XXXXBBBB| 午夜不卡久久精品无码免费 | 亚洲色婷婷网站| 91精品91久久久中77777| 中文字幕,综合,91| 成人 视频免费观看网站| 99五月婷| 182tv992tv人之初午夜免费观看| 天天日中文| 99热个人在线| 亚洲av另类在线观看| 婷婷色色亚洲| 伊人九九68| WWW.亚洲无码| 97超级碰碰碰久久久| www.99riav99| 亚洲视频在线网| 国产AV网页| 亚洲国产网站| 五月综合激情图片| 亚洲av无码精品色午夜| 色婷婷久久综合久色综| 91久久婷婷| 18av天堂| 久久五月丁香综合17C| 五月亭亭六月激情| www.av骚货| 夜夜操,天天撸| 丁香五月开心五月激情| 色五月激情五月| 天天狠狠夜夜狠狠2023| 久久久久久97| 久久机热/这里只有精品| 99这里| 国产国产乱老熟女视频网站97| 色婷婷av在线观看| 丁香六月婷婷缴情欧美| 中文字幕在线人妻| 99超级碰碰| 婷婷香香五月| 开心五月婷婷激情网| 开心婷婷五月| 日韩AV大全| 农村熟妇高潮精品A片| 色婷五月| EEUSS鲁片一区二区三区| 亚洲人妻电影| 色五月情| 久久婷综合网| 色色色视频免费无码 | 久久怕怕视频| 久热 91| 亚洲色久| 久热爱大香蕉在线蜜臀悦色| 婷婷五月色花丁香社区| 另类视频一区| 玖玖资源天天无码| 色播婷婷五月天| www。久久久久一b。Cc| 综合久久高清| 国产精品-第3页-91JQ就要激情网91JQ5.JQJQ926.XYZ | 狠狠操天天操综合| 五月天最新网| 婷婷五月天AV| 大香蕉75线| 狠狠做六月爱婷婷综合aⅴ| 激情5月婷婷狠狠干| 色五月在线播放| 免费视频无码| 97久久精品视频| 在线99色| www.五月天。com| 91碰| 伦乱人妻| 婷婷丁香五月天欧美| 日本美女五月天| 亚洲国产精品SUV| 91凹凸在线| 日日爽天天| 五月婷在线| 色色色色色五月| 五月丁香六月婷婷免费视频| 狠狠爱婷婷| 大香蕉久久综合网| 99操久久| 六月成人网| 欧美碰碰碰| 激情婷婷丁香色五月综合| 91ncm视频| 夜色爱爱亚洲| 色综合色婷婷色伊人| 天天天天操| 午夜69成人做爰视频| 91久久久久久久久| 丁香五月婷婷网| 成人婷婷色综合| 99国产精品久久久久久久久久久| 庭庭久久内射| 99小视频网站| 婷婷五月天天| 99热精品在线播放| 九九综合色综合| 1024欧美看片| 5月婷婷性视频| 天天日天天插| AV在线资源| 久久婷网| www狠狠| 久久婷婷网| 97se视频在线| 激情五月婷黄版| AVV黄| 婷婷深爱五月丁香| 免费观看高清无码| 亚洲va欧洲va国产va不卡| 色色色色丁香| 亚洲成人乱码av网站| 99在线精品观看99| 色色激情网| 99热日韩| 一起草无码视频| 操一操干一干| 人妻自慰在线| 97人人操人人干| 9热视频在线观看| 亚洲第一黄网| 婷婷放心五日爱| 超碰在线99| 91婷婷五月天综合视频| 五月天久久色| 99久在线精品99re8| 九色在线观看91av| AV网站免费在线| 另类亚洲2| 任你草| 天天做天天双| 久热精品免费视频4| 成人性爱无码| 色九亚洲| 伊人碰碰碰| 色欲一区二区三区精品A片| 国产精品久久久99视频| 国产美女无遮挡裸体毛片A片| 丁香婷婷五色月| 亚洲成人日韩无码精品| 第五色婷婷| 久久五月激情综合| 91丨九色丨国产打屁股| 深爱婷婷色| 色狠狠色噜噜AV天堂五区| 久久无码激情视频| 色网五月婷婷| 一本色道久久综合狠狠躁小说| 国产免费av在线| 91欧美| 色婷婷丁香五月天在线视频| 丁香五月婷婷高清| 国产激情综合| 丁香五月天激情综合网| 国产肏屄大片| 九九Av| 亚洲六月色| 九九色影视| 色综合色香蕉网| 丁香婷婷色九月| 久久9精品| 日本三级第一页| 久热综合| 婷婷色Av| 色色色色五月天| 激情图片亚洲| 伊人久久五月天| 成年人夜夜喷水| 国产黄色在线观看| 色婷婷88| 天天射天天射一道本日本社区 | 日熟女| 国产看真人毛片爱做A片| 午夜婷婷五月天| 色婷婷久久| 色噜婷婷| 99免费在线视频| www.狠狠艹| 玖玖99福利| 伊人玖玖婷婷| 色婷婷五月天| 美欧日韩国产成人在战| 激情久久伊人| 日韩视频99| 天堂草在线看www| 丁香六月色婷婷欧美| 97干在线观看视频| 五月婷护士| 91久久婷婷| 91九色熟女| 丁香五月激情综合啪啪| 九九九精品视频免费观看| 91人人超碰在线| 97色射| 99在线免费视频| 99无码| 亚洲丁香五月| 99热这是里只有精品| 五月激情网站| 日韩 mm 不卡| 欧美成人精品三区综合A片| 婷丁香五月天| 色播五月婷婷五月| 丁香五月人妻熟女| 亚洲丁香五月综合| 色五月天.con| 91ncm视频| 嫩草视频。| 久久一级AV| 国产精品久久久久久久久久| 狠狠干天天日| 大香蕉综合在线| 操操自拍| 五月婷婷AV| 99爱在线视频| 国产在这里只有精品| 能看的av片| 丁香五月在线观看综合| 99色看这里只有精品| 色五月婷婷婷婷婷婷婷婷婷婷| 亚洲av日韩无码| 婷婷丁香社区| 伊人久久大香| AV六月丁香| www.久久99精品| 免费视频无码| 欧美成人精品A片免费一区99| 思思热视频在线| 久久久久婷婷| 婷婷色网| 天天日天天干天天操| 五月天婷婷在线视频| 久久综合人妻| 色色综合网站| www.狠狠| 免费视频舔| 袁子仪视频观看| 婷婷丁香一月| 婷婷丁香成人五月天| 激情六月婷| 天天操天天操天天操天天操天天操天天操| 99精品在线下载| 伊人五月丁香| 99精品视频网| 久久资源网五月婷| 日本五月婷| 久久亚洲婷婷| 久久久99精品免费观看| 丁香五月影| 激情四射亚洲| 99riAV国产精品视频| 黄色精品五月婷婷| 五月五婷婷网| 激情综合网,婷婷五月天| 国产精品蜜臀99| rr天天操| 婷婷激情综合| 色5月婷婷| 婷婷五月综合性爱| 婷婷九月在线| 亚洲另类婷婷五月丁香在线播放| 亚洲色情激情丁香五月| 激情小说 五月天| 五月丁香婷婷视频| 99这里都是精品6| 少妇被下春药玩弄A片| 丁香婷婷久| 九九热这里只有精品5| 天天干狠狠操| 凹凸操Av| 最新av在线观看| 日韩色色色色| 久99视频| 伊人婷婷五月天av| 五月婷婷片| 久久九九热re6这里有精品| 狠狠色噜噜狠狠狠狠综合| 色五月婷婷视频| www.婷婷| 丁香五月婷婷av影院| 亚洲顶级VA在线观看-高清完整版在线影院观看-S022AV | 丁香激情综合| 99色婷婷视频| 99热在线中出| 久久婷色| 丁香婷婷视频一区二区| 五月天婷婷久久视频| 淫视馆av三区| 色婷婷五月天av在线| 常久最新免费的色吊丝| 婷婷香五月天| 婷婷五月丁香四射| 97在线视频观看| 午夜色丁香| 99色色视频| 97在线日本| 夜夜天天久久婷婷| 99热主页日本| 色婷婷狠狠禁久久| 丁香婷婷六月婷婷六月婷婷六月婷婷| 九九爱激情| 五月激情小说| 色婷成人狠干| 久久精品66| 日狠狠| 国产色99| 台湾佬天天日丁香婷婷五月天| 黄色片区子| 999精品久久久久久久| 精品九九视频| 26UUU精品一区二区| 亚洲免费av观看| 国产热精品| 久久精彩视频| 天天日日| 五月人妻婷婷| 中文av网| 婷婷丁香色情| 这里只有精品在线视频在线观看| 欧美丰满熟妇BBB久久久| 色综合久网| 五月丁香六月婷婷亚洲| 热久久这里只有精品| 久久免费9| 亚洲午夜一区二区| 在线成人av播放| 六月欧美综合色情| 91狠狠色丁香婷婷综合久久| 五月天停停日日| 色五月综合激情| 鲁鲁色五月| 一个色的综合| 丁香五月播播| 六月丁香综合| 激情 婷婷| 97伊人综合婷婷| 激情五月天伊人影院| 色色五月婷婷网| 9久热这里只有精品| AV在线不卡播放| 激情影院免费视频婷婷五月天| 成人日韩欧美| eeuus五月婷| 丁香五月久久| Xx色综合| 99精品热| 婷婷色色综合激情| 人人爱操| 久热这里精品免费| 六月丁香五月婷婷| 色色色在线免费视频| 色色五月天激情| 5月丁香婷婷| 99热这里有精品| 性小说五月天| 国产XXXX搡XXXXX搡麻豆| 天天婷婷天天| 日本V在线观看不卡视频网站| 综合五月亭亭9| 亚洲亚洲人成综合网络| 99这里只有精品国产| 亚洲成av人影院| 狠狠操天天日| 丁香九月色| 激情五月天电影| 亚洲黄3级片网站欧美| 久久丁香五月| 天天搞夜夜爽夜夜爽| 99精品在线| 狠狠色情婷婷| 1024AV视频| rr天天操| 成人婷99最新| 九九九九国产| 天天操夜夜夜夜爽| 国产黄色在线观看| 亚洲欧美另类在线23p| 婷婷色色丁香| 五月婷婷熟女| 亚洲五月综合色播| 五月丁香综合网| 中文字幕综合| 五月婷婷丁香深深爱| www.97视频| 久久伊人五月天| 国产精品汇聚精彩第二页 - 高清完整版在线 - 青蛙AV | 操操自拍| 色婷婷五月天| 婷婷色欧美激情| 91精品91久久久中77777久久玖玖九九| 欧美在线干| 五月丁香天堂网婷婷| 婷婷五月丁香综合桃花色网| 婷婷五月丁香综合| www.五月婷婷久久.com| 色婷婷女优有码五月亭| 五月丁香啪啪网| 色婷婷五月综合在线| 久久宗合影| 婷婷伊人綜合中文字幕| 丁香六月伊人| 99热这里只有精品1025| 丁香六月啪| 色综合性视频| 影音先锋一区| 婷婷丁香激情五月天色色色| 欧洲亚洲午夜| 26uuu欧美亚洲日韩| 在线91日韩| 999热在线视频| A色色| 欧美 日韩 成人在线| 亚洲精品又粗又大又爽A片| 日本美女五月天| 久久视频婷婷视频| 亚州操操| 久久久婷丁香五月| 在线不卡视频| 久久人妻久久| 五月天婷婷激情干干| 色婷婷四色| 亚洲无AV在线中文字幕| 九色91美女| 99艹精品在线观看| 天天干天天干天天| 天天日夜夜曹| 九色色| 男人综合网| 欧洲亚洲免费视频9| 91啦丨九色丨刺激中文| 三级黄色大片视频| 99re在线观看| 99热爱爱干干日| 99∨VTV| 综合激情站| 五月丁香婷婷激情在线| 婷婷伊人无码| 天天爽夜夜爽夜夜爽精品| 欧美日韩国产一区二区| 欧美色偷偷大香| 欧美日韩成人h| 九九99久久| www久久99| 99精品综合| 久久色婷婷| 激情综合五月天| 五月婷婷色综图片| 深爱激情六月| 亚洲综合婷婷六月丁香五月| 互月天综合| 人妻精品久久久久久久| 婷婷激情综合色五月久久,色婷婷丁香花,丁香婷婷五月情天,久久婷婷五月综合色 | 亚洲免费看片| 久re热视频| 五月天激情啪啪| WWW免费视频碰碰碰碰| 欧洲色| 久久开心五月天激情| 婷婷深爱五月丁香| 26uuu精品一区二区| 丁香五月婷在线观看| 久久免费婷婷视频| 久久开心五月天激情| 久久久久思思热| 婷婷五月天久久久| 五月天激情图片| 婷婷中文字暮| 99色性爰网络| 天天干天天做| 五月婷婷啪| 婷婷伊人网| 婷婷综合五月| 国产欧美精品AAAAAA片| 五月婷婷综合网| 亚洲欧洲另类图片| 热久免费视频9| www.九月婷婷丁香.com| 五月亭亭欧美女人| 欧美丁香五月97色| 欧美噜噜免费观看| 99er免费在线观看| 久久这里只有精品视频1| xx人人xx| 中文在线成人| 五月亭亭六月天| 99在线精品免费视频| 玖玖九九9999在线观看视频精品| 真实熟女-91九色| 台湾无码A片一区二区| 97干在线| 久久激情综合| 婷婷十月激情综合网| 欧美在线97| 婷婷色色五月| 免费在线观看AV网站| 色婷婷色| 国产VA播放| 五月色婷婷AV| 丁香婷婷激情五月天无毒不卡蜜桃| 玖玖综合网| 777精品久无码人妻蜜桃| 潘金莲AAAAAAAAAA| 大香蕉伊人99| 丁香六月视频| 99成人网站| 丁香五月亚综合图片| 99热免费在线| 六月五月天婷婷涩播在线| www.久操| 天天爽夜夜爽夜夜爽精品| 久久99久久99精品免观看软件| 98永久精品| 五月天综合| 91 原创 在线 九色| 人人操Av| 狠狠xx| 丁香六月天| 五月婷婷六月丁香首页| 99热这只有| 亭亭五月色男人| 婷婷和五月天| 丁香婷婷视频一区二区| 99热国产| 狠狠爱成人综合网| 久久婷婷伊人| 久久综合激情婷婷激情| 狠狠干婷婷| 成人无码精品1区2区3区免费看| 2015超碰| 青青福利网| 我爱大香蕉| 激情爱爱网站| 69色婷婷| 伊人网色婷婷五月天| 丁香五月WWW| 亚洲天堂AV免费片| 国产精品久久..4399| 99色在线观看视频| 五月天激情综合| 丝袜激情网| 97人人操| 淫荡家庭AV| 噜噜狠狠色综无码久久合欧美| 婷婷五月丁香综合亚洲| 色色色com| WWW.桔色成人.COM| 免费看片在线观看| 婷婷五月天综合网| 天天日天天干天天插天天射| 亚洲综合成人网| 成人电影在线免费试看| 久久久久人妻中文| 搡BBBB搡BBB搡18| 超碰人人干| 五月婷综合| 九九视频在线观看视频6 | 久久精品99久久| 五月丁香六月婷婷欧美综合| 久久九九国产| 国产婷婷五月| 新激情五月天色播| 99超级碰免费视频| 色婷婷成人做爰A片免费看网站| 五月激情综合网| 99国产精品久久久久久久久久久| 色综合久久8| 色欲资源网| 丁香五月婷婷综合啪啪| 天天狠狠插| 色色色热| 欧美日本VA| www.婷婷.com| 久久9久| 五月婷婷五月天在线| 毛片九九九九九九| 婷婷五月综合视频免费播放| 五月丁香婷婷六月| 国产婷婷综合| 五月天成人在线视频网站| 婷婷丁香五月天操逼| 激情综合网五月激情| 婷婷五月天涩涩| 天天干天天干天天干天天干天天干| 中文字幕+中文在线|