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

ARTICLE DETAIL

資訊詳情

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

STM32F103模擬IIC驅(qū)動PCA9555實現(xiàn)16路IO擴展

STM32F103模擬IIC驅(qū)動PCA9555實現(xiàn)16路IO擴展 簡介面向嵌入式開發(fā)者與高校學(xué)生的 STM32F103 軟件模擬 IIC 訪問 PCA9555 實例工程重點解決在不依賴硬件 I2C 外設(shè)時擴展 16 位 IO 端口的通信問題。工程圍繞 SCL/SDA 的 GPIO 時序模擬、起始與停止條件、7 位從機地址及讀寫位、PCA9555 輸入/輸出與中斷相關(guān)寄存器的讀寫展開適合作為 IIC 協(xié)議入門、IO 擴展和嵌入式外設(shè)調(diào)試的參考。壓縮包共 127 個文件約 2MB以 33 個 h 頭文件、32 個 c 源文件為核心配合 Keil 工程配置、編譯中間文件及 hex/axf 燒錄產(chǎn)物便于直接打開、編譯與對照學(xué)習(xí)。已有 4838 人學(xué)習(xí)讀者可從中獲得完整可運行的工程骨架、軟件模擬 IIC 的時序?qū)崿F(xiàn)思路、PCA9555 寄存器操作范例以及編譯燒錄與排錯參考。1. 從兩根線到十六個 IOSTM32F103 模擬 IIC 驅(qū)動 PCA9555 的真實價值手里拿著一塊 STM32F103 最小系統(tǒng)板需要外擴 16 個按鍵或繼電器GPIO 已經(jīng)快用完了但硬件 IIC 的引腳又剛好被其他外設(shè)占用——這種場景我遇到過不止一次。PCA9555 就是為這類情況準備的它是 16 位 IIC 轉(zhuǎn)并行 IO 擴展芯片通過兩根線就能管住 16 個 IO還能配置成輸入或輸出支持中斷上報。項目標題里那句「親測有效」并不夸張模擬 IIC軟件 IIC在 STM32 上比硬件 IIC 更可控時序能按 PCA9555 的數(shù)據(jù)手冊調(diào)整出問題能逐位抓取波形不像硬件外設(shè)那樣只能對著寄存器配置發(fā)愁。這篇筆記面向已經(jīng)能點亮 LED、但還沒把 IO 擴展芯片跑通的嵌入式開發(fā)者尤其是使用 STM32F103 這類經(jīng)典型號的讀者。我會把模擬 IIC 的時序怎么實現(xiàn)、PCA9555 的寄存器怎么讀寫、上電初始化順序、讀寫單個位和整個端口的方法講清楚再落到實際能編譯運行的代碼。硬件 IIC 的玄學(xué)問題不少模擬 IIC 至少能讓每條時序線都看得見。2. 模擬 IIC 與 PCA9555 的匹配邏輯為什么不用硬件外設(shè)2.1 先算清楚引腳賬為什么模擬方案更合適STM32F103 的硬件 IIC 一般掛在 PB6/PB7I2C1或 PB10/PB11I2C2上。如果你在同一個項目里已經(jīng)用到了這些引腳再想加 PCA9555就得考慮重映射或者切到軟件模擬。模擬 IIC 的本質(zhì)是用兩個普通 GPIO 分別充當 SCL 和 SDA靠代碼控制高低電平來生成 START、STOP、ACK 這些時序單元。它不占用硬件 IIC 外設(shè)引腳可以隨便挑比如 PB8/PB9、PA5/PA6 都能用。我通常選開漏輸出模式并外接 4.7kΩ 上拉電阻。原因很直接IIC 總線是開漏結(jié)構(gòu)多個設(shè)備共享時誰拉低誰就占線如果配成推挽一旦從機也在拉低就變成兩個推挽輸出對頂容易燒引腳。這一點和硬件 IIC 配置一致不能省。選 PCA9555 而不是 74HC595 的理由也值得說清。74HC595 只能輸出無法讀取輸入狀態(tài)做按鍵掃描就不行PCA9555 的 16 個 IO 可以按端口配置方向端口 0 和端口 1 各自獨立配置輸入輸出混用很方便。它還有中斷輸出引腳任一輸入引腳狀態(tài)變化都能觸發(fā)不用 MCU 輪詢。代價是 IIC 協(xié)議本身比 SPI 慢不過 IO 擴展這種場景對速度不敏感幾十 kHz 就夠用。2.2 PCA9555 的寄存器地圖四個命令字節(jié)就夠了PCA9555 內(nèi)部只有四個可尋址的寄存器每個寄存器 8 位對應(yīng)一個端口的 8 個引腳命令字節(jié)寄存器讀寫作用0x00輸入端口 0讀讀 P0 口 8 個引腳的實時電平0x01輸入端口 1讀讀 P1 口 8 個引腳的實時電平0x02輸出端口 0讀寫設(shè)置 P0 口輸出鎖存值0x03輸出端口 1讀寫設(shè)置 P1 口輸出鎖存值0x04極性反轉(zhuǎn) 0讀寫翻轉(zhuǎn) P0 口輸入極性0x05極性反轉(zhuǎn) 1讀寫翻轉(zhuǎn) P1 口輸入極性0x06配置端口 0讀寫P0 方向1 為輸入0 為輸出0x07配置端口 1讀寫P1 方向1 為輸入0 為輸出這八個命令字節(jié)是理解 PCA9555 的順序。配置寄存器的位定義為 1 表示輸入為 0 表示輸出上電默認全部是輸入因此如果不先寫配置寄存器就直接寫輸出寄存器引腳仍會保持高阻燈不會亮。極性反轉(zhuǎn)寄存器一般保持 0x00除非你希望把按鍵的低有效直接讀成高有效可以用它省掉軟件取反。這里有個容易忽略的點命令字節(jié)在寫操作后會自動遞增也就是你寫 0x02輸出端口 0之后再連續(xù)寫一個字節(jié)它會自動落到 0x03輸出端口 1。所以初始化時可以用一次兩字節(jié)寫把兩個端口的值一起設(shè)好效率比兩次單字節(jié)寫高。2.3 從機地址怎么定7 位地址左移一位PCA9555 的 7 位從機地址由 A0、A1、A2 三個引腳決定公式是0100 A2 A1 A0。三個引腳都接地時7 位地址是 0x20寫操作字節(jié)是 0x40讀操作字節(jié)是 0x41。A0 接高電平時地址變成 0x21寫字節(jié) 0x42以此類推。這個換算是新手最容易翻車的地方數(shù)據(jù)手冊里給的是 7 位地址而代碼里需要在末尾補一位讀寫位直接拿 0x20 當寫地址發(fā)出去從機不會應(yīng)答。我一般會在頭文件里把地址定義成一個宏再用移位生成讀寫字/* PCA9555 7 位從機地址: A2 A1 A0 全接地 0x20 */ #define PCA9555_ADDR 0x20 /* 寫字節(jié) 7 位地址左移 1 位, 最低位 0 */ #define PCA9555_WRITE_ADDR (PCA9555_ADDR 1) /* 讀字節(jié) 7 位地址左移 1 位, 最低位 1 */ #define PCA9555_READ_ADDR ((PCA9555_ADDR 1) | 0x01)這段宏看起來簡單但把PCA9555_ADDR 1寫成PCA9555_ADDR是在我排查過的故障里出現(xiàn)頻率最高的。另一個細節(jié)是讀操作采用兩段式先寫一次地址字節(jié)帶寫標志再發(fā)一次重復(fù)起始條件帶讀標志然后連續(xù)讀兩個字節(jié)并且只在最后一個字節(jié)回 NACK。如果兩個字節(jié)都回 ACK從機會繼續(xù)保持 SDA 輸出下一輪通信容易出錯。3. 五步搭起模擬 IIC 驅(qū)動層從引腳定義到字節(jié)收發(fā)3.1 GPIO 初始化和時序宏把微秒級延時落到實處模擬 IIC 的第一層是引腳電平操作和延時。F103 主頻 72MHz 時一個簡單 for 循環(huán)空轉(zhuǎn)的耗時很難精確估算而且編譯器優(yōu)化等級一變循環(huán)就被優(yōu)化掉。我傾向用 SysTick 做微秒延時或者至少把延時函數(shù)放到單獨文件里并加__attribute__((noinline))防止內(nèi)聯(lián)。PCA9555 數(shù)據(jù)手冊對 SCL 高電平和低電平的最小時間有要求標準模式下總線頻率 100kHz半周期約 5 微秒留一點余量按 5 到 6 微秒設(shè)置比較穩(wěn)。#include stm32f10x.h #define IIC_SCL_HIGH() GPIOB-BSRR GPIO_BSRR_BS8 #define IIC_SCL_LOW() GPIOB-BRR GPIO_BRR_BR8 #define IIC_SDA_HIGH() GPIOB-BSRR GPIO_BSRR_BS9 #define IIC_SDA_LOW() GPIOB-BRR GPIO_BRR_BR9 #define IIC_SDA_READ() ((GPIOB-IDR GPIO_IDR_IDR9) ! 0) /* 5 微秒量級的軟件延時, 實際工程建議換成 SysTick 計時 */ static void iic_delay(void) { volatile uint32_t n 60; while (n--) { } } void iic_gpio_init(void) { GPIO_InitTypeDef gpio; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); /* SCL 和 SDA 都配置為開漏輸出, 外接 4.7k 上拉 */ gpio.GPIO_Pin GPIO_Pin_8 | GPIO_Pin_9; gpio.GPIO_Mode GPIO_Mode_Out_OD; gpio.GPIO_Speed GPIO_Speed_50MHz; GPIO_Init(GPIOB, gpio); /* 釋放總線, 空閑時兩根線都是高電平 */ IIC_SCL_HIGH(); IIC_SDA_HIGH(); }這里用 BSRR 和 BRR 寄存器直接置位、清零比GPIO_SetBits、GPIO_ResetBits函數(shù)少一層調(diào)用開銷時序更平整。SDA 讀取用 IDR 直接取位。開漏模式下即使寫 1引腳實際電平也由上拉電阻和總線上的從機決定所以讀 IDR 能得到真實總線狀態(tài)這是模擬 IIC 能回讀 ACK 的前提。如果你用推挽模式SDA 讀出來永遠是自己寫的值從機是否應(yīng)答就完全測不出來故障排查會變成黑匣子。3.2 起始、停止、應(yīng)答三個時序單元的實現(xiàn)模擬 IIC 的所有操作都由三個基本單元拼出來起始條件、停止條件、應(yīng)答位。起始條件是在 SCL 為高時SDA 從高變低停止條件是 SCL 為高時SDA 從低變高。應(yīng)答位是在發(fā)送完 8 位數(shù)據(jù)后釋放 SDA在第 9 個 SCL 高電平期間讀取 SDA 是否為低。這三個函數(shù)寫對了整個協(xié)議就成立寫錯了后面無論怎么調(diào)都讀不到數(shù)據(jù)。void iic_start(void) { IIC_SDA_HIGH(); IIC_SCL_HIGH(); iic_delay(); IIC_SDA_LOW(); /* SCL 高電平期間 SDA 下降沿 起始 */ iic_delay(); IIC_SCL_LOW(); } void iic_stop(void) { IIC_SDA_LOW(); IIC_SCL_HIGH(); iic_delay(); IIC_SDA_HIGH(); /* SCL 高電平期間 SDA 上升沿 停止 */ iic_delay(); } /* 主機發(fā)送應(yīng)答: ack1 回 ACK, ack0 回 NACK */ void iic_send_ack(uint8_t ack) { IIC_SCL_LOW(); if (ack) { IIC_SDA_LOW(); } else { IIC_SDA_HIGH(); } iic_delay(); IIC_SCL_HIGH(); iic_delay(); IIC_SCL_LOW(); IIC_SDA_HIGH(); /* 釋放 SDA, 準備下一字節(jié) */ } /* 主機等待從機應(yīng)答, 返回 0 表示收到 ACK, 1 表示 NACK */ uint8_t iic_wait_ack(void) { uint8_t ret; IIC_SDA_HIGH(); /* 釋放 SDA, 讓從機拉低 */ iic_delay(); IIC_SCL_HIGH(); iic_delay(); ret IIC_SDA_READ() ? 1 : 0; IIC_SCL_LOW(); return ret; }時序里幾個順序不能亂。iic_start中先把 SDA 拉高、SCL 拉高再讓 SDA 下降如果順序顛倒從機會把這次變化當成普通數(shù)據(jù)位。iic_send_ack里在 SCL 低電平期間改變 SDA然后拉高 SCL 讓從機采樣這個「低電平改數(shù)據(jù)、高電平采樣」的規(guī)則貫穿整個 IIC 協(xié)議。iic_wait_ack中先釋放 SDA 再拉高 SCL順序顛倒的話你自己拉低 SDA 而 SCL 同時變高就會被從機誤判為起始或停止條件。3.3 字節(jié)收發(fā)與寄存器讀寫封裝有了時序單元字節(jié)收發(fā)就是 8 次循環(huán)每次在 SCL 低時把數(shù)據(jù)位放到 SDA 上然后拉高 SCL 讓從機采樣。讀字節(jié)則相反每次拉高 SCL 后從 SDA 取位再拉低。字節(jié)收完之后要處理 ACK發(fā)送方向由主機在收完從機的 ACK 后決定是否繼續(xù)。/* 主機向從機發(fā)送一個字節(jié), 返回從機的應(yīng)答: 0ACK, 1NACK */ uint8_t iic_write_byte(uint8_t data) { uint8_t i, ack; for (i 0; i 8; i) { IIC_SCL_LOW(); if (data 0x80) { IIC_SDA_HIGH(); } else { IIC_SDA_LOW(); } data 1; iic_delay(); IIC_SCL_HIGH(); iic_delay(); } IIC_SCL_LOW(); ack iic_wait_ack(); return ack; } /* 主機從從機讀一個字節(jié), send_ack1 表示讀完后回 ACK, 0 表示回 NACK */ uint8_t iic_read_byte(uint8_t send_ack) { uint8_t i, data 0; IIC_SDA_HIGH(); /* 釋放 SDA, 由從機驅(qū)動 */ for (i 0; i 8; i) { data 1; IIC_SCL_HIGH(); iic_delay(); if (IIC_SDA_READ()) { data | 0x01; } IIC_SCL_LOW(); iic_delay(); } iic_send_ack(send_ack); return data; }注意iic_read_byte循環(huán)結(jié)束后調(diào)用iic_send_ack把主機的應(yīng)答發(fā)出去。讀單個寄存器時給 NACK讀多個寄存器時前幾個字節(jié)給 ACK、最后一個給 NACK。把這個細節(jié)搞混會出現(xiàn)讀到的第一個字節(jié)正確后續(xù)字節(jié)全錯或者總線被從機卡住的情況。在字節(jié)層之上我封了三個函數(shù)寫單個寄存器、讀單個寄存器、連續(xù)讀多個寄存器。這些函數(shù)內(nèi)部處理地址字節(jié)、命令字節(jié)和重復(fù)起始對上層完全隱藏協(xié)議細節(jié)/* 寫 PCA9555 單個寄存器: reg 為命令字節(jié), val 為寫入值 */ uint8_t pca9555_write_reg(uint8_t reg, uint8_t val) { iic_start(); if (iic_write_byte(PCA9555_WRITE_ADDR)) { iic_stop(); return 1; } if (iic_write_byte(reg)) { iic_stop(); return 2; } if (iic_write_byte(val)) { iic_stop(); return 3; } iic_stop(); return 0; } /* 讀 PCA9555 單個寄存器 */ uint8_t pca9555_read_reg(uint8_t reg, uint8_t *val) { iic_start(); if (iic_write_byte(PCA9555_WRITE_ADDR)) { iic_stop(); return 1; } if (iic_write_byte(reg)) { iic_stop(); return 2; } iic_start(); /* 重復(fù)起始條件 */ if (iic_write_byte(PCA9555_READ_ADDR)) { iic_stop(); return 3; } *val iic_read_byte(0); /* 只讀一個字節(jié), 回 NACK */ iic_stop(); return 0; }返回值攜帶錯誤碼很重要。三個返回值分別對應(yīng)從機地址沒應(yīng)答、命令字節(jié)沒應(yīng)答、數(shù)據(jù)字節(jié)沒應(yīng)答可以根據(jù)返回值判斷是哪一步出了問題。如果全部返回 1從機地址就沒被應(yīng)答先查接線和地址引腳如果返回 3說明地址和命令字節(jié)都被應(yīng)答了但寫數(shù)據(jù)時出問題可能是從機忙或總線被拉低。3.4 上電初始化順序配置寄存器必須最先寫PCA9555 上電后所有引腳默認為輸入輸出寄存器是 0xFF。想要某些引腳輸出必須先寫配置寄存器把對應(yīng)位清 0再寫輸出寄存器設(shè)定初始電平。順序反了會出現(xiàn)引腳短暫輸出高電平、繼電器誤動的現(xiàn)象這一點在做執(zhí)行器控制時很容易遇到。/* 端口 0 全部輸出, 端口 1 全部輸入; 輸出端口初始為低電平 */ void pca9555_init(void) { iic_gpio_init(); /* 先定方向: bit1 輸入, bit0 輸出 命令 0x06 是配置端口 0, 命令 0x07 是配置端口 1 */ pca9555_write_reg(0x06, 0x00); pca9555_write_reg(0x07, 0xFF); /* 再定初始電平, 正點原子風(fēng)格的板子常把 P0 接 LED 陽極, 這里寫 0x00 讓 16 位輸出全部為低 */ pca9555_write_reg(0x02, 0x00); pca9555_write_reg(0x03, 0x00); /* 極性反轉(zhuǎn)寄存器保持默認 0x00, 不翻轉(zhuǎn)輸入 */ pca9555_write_reg(0x04, 0x00); pca9555_write_reg(0x05, 0x00); }初始化里每個寄存器都是單寫。如果嫌 6 次事務(wù)太多可以用連續(xù)寫先寫命令 0x02然后連續(xù)發(fā)兩個字節(jié)分別落到輸出端口 0 和輸出端口 1因為命令字節(jié)會自動遞增。配置寄存器同理從 0x06 開始連續(xù)寫兩個字節(jié)就能同時設(shè)好兩個端口的方向。這種寫法省時間但可讀性差一些新項目里我通常先按單寫跑通再優(yōu)化合并。4. 讀寫操作踩坑記錄五條排查清單4.1 讀回來的端口值全 0xFF 或全 0x00現(xiàn)象初始化寫配置寄存器看起來正常讀輸入端口時無論怎么按按鍵返回的都是 0xFF 或 0x00。原因通常是 SDA 沒有配成開漏輸出或者上拉電阻沒接。推挽輸出模式下主機讀 IDR 只能讀到自己寫出去的電平從機拉低總線的動作對 MCU 不可見。解決方法是檢查 GPIO 模式配置確認是GPIO_Mode_Out_OD并用萬用表量 SDA 空閑時是否為 3.3V。空閑不為高說明上拉缺失或總線被短路。4.2 從機地址寫錯導(dǎo)致完全無應(yīng)答現(xiàn)象pca9555_write_reg每次都返回 1起始條件之后第一個字節(jié)就收到 NACK。原因是地址字節(jié)用錯了把 7 位地址 0x20 直接當作寫字節(jié)發(fā)出去從機比較的是完整字節(jié)的 7 位最低位的讀寫位被當成了地址的一部分地址變成 0x10 對應(yīng)的高位自然無人應(yīng)答。解決方法是確認宏定義PCA9555_WRITE_ADDR是0x20 1并用邏輯分析儀抓一下第一個字節(jié)看看實際發(fā)出的 8 位數(shù)據(jù)是不是0100 0000。4.3 連續(xù)讀多個寄存器時只有第一個字節(jié)正確現(xiàn)象讀端口 0 和端口 1 的連續(xù)讀函數(shù)返回的第一個字節(jié)數(shù)據(jù)正確第二個字節(jié)始終為 0xFF 或沒有變化。原因是在讀第一個字節(jié)后回了 ACK但從機的數(shù)據(jù)更新需要時間或者主機在發(fā)出 ACK 后沒有及時切回接收態(tài)就發(fā)了下一個 SCL 脈沖。另一種常見原因是漏掉了重復(fù)起始條件在寫完命令字節(jié)之后直接進入讀而沒有重新發(fā) START。解決方法是補上iic_start()重復(fù)起始并且確認非最后一字節(jié)回 ACK、最后一字節(jié)回 NACK。4.4 寫輸出寄存器后引腳電壓不變化現(xiàn)象配置寄存器寫了 0x00 把端口 0 設(shè)為輸出再寫輸出寄存器 0x00 或 0xFF用萬用表量引腳卻始終是高電平時或高阻態(tài)。原因可能是初始化順序?qū)懛戳讼葘戄敵黾拇嫫髟賹懪渲眉拇嫫鲗懭胼敵黾拇嫫鞯乃查g引腳還是輸入等配置寄存器改成輸出時才生效看起來好像「寫不進」。另一個原因是 PCA9555 的供電和上拉電壓不一致輸出高電平被鉗位在較低電壓驅(qū)動 LED 時看不到亮。解決方法是調(diào)整初始化順序配置寄存器必須在輸出寄存器之前寫并確認 VDD 與 IO 上拉電壓匹配。4.5 總線被從機拉低后無法恢復(fù)現(xiàn)象程序運行中復(fù)位 MCU 后PCA9555 仍保持著上一次通信中途的狀態(tài)SDA 一直被它拉低新程序發(fā)起始條件時 SCL 為高但 SDA 本來就是低的起始條件無法生成整個總線掛死。原因是從機在讀取過程中被復(fù)位打斷它還在等待第 9 個時鐘持續(xù)驅(qū)動 SDA 為低。解決方法是上電初始化時先發(fā) 9 個 SCL 脈沖把從機的移位寄存器清空再發(fā) STOP 條件讓總線回到空閑。這個恢復(fù)序列在 IIC 從設(shè)備較多的系統(tǒng)里應(yīng)該成為固定動作。/* 上電時先恢復(fù)總線: 9 個 SCL 脈沖 STOP */ void iic_bus_recovery(void) { uint8_t i; IIC_SDA_HIGH(); for (i 0; i 9; i) { IIC_SCL_LOW(); iic_delay(); IIC_SCL_HIGH(); iic_delay(); } iic_stop(); }這段恢復(fù)代碼建議放在iic_gpio_init之后、任何 PCA9555 通信之前。我遇到過板子熱插拔 IO 擴展模塊后總線鎖死的情況加了這段之后省了不少重新上電的麻煩。5. 把驅(qū)動變成可靠工具中斷輸入與批量讀寫技巧5.1 用中斷引腳代替輪詢減少總線占用的做法PCA9555 的 INT 引腳在任一輸入引腳狀態(tài)變化時拉低配置成下降沿觸發(fā)接 MCU 的外部中斷即可。這樣主循環(huán)不用反復(fù)讀輸入端口按鍵按下時才進中斷在中斷里讀一次輸入端口并清中斷。需要注意的是PCA9555 的中斷是「變化觸發(fā)」讀一次輸入端口之后鎖存器才會釋放 INT 引腳如果只讀一個端口另一個端口有變化時 INT 不會釋放所以中斷里最好把兩個端口都讀一遍。/* 外部中斷里讀兩個輸入端口, 讀操作本身會清除中斷鎖存 */ void EXTI9_5_IRQHandler(void) { uint8_t p0, p1; if (EXTI_GetITStatus(EXTI_Line5) ! RESET) { pca9555_read_reg(0x00, p0); pca9555_read_reg(0x01, p1); key_event_handler(p0, p1); EXTI_ClearITPendingBit(EXTI_Line5); } }中斷服務(wù)函數(shù)里調(diào)用 IIC 讀函數(shù)會引入幾毫秒的阻塞如果有更高優(yōu)先級的中斷對時序敏感可以把讀操作放到標志位里退出中斷后主循環(huán)再讀。這一點和按鍵消抖要一起考慮機械按鍵的抖動會產(chǎn)生多次中斷可以在讀回值之后做 10 到 20 毫秒的軟件確認。5.2 端口值的按位操作避免讀改寫覆蓋其他位直接對一個端口寫 0xFF 或 0x00 會覆蓋該端口所有引腳如果同一個端口上既有需要保持狀態(tài)的輸出又有需要切換的輸出就得先讀回輸出寄存器再按位修改。PCA9555 的輸出寄存器是可讀的讀出來的就是當前鎖存值用這種方式做按位操作最安全。/* 修改端口 0 的單個輸出位, 不影響同端口其他引腳 */ uint8_t pca9555_set_output_bit(uint8_t port, uint8_t bit, uint8_t level) { uint8_t reg (port 0) ? 0x02 : 0x03; uint8_t val; if (pca9555_read_reg(reg, val)) { return 1; } if (level) { val | (uint8_t)(1u bit); } else { val (uint8_t)~(1u bit); } return pca9555_write_reg(reg, val); }讀改寫中間存在一個窗口期如果 INT 中斷搶占并修改同一個端口可能丟失更新。簡單系統(tǒng)里可以關(guān)中斷保護或者干脆把輸出端口按用途分區(qū)不同任務(wù)操作不同端口。我在一個小型控制器項目里就把端口 0 固定給繼電器、端口 1 固定給按鍵徹底避免共享寫入。5.3 速率與上拉的邊界兩個容易忽略的硬約束模擬 IIC 的速率不是越快越好。SCL 頻率提高后上拉電阻和總線電容構(gòu)成的 RC 延時會讓上升沿變緩PCA9555 在高電平期間采到的電平可能還沒爬到位表現(xiàn)為偶發(fā) NACK 或數(shù)據(jù)錯位。常規(guī) 4.7kΩ 上拉配 100kHz 是穩(wěn)妥組合如果非要跑到 400kHz上拉要降到 2.2kΩ 左右并縮短走線而且模擬 IIC 的延時函數(shù)要按實測調(diào)整。另一個約束是 PCA9555 的驅(qū)動能力。每個輸出引腳灌電流和拉電流能力有限直接驅(qū)動繼電器線圈會燒 IO必須加三極管或驅(qū)動芯片。它的中斷引腳是開漏輸出也需要上拉。這些硬件層面的邊界往往比軟件時序更容易被新手忽略。5.4 上板驗證的順序從回讀到輸出的閉環(huán)驗證驅(qū)動是否正常我一般按四步走第一步只讀設(shè)備地址確認收到 ACK第二步讀配置寄存器默認值 0xFF確認能正確讀出第三步寫配置寄存器把端口 0 設(shè)為輸出再讀回來確認寫入生效第四步在端口 0 交替寫 0x55 和 0xAA用萬用表或 LED 觀察引腳變化。四步都通過說明地址、時序、讀寫方向都沒有問題剩下的就是業(yè)務(wù)邏輯。這套順序的好處是每步只驗證一個變量出問題時能立刻定位是地址、總線時序還是寄存器寫入。如果第一步就失敗先查接線和上拉第二步失敗查讀時序第三步失敗查命令字節(jié)遞增或重復(fù)起始條件第四步失敗查輸出寄存器與配置寄存器的順序。5.5 從單點驗證到反復(fù)可用的習(xí)慣模擬 IIC 驅(qū)動寫完一次不代表以后都可靠。我在每次換板子、換上拉電阻、換主頻之后都會重新跑一遍上面那個四步驗證因為時序延時和 GPIO 翻轉(zhuǎn)速度都可能變化。把iic_bus_recovery放在初始化最前面把每個讀寫函數(shù)的返回值都做判斷把寄存器操作封裝成帶錯誤碼的函數(shù)——這些看起來繁瑣的動作能避免后面調(diào)試時在硬件和軟件之間反復(fù)懷疑。希望這篇筆記能幫到正在用 STM32F103 擴展 IO 的你少走一點彎路把時間留給真正需要調(diào)試的業(yè)務(wù)邏輯。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲狠狠入| 久操九九九九| 人人弄人人摸| 成人草草视频| 午夜精品久久999热蜜桃介男人用| 3P乱轮视频| 国产精品伦理| 一二视频神马久久传媒| 午夜精品久久久99| 男人的天堂啪啪| 激情国产乱伦Av| 欲色综合| 精品一区99999| 亚洲性猛交| 欧美综合97www| 色999五月色| 青青免费在线视频一区| 中文乱码字幕观看| 日本999精品视频| 99国产精品久久久久久久成人热| 激情网色| 色在线亚洲视频www| 久热一区二区| 男人的天堂va在线| 日日躁狠狠躁天天躁精品| 宅男午夜在线视频| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 加勒比综合九九99视频在线播放| 欧美亚洲日韩人妻在线观看| 人妻啊啊人妻啊啊| 久久激情视频| 日韩成人大片在线观看| 国产激情av女片自拍| 亚洲一区二区三区中文字幕| 91人精品妻入口| 色香综合| 午夜超碰| 久久精品久久九九精品| 久久久久久久久久va| 97干色| 国产精品另类| 97干在线视频| 日韩性爱小视频| JuliaAnn丝袜熟女系列| 97超碰超碰| 精品九九九九九九| 91春色| 日韩激情毛片一级久久久| 欧美精品三区| 静品嫩模一区二区| 亚洲天堂区| 五月天色电影| 中韩中文字幕在线观看| 思思热一热婷婷热一热| 久久男女激情视频网站| 91GD.COM| 久久免费看高潮毛片韩国| 亚洲高清视频在线观看| 操淫穴亚洲五月丁香| 中文字幕AV片| 中文熟女五十乱码在线| 97精品一区| 亚洲AV色图一区| 狠狠2050在线观看| 欧洲特黄毛片免费看欧洲毛片| 家庭乱伦麻豆| 三级色综合| 久久精视频美日韩在线视频| AV综合中文字幕干| 久热色情精品| 精品无码一二三四区| 老司机午夜福利视频一区二区| 久久久久亚洲一区女同性恋中文字幕| 中国熟女91| 成人区人妻精品一| 欧美一级在线观看成人 | 日本大香蕉| 午夜精品久久久99| 密臀在线视频| 九九九精品| 东京热视频网| 婷婷色综合| 亚洲色图 欧美热图 清纯唯美 另类自拍| 欧美日韩一干二干| 97精品国产| 成人免费毛片| 91爽啪| 欧美 青青草| 国产精品久久久久久久久久久久久久久| 色眯眯av| 夜色综合| 大香蕉色十月| 欧美综合色综合| 女性91网站| 不卡av在线中文字幕| 亚欧韩av| 在线播放中文字幕| 欧美线天码中字| 无码不卡亚洲成?人片| 午夜操逼不卡| 97午夜剧场日韩| 精久久久| 亚洲av国产av综合av卡| 久无码| 黑人精品久久97| 男人天堂欧美| 日本精品成人无码| 九九九九九九九| 射综合网| 亚洲色婷婷| 青青草乱入乱欲视频在线观看| 午夜福利合集| 日欧亚洲二三区大片不卡| 又黄又爽在线观看视频| 熟妇色99| 久久‘黄片视频| 青久操| 91狠狠综| baisiav| 大香蕉92| 国产三级中文有码在线视频| 午夜人妻精品综合在线| 精品乱子一区二区三区99| 99999久久精| 在线毛片片免费观看| 黄片www.| 蜜臀久久久99久久久久| 色九月婷婷| 欧美洲精品一级| 蜜臀久久99精品久久久久久酒店| 色9999日韩国产| 干妹子| 亚洲天堂7777| 人妻少妇无码| 九月AV| 日韩在线国产字幕| 99热精品青草在线 | 在线中文字幕| 日日妻色网| 亚洲天堂中文字| 女生自91网站| 无码不卡八戒| 色 亚洲 91| 一级@啪啪视频| 色综合加勒比四四季| 久久黄人人爽视频| 91亚洲人电影| 国产强奸AV在线| 草b在线| 中文字幕一区二区三区四区在线视频| 一区二区蜜臀| 伊人网综合在线视频| 亚av顶级裸体一区二区三区四区五区 | 欧洲精品一区二区三区| 欧洲综合无码| 国产精品乱码久久久久久久久| 欧美视频在线第3页| 91香蕉国产尤物视频| 亚洲精品色| 亚洲无码超碰免费| 乱伦图一区| 久久久三区二区一区| 激情丁香婷婷| 操逼逼一区视频| 97超碰人操| 97人人射| 久久riav中文精品| 蜜臀久久99精品久久久久久酒店| 麻豆影音天美视频| 亚洲熟女中文字幕在线| 丁香九月婷婷| 日本性一区| 色欧美天天| 亚洲不卡三级手机播放| 丝袜美女诱惑 91 视频| 人妻丝袜无 码视频专区| 国产1024在线播放| 久久一二三四五六七八九区| 欧插网站| 精品国产一区二区久久| 国产69精品久久久久99尤物| 日韩性爱视频在线免费观看| 中国91AV| 亚洲情色 无码专区| 综合色图,成人综合网| av在线播放国产一区| 久久人妻无码毛片A片麻豆| 激情色色| 黄色视频60分钟| 日韩三级av片| 九九九精品一区二区无码| 色婷婷综合网站| 黑人精品XXX一区一二区| 91jk色拍| AV色天香在线| 欧美久热| 日韩在线观看字幕精品| 乱伦一二三区| 国产精品不卡一区二区电影| 亚洲高清91| 欧美亚洲涩涩| 九九自拍伦理| 欧美 青青草| 日韩av一级黄片| 91情色| 深喉吞精| 日日骚av| 丝袜美腿91| 久久精品99久久久久久| 中文字幕人妻色偷偷久久皮 | 久久久九精品| 97色涩| 白嫩嫩一区| 五月丁香色综合| 熟女色综合久久| 日韩国产精品人妻无码久久久| 亚洲色图欧美色图制服诱惑| 人人噜夜夜操| 啊啊啊好大好湿| 婷婷伊人綜合中文字幕| 天天看,天天做| 国产精品呦一区二区三区| 日本成熟少妇A∨网站| 天堂亚洲欧美| 91久久青青草原精品| 91亚洲影视| 妇女一区二区三区| 极品肉射| 欧美色综合| 蜜臀久久99精品久久久久久婷婷| 国产中文大片资源中文字幕| 啊v视频在线观看| 97在线视频观看| 丁香五月天社区| 国产农村妇女毛片精品久久| 国产精品96| 国产精品久久久 | 日韩成人性日韩成人性爱视频在线免费观看| 极品AV网站在线观看| 欧日韩在线观看| 91AV天堂| 91精品人妻一品二品三品| 91网站18禁| 国产呦精品系列在线观看| 色噜噜国产精品视频一区二区| 97超碰超| 欧美真人抽搐一进一出gif| 蜜乳成人AV| 免费精品中文字幕| 五月丁香婷婷啪啪| 国产馆极品诱惑| 69精品人人人人| 日日妻色网| 久久久精精精| 亚洲最新Av| 日韩欧美综合激情| 久热伊人99re| 亚洲天堂电影网| 亚欧操逼片在线观看 | 天天综合网~69| 天堂国产AV| 亚洲色欧| 久久伊人亚洲AV无码网站| 亚卅熟女乱色| 精品十三区| 精品丰满熟妇人妻一区| 国产婷婷综合在线观看| av资源在线观看少妇| 99热最新| 丝袜狠狠草尤物 91| 亚洲精品黄码久久久久| 国产极品精品美女视频| 国产91美女高潮| 国产男女无套97| 久久女女| xxxx网站亚洲精品| caopeng97| 国产精品3| 欲香欲色| 97福利视频| 欧美日动态视频| 丰满熟女一区二区三区在线播放| 久久人人爽人人爽人人片Ⅴ| 欧美一二三区四五区| 蜜臀在线网站| 亚洲第2页| 天天夜夜久久| 欧美一级黄色免费专区| 91色情黑丝搞鸡在线观看一区二区三区三州| 91挑色欧美| 丝袜美腿亚洲| 91综合在线| 日本 情色 1区2区3区| 日熟女| 国语人妻精彩刺激| 精品人妻一区二区三区四区| 天天色播| 猛猛干| 99精品热| 日日躁狠狠躁天天躁精品| 白天啪啪晚上啪啪视频| 日韩99神马视频片| 91成人在线免费视频| 亚洲黄日韩无码专区| 超碰97亚洲| 久久人妻精品| 97久久超碰日韩精品| 女人双腿搬开让男人桶| 欧美色九九| 精品人妻美妇91job| 丝袜色综合| 日本操逼视频导航| 人妻少妇精品无码专区二区密桃 | 男人天堂网手机版婷婷| 日韩国产乱子伦App| 人人超碰在线观看黄| 成人日本精品九区| 国产精品久久久久久久电影渣男| 97色插| 亚洲男人久久综合天堂| caopeng97人妻| 欧美天天干| 日韩精品电影| 九九色逼| 人人性爱视频免费| 91无摭挡| 国产亚洲99久久精品| 久久精品超碰| 欧美 青青草| 性影在线视频| 伊人宅男大香蕉| 国产精品电影| 伊人黄色片| 九九九久千久久激情蜜桃在线看 | 97色妞| 国产乱伦一二三区| 大香蕉99999| 国产精品一区二区三区在线密挑| 家庭乱伦国产精品| 色97综合中文字幕| 美女刺激久久国产欧美| 欧美爱三级日韩久久| 蜜桃视频一区二区三区 | 日本性一区| 另类小说五月天| 在线日韩日本亚洲国产| 是还免费视频1727我| 国产超碰| 欧美亚洲素人制服精品| 91色婷婷综合久久中文字幕二区| 欧美国产有色电影| a久久| 国产亚洲女v在线观看| 九九九九亚洲| 久久、1234| 伊人色综合网电影| 中文字幕高清精品一区| 97综合| 好看的久久不射无码影视影院| 人妻精品视频一区二区| 另类亚洲一区二区三区| 亚洲情欲| 天天综合欧美黑人| 美性中文综合网| 开心激情婷婷| 国产麻豆一级精品视频| 高潮毛片无遮挡高清免费| 91N综合网| 人妻一区二区三区| 一起草精品人妻| 理论久久婷婷网 8| 色综合国产在线观看| 国产视频一区二区免费| 中文字幕欧美精品亚洲日韩蜜臀| 九九国产热| 成人黄页| 99夜夜操| 日本免费一级AAA大片器 | 18精品一二区| 加勒比综合88| 特级丰满少妇一级AAAA爱毛片 | 蜜臀AV午夜精品久| 91中文字幕制服丝袜免费视频| 俞拍自拍| 天堂性色| 美性中文综合网| 新97国产超碰| 少妇精品久久久八区九区| 中国熟女网站| 日本大香蕉综合网红本杳社区| 欧美日韩制服| 天天爽夜夜爽夜夜爽精| 欧美日韩第一页| 天天日日舔舔| 黑人粗大V S日韩女优视频| 九九九国产| 麻豆尤物视频网| 日韩精品资源专区二区| 色综合尤物| 精品国模无码| 国产精品蜜乳AV| 久久久久久性爱视频| 久久久久久久久久久久久久久久9| 久热这里| 人妻精品一区二区在线| 9超碰免费| 777超碰| 久久久九九网站| 久久精品高清无码一区| 草草影院最新网址| 久久av网| 天堂性色| 成人av动漫在线观看| 亚洲诱惑| 超97在线精品视频| 歐美性天天| 一区二区免费电影久久| 国产性刺激| 色99999| 嗯啊啊啊轻点视频 | 激情自拍 校园春色| 国产超碰97| 精品无码一区二区人妻久久蜜桃| 综合伊人激情| 经典丝袜一区| 激情丁香五月婷婷| 丰满人妻区一区二区三| 青青草视频久久久久| 最新av中文字幕高清| 黄页大片在线观看| 一级性爱视频免费在线| 啊啊啊啊啊啊好湿好爽视频| 欧美一区二区三区蜜桃| 91碰碰| 五月婷婷久久综合| 久久专区| 国产日产欧产美韩系列麻豆免费| 五月综合色| 亚洲日韩天堂| 超碰在线在公开超碰在线在公开| 亚洲蜜臀懂色| 99久re热视频精品98| 久久久久亚洲精品| 久久毛卡| 女生91网站| 蜜桃在线观看一区二区三区 | 天天cao在线| 亚洲第一二区另类图| se01国产在线视频| 日产精品久久久一区二区| 热久久这里只有精品| 色y情视频免费看| 97中文综合| 国产乱人妻精品入口| av中文字幕在线熟女| 亚洲成人福利电影免费| 四虎国产精品永久地址入口| 人人人干干人人干| 狠狠超| 999精品乱码| 亚洲综合图色在线| 欧美夜夜狠| 国产熟女乱论| 精品午夜福利国产一区二区在线观看| 久久精品无码专区| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 97精品熟女少妇一区| 欧美高清色| 精品国产a∨一区天美传媒| 国产精品3| 97欧美色综合| 天天在线91| 青青草原香蕉日本Ap| 天天综合网合集91| 久久老熟女| 韩日欧亚a级| 男人天堂新| 92一区二区| 日韩免费a级毛片无码a∨| 射久久| 久草精品国产99| 老外又粗又长一晚做五次| 欧美偷拍区| 欧美成人AⅤ大片在线观看| 亚洲欧美国产其他二区| www.狠狠干.coom | 精品少妇一区二区| 亚洲影院365| 日本午夜精品理论片A级APP发布| 国产免费一区在线观看| 天天日B狠狠操| 爱爱动态试试看6 0秒| 俞拍自拍| 亚洲成人激情小说视频| 色官网色综合| 欧美内射少妇| 自拍六区| 亚洲图片偷拍视频区| 伊人大香蕉在线| 青青草综合在线| 国产69精品久久久久99尤物| 日韩精品作爱导航| 成人性交免费视频| 乱伦图一区| 超碰超碰95| 人妻少妇久久| 黄片com.| 2026国产精品视频| 日本三级A片网站com| 亚洲中文制服诱惑| 国产精品一区二区三区四区五区| 国产精品午夜高潮呻吟久久av| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 色狠狠 - 百度| av婷婷色网| 我想要 啊 啊 啊| 亚洲精品人妻吞精av| 丁香婷婷激情五月天无毒不卡| 丝袜美腿丝袜| 久久五月丁香| 久久精品国产亚洲av水密被窝| 国产精品久久久久综合| 国产suv精品一区二六| 国产成人自拍视频在线| 中文字幕视频二区| 亚洲精品久| 女生91网站| 夜夜狼人妻| 牛牛操视频逼| 北条麻妃性愛视频| 欧美日韩香蕉| 91亚洲欧美激情| 日本三级小说中文字幕| 精品亚洲国产成人av网站| 色香伊人| 少妇被玩视频二三区| 久久av无码| 久艹免费| 亚洲色图 欧美热图 清纯唯美 另类自拍| 97精品网| 亚洲 欧美 日本 国内 首页| 婷婷成人久久久精品| 婷婷丁香九月| 综合另类| 欧美人妖内射| 美女91av| 亚拍在线| 国产一区二区三区,在线观看观看| 国产精品女久久久久av爽| 久久精品99| 91婷婷伊人狠人| 亚洲五码一区二区三区| 综合97| 91亚.色| 久久99999| 超碰97欧美在线| 婷婷亚洲综合| 性爱av在线免费观看| 黑人白女精品一区| 超碰在线人妻中文字幕| 午夜精品久久99蜜桃的功能章节| 97色色国产视频| 久久五月份| 小情侣高清国产在线视频| 日韩无码视频黄色| 午夜精品久久一区二区| 97日韩超碰超碰中文字幕| 欧美,亚洲,日韩,v,天堂,手机在线观看 | 宅男91视频在线播放| 国产丝袜视频| 国产乱婷婷精品二区三区| 五月综合激情网| 色综合久久888| 99热精品在线| 亚洲天堂另类美腿| 老熟女区| 国产精品第一页国产大屁股视频免费区i| 超碰97首页| 亚洲日韩资源| 富女玩鸭子一级毛片| 国产精品扒开腿做爽爽爽视频| 白嫩白嫩的午夜九久久久久久久久久久久成人剧场 | 亚洲综合另类小说色区亚洲成av人片在www | 人妻偷拍一区二区三区| 中文字幕123| 操人妻少妇中文| 欧美白嫩在线放| 96超碰网| 老司机老司机午夜影院| 亚洲综合九九| 97精品视频免费| 久久精品高清无码一区| 亚洲无线观看久久| 日韩一级成人毛片免费观看| 中文字幕在线24| 超碰97亚洲区| 久久国产在线一区二区| 9999久久久久| 欧美体内射精| 中文字幕第9页萱萱影音先锋| 久久亚洲av成人无码国产| 欧美黑人猛交春色影视大全| 日韩另类| 97天天在线| 久操免费电影| 91深夜夜| 亚洲在高跟鞋自慰久久在色线| 大香蕉欧美国产日韩高潮| 国产精品96| 色综合尤物| 综合欧美色图| 在线99热| 久久精品操| 日本午夜福利影院| 蜜桃午夜视频一区二区 | 亚洲综合小视频小说在线观看| 亚洲在线欧美| 色色国产| 91人妻少妇| 天天色综合天天操| 欧美久久婷婷| 无码av永久免费专区网站| 啊操爽品善一区二区三区| 人人看人人爰人人操| 亚洲综合九| 人妻中文在线| 国产精品99精品视频网站| 亚洲aw毛茸茸在线| 欧成人精品一区二区三区| 国产精品白丝| 欧美另类自拍 | 校园春色欧美| 九九热在线视频| 不卡中文字幕aⅴ在线| 色欧洲| 国产白领连续中出在线观看| 精品日韩人妻视频| 乱码人妻一区二区三区| 色色五月天婷婷| 精品美女久久久久| 97中文字幕一区| 亚洲综合贴图91 | 九九九网页| 日韩亚洲Av人人夜夜澡人人爽| 亚州一区二区| 亚洲脚交| 91 丝袜在线观看| 超碰 另类 欧美| 猛交交| 91啪啪视频| 亚洲一级特黄大片在线播放91| 777超碰| 中文字幕一区二区无码成人| 蜜桃丰满熟妇av无码区不卡| 色蜜AV| 黄色AV影视| 婷婷五月天小说| 国产一区二区视频在线播放| 中文字幕奈奈美被公侵犯| 日韩无码极品| 性爱网站一区二区| 伊人精品久久网站| 第45页一区二区| 亚洲 91 在线| 九九久久首页| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 密乳AV免费观看| 91丨国产丨白浆秘 洗澡动漫| 人人妻人人玩人人澡人人爽| 97色香蕉| 60秒不遮不挡| 草草电影院| 成人97人人超碰人人| 9丨久久九九九 | 免费视频在线一区二区不卡| .精品人妻一区二区三| 青娱乐欧美激情一区二区| 国产精品久久成人免费| 99色在线视频| 亚洲自拍欧美国产首页网曝| 100啪啪视频大全| 国产福利电影| 思思热在线| 久久男人网| 老鸭窝成人免费毛片视频 | 97超色| 婷婷操视频| 国模无码一区二区三区在线| 人妻久热在线| 果冻传媒一区二区三区| 人妻色偷色噜| 欧美性爱精品一区二区| 天天α片| 偷拍偷窥与盗摄视频专区| 人妻中文字幕日韩电影| 四虎884a| 日韩激情无码影院| 久操视频免费在线观看| 国产精品电| 美国人人操人人操| 99操| 大香蕉免费3| 麻豆黄四叶草网站| 亚洲中文字幕精品一区| 国产丝袜视频| 伊人操| 裸体美女国产免费久久久网站| 97超碰影音| 最近的最新的中文字幕视频| 嫩草 我啊~嗯~在线| 天天色天天干天天射| 97超碰国产精品| 丝袜亚洲综合| 午夜性| 中国国产精品一区视频| 中日韩久久人妻一区二区| 成人五月天丁香激情综合| 亚洲天堂性爱| 久久久久久亚洲Av无码| 在线观看A啊啊啊| 国产h片在线观看视频| 大香交| 欧美78p| 国产亚洲中文不卡二区| 一本一道久久综合久久| 天天干天天干天天| 亚洲一区中文精品| 香蕉免费一区二区三区不读| 一区三区啪啪| 成人羞羞视频国产| 欧美少妇高潮久久91| 操逼逼无码| 国产午夜精品理论片a大结局| 亚洲激情AV| 淫荡少妇免费| 欧美激情久操网| 伊人在线大香蕉二。| 欧美色图天堂在线| 丰满人妻一区二区三区四区| 丰满人妻一区二区三区免费 | 日欧操屄视频| 日日夜夜精品| 久久久久国产精品久久久| 久久久成人精品| 九月丁香婷婷| 欧洲色| 日本性爱不卡视频| 国产黄色小视频网站| 欧美偷拍| 91观看 国产白丝| 超碰到97情色| 97欧美色综合| 久久同城AV| 一区二区 韩日AV| 日本三级韩三级99久久| 国产三级日产三级韩国三级| 日韩无码视频黄色| 久久狠狠色噜噜狠狠狠狠97| 免费试看60秒| 百度百度日本操逼| 国产精品乱码久久| 骚女天天综合网| 九九九九精| 91天天| 99亚洲国产精品色一区二区三区| 测评在线观看AV| 三级精品三级在线观看| 亚洲?V无码专区在线电影| 91国产操逼视频| 久久国产逼| 国产操逼视频在线观看| 久久精品国产亚洲AV嘿嘿| 青青伊人这里只有精品| 亚洲美女自拍偷拍视频| 十八禁视频网站| 中文字幕啊啊啊在线观看视频| 人妻久久久久久久久久久久久久久 | 日韩欧美aⅴ综合网站发布| 看黄片视频免费| 在线99热| 青青草日本中文字幕| 后入福利视频| 高清孕妇孕交 交| 啪啪啪精品| 日本片日本片祼观看网站在线看中文版网页在线看| av一区二区三区 中文| 人人手机欧洲亚洲国产人妻| 中国小夫妻勾搭露脸淫荡对白| 国产精品一区二区麻豆| 一区二区三区精品久久| 综合网亚洲1| 精品久久久久久久久久久久 | 加勒比久久综合网高清| 去干网最新版| 抽插一区二区视频| 亚洲色五月| 久久亚洲一区女同性恋中文字幕| 激情五月综合| 久久久久久久久久久999| 欧美日韩人妻精品系列一区二区三区| 啊啊啊爽爽| 天天干天天狼在线视频| 久久久久9久久久久| 九九九国产| 一起草精品人妻| 婷婷国产精品九区| 人人操,操人人| 97中文热色| 欧美第二页午夜| 一区二区三区免费岛国片| 天天综合网91入口| 天天日日舔舔| 香蕉视频欧美一卡二卡| 素人伊尹大香蕉免费下载视频| 日韩欧美亚欧在线视频| 色性综合| 久久久久久久97| 熟妇高潮一区二区免费视频| 拍拍拍拍大尺度黄色三级片拍拍拍拍拍照 | 欧美十八禁视频| 国产青视频| 男女激情黄色网址| 91精品免费| 大香蕉黄色一区| 色香天天| 熟女中出视频| 一级久久性爱视频| 精产品久久| 麻豆天美国美国产| 久综合国内精品自在自线| 九九九九免费高| 免费看久久久性性| 9精品久久| 色五月综合| 亚洲欧美国产中文视频| 内射黑丝袜| 日韩精品99999| 亚洲色图尤物视频| 男人的天堂三级| 偷窥自拍亚洲色图| 久久久精品无码亚免费| 大奶的诱惑| 亚洲图片欧美另类综合免费视频大大香| 国产 日韩 另类 视频一区爱| 亚洲色交| 国产精品69久久久久孕妇欧美 | 婷婷国产精品九区| 91精品大奶人妻| 岛国色情视频在线观看| 后入国产| 男人天堂久久精品不卡| 黑丝少妇| 婷婷伊人| 日本东京热加勒比久久| 操国产逼| 免费A片三p视频| 操国产高清| 东京热男人的天堂| 加勒比无码毛片| 色偷综合| 天天内射| 97干天天| 日韩99神马视频播放| 午夜丁香婷婷| 大香蕉丝袜一级片| 99精品在线播放| av日韩在线观看电影| 亚洲色图殴美色图激情乱伦| 日韩成人无码| 欧美一品道| 色九九九九| 性生活无遮挡纯毛片在线看| 熟女丰满人妻一区| 91久久久久久久| 天天做天天爱| 亚洲最大黄网| 国产亚洲色婷婷99精品91| 麻豆国产原创AV色哟哟 | caoni国产亚洲av| 国产无套粉嫩白浆在| 亚洲精品三| 伊人97色天使| 日韩钢筋无码高清啾啾啾| 久久亚码| 色网色网色网色网色网色| 91九色精品熟女内射| 青青久久手机线视频| 99热在线观看| 美女97超碰| 天天影视综合色| 久久蜜桃一区二区| 午夜福利国产欧美日韩夜夜| 顶级丝袜熟女一区二区三区| 人妻丝袜无 码视频专区| 欧美一区二区传媒| 九九九国产| 国产人妖视频一区在线观看| 亚洲综合网电影91| 男人把坤坤插入女人的下体| 国产激情在线| 婷婷亚洲五月***久久| 欧美在线干| av橘色网站| 日本操逼视频导航| 黑人天8A∨高清网站| 欧美性色欧美| 日韩中文字幕国产| 蜜臀人妻少妇久久在线观看| 麻豆视频一区二区| 熟女字幕| 亚洲一区二区中文字幕| 国产精品无码久久久久2028| 综合熟女| 青娱乐妇女性生活| 不卡av在线中文字幕| 亚洲综合在线高清| 久久超碰国产一区二区三区| 婷婷色在线| 久久久91| 欧美熟女少妇| 成人午夜高潮av猛片| 天天干一区二区| 亚洲国产精品V?在线播放| 欧美做爰无码A片视频| 欧美色图99| 99丝袜福利在线播放| 亚洲 欧美 精品专区 极品| 久久欧洲| 国产亚洲日本精品在线| 亚洲AV永久无码精品成人调教| 亚洲va有码在线天堂| 亚洲人久久久网| 五月婷久久| 老熟女搡BBBB搡BBBB视频| 91nbbbbbb| 97福利视频| 亚欧性爱无码| 上床啊啊啊| 国产极品久久久| 日本免费专区| 亚洲欧美日韩中文播放| 欧美操逼视频二区| 亚洲精品三| 国产精品久久久久久照片| 91精品国产综合久久久蜜臀| 亚洲国产奇米影视久久| 97久久超碰| 亚洲视频精选| 亚洲色图8| 人妻喷水| 骚鸭AV| 久久精品日韩专区免费观看| 91亚洲欧美色图| 欧美 亚洲 大香| 日本一区二区三区精品| 激激五月| 熟女啪啪视频| 人妻在线臀日韩| 亚洲熟妇图片| 丝袜综合| 少妇人妻好深太紧了vr91| 日韩免费三级黄片电影| 欧美片第一页| 金莲网址| 97人人模人人爽人人| 在线播放中文字幕| 亚洲操操操| 久久综合18p| 日本日日色视频| 亚洲www91| 91欧洲入口| 亚洲无码电影久久久| 三级色综合| 一级免费啪啪片| 极品五月天噜噜| 青青操在线亚洲视频观看欧美在线 | 欧美一级二级三级| 伊人影院日本| 9999免费精彩视频| 久久精品熟妇丰满人妻99| jizzjizz欧美| 97色色网| 久久久久ab| 91性情| 91精品久久久久五月天精品| aaaa少妇高潮大片| 嗯嗯嗯不要不要免费视频| 少妇精品久久久| 2017av无码免费无线播| 色综合婷婷| 精品人妻一区春色| 秋霞 色色| 久久久久久午夜男人的天堂| 96精品一区| 天天摸夜夜添无码小视频| 91久热这里只有精品| 2020天天色综合| 超碰在线观看av不卡| 日韩久久超碰色| 97日韩| 大香蕉色十月| 国产精品久久久三级无码| 小明看看网址| 秋霞操逼片| 午夜成人福利影视| 亚洲影院成人| 五月天色电影| 搞中出久久| 校园春色亚洲无码| 天天弄天天操| 欧美色97| 大香蕉专区| 欧美在线 亚洲| 久久成人国产| www男人天堂| 91亚州日韩高清| 女性91网站| 婷婷激情一区二区三区俺也去| 亚洲综合影院| 美美91成人国产精品欧美精品久久久久久久| 国产日韩精品suv| 久久久久久久久久黄色网| 国产理论视频在线播放| 哑洲在线| 蜜桃传媒一区二区亚洲| 神马久久久久久伦理片| 一本色道久久综合亚洲二区三区| 丁香五月影院| 日本狂喷奶水在线播放212| 久操视频免费观看| 淫妻综合网| 岛国片国产成人亚洲播放| 国产2.3.4区| 欧美性,色九九| 九九综合久久| 日韩av不卡在线看| 日本男人天堂| 久久噜| AV天堂男人的天堂| 99在线观看| 日本东京热加勒比久久| dy888午夜老子影视达达兔| 色www精品视频在线观看| 91超碰人人操| 国产亚洲中文不卡二区| 欧美高清无码免费视频高清版| 亚洲日精品| 尤物视频网 刘玥| 久久久久9999妇女| 韩国久久97| 99啪啪视频| 日本高清一区二区在线| 综合欧美激情网| 国产v片在线免费观看| 亚洲婷婷丁香在线| 国产农村妇女精品| 亚洲男人天堂2017| 九久久九九久视频| 无码人妻丰满热妇又大又粗| A级在线视频| 1000部熟女视频在线观看| 色臀av| 成年无码动漫av片无尽在线| 麻豆天美91| 亚洲日韩在线a不卡99精品| 婷婷五月天激情四射| 亚洲综合在线第一页| 中文视频在线观看| 成人无码在线视频网站| 翔田千里一区二区三区奶水| 亚洲成人日韩小说| 一级啊性爱在线视频| 熟女被操视频网址| 亚洲日韩一区电影| 九月AV| 91视频综合在线| 日本久久超碰| 久久精品福利影院| 自拍偷拍2025在线观看| 人妻嗯啊啊在线播放| 欧美熟女激情| 国产成人精品一区| 亚洲色图综合| 97人妻免费中文字幕| 91网站在线播放| 热久久国产精品视频大陆精品| 日本熟妇精品九九| 超碰在线一区二区三区| 精品国产一区二区三区香蕉欧美| 郑州宾馆老熟女露脸啪啪| 天天操天天插| 久久久久久无码人妻中文字幕| 国产乱子伦一区二区三区在线观看| 综合伊人激情| 婷婷激情五月| 亚洲天堂美臀在线| 91激情| 五月婷婷影院| 一区二区播放| 国产亚洲精品av一区| 亚洲不卡av在线| 精品九九九九九| 乱老女人一区二区视频| 欧美成人综合| 国产中文字幕在线点播| 玖色AV| 亚欧色图在线激情| 大香蕉亚洲中文| 精品无码久久| 免费看日产一区二区三区| 青青草乱入乱欲视频在线观看| 91亚洲电影| 神马午夜久久| 色五月激情综合网| 欧美碰碰综合色| 激情丁香五月婷婷| 超碰色97| 亚洲熟妇图片| 综合久久久久久久久91| 99re6国产精品99re在线| 97天天日| 亚州综合图片| 人妻精品视频一区二区| 亚洲综合在线91| 最新欧美色网| 国产日韩在线播放av| 久久久99999久网站| 国内毛片无码一级毛片| 一区二区三区一亚洲中文字幕、综合区灬| 精品少妇一区二区三区在线视频| 97视频一区| 精品人妻一区二区三区-国产精品| 五月天婷婷在线看| 无卡一区=区| 99热亚洲天堂| 午夜爽爽爽在线观看永久入口姬片| 久久精品国产97欧美精品亚洲| 6080yy午夜理论三级一区二区三区无码| 欧美日韩在线小说 | 中文久久| 国产熟码AV| 九九英色视频| 一本一道人妻久久一区二区三区 | 国产白领连续中出在线观看| 一区二区三区黄片免费观看| 男人综合网| 亚洲偷拍欧美激情| 久久久久骚| 激情综合五月| 无码聚合| 日本操大逼| 欧美区亚洲区偷拍区| 久久精品久久久久久久| 香蕉免费一区二区三区不读| 大香蕉 222| 欧美日韩夜夜| 91久久精品蜜臀| 超碰av人人人| 99ri视频| 婷婷久久综合久|