久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

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

STM32模擬I2C從機(jī)實(shí)戰(zhàn):狀態(tài)機(jī)設(shè)計(jì)、中斷處理與踩坑總結(jié)

STM32模擬I2C從機(jī)實(shí)戰(zhàn):狀態(tài)機(jī)設(shè)計(jì)、中斷處理與踩坑總結(jié) 簡(jiǎn)介面向STM32/GD32嵌入式開(kāi)發(fā)者提供一套C語(yǔ)言編寫的模擬I2C從機(jī)demo代碼解決MCU缺少硬件I2C從機(jī)控制器、或應(yīng)用場(chǎng)景不適合占用中斷資源時(shí)的從機(jī)通信問(wèn)題。代碼在GD32F130平臺(tái)驗(yàn)證思路可遷移到其他STM32系列主機(jī)讀取時(shí)序START ADDW REG START ADDR REG1 REG2 CRC與主機(jī)寫時(shí)序START ADDW REG1 REG2 CRC均已覆蓋并通過(guò)自動(dòng)識(shí)別ACK區(qū)分start信號(hào)與直接寫數(shù)據(jù)令總線解析更簡(jiǎn)潔。資源為RAR壓縮包僅2KB包含1個(gè)C源文件與1個(gè)頭文件頭文件承載接口與參數(shù)宏方便按工程調(diào)整引腳和通信參數(shù)。作者在50K速率下測(cè)試不丟包且全程無(wú)需中斷資源對(duì)定時(shí)器和GPIO占用極低適合資源較緊張的嵌入式場(chǎng)景?,F(xiàn)有1144人學(xué)習(xí)可直接參考移植適合正在調(diào)試I2C通信或想擺脫硬件從機(jī)模塊限制的開(kāi)發(fā)者。 做模擬I2C從機(jī)這件事我最初是在一個(gè)用STM32F407做數(shù)據(jù)采集的項(xiàng)目里被逼出來(lái)的——主控板是現(xiàn)成的要對(duì)接一個(gè)只能當(dāng)I2C主機(jī)的傳感器模塊可板上的硬件I2C外設(shè)已經(jīng)被占用了一半。網(wǎng)上搜了一圈模擬主機(jī)的資料確實(shí)多但模擬從機(jī)的demo少得可憐。從機(jī)是被動(dòng)角色主機(jī)什么時(shí)候拉SCL、什么時(shí)候切換SDA從機(jī)完全說(shuō)了不算所有的判斷都得靠中斷里的邊沿檢測(cè)時(shí)機(jī)差一點(diǎn)數(shù)據(jù)就錯(cuò)了。這篇文章把我實(shí)際調(diào)通的STM32模擬I2C從機(jī)demo代碼拆開(kāi)講說(shuō)說(shuō)狀態(tài)機(jī)怎么設(shè)計(jì)、SCL和SDA兩個(gè)外部中斷怎么配合、開(kāi)漏輸出怎么處理以及我在這中間踩過(guò)的幾個(gè)坑。1. 什么情況下必須用模擬I2C從機(jī)1.1 硬件I2C從機(jī)的限制很多人覺(jué)得用MCU內(nèi)置的硬件I2C外設(shè)從機(jī)模式不就行了如果引腳和資源都富余硬件方案確實(shí)是首選省心、時(shí)序準(zhǔn)確、不占CPU。但實(shí)際項(xiàng)目里你總會(huì)碰到幾個(gè)尷尬情況引腳不夠用了只剩兩個(gè)普通GPIO而硬件I2C引腳恰好被別的功能占著我就是這個(gè)情況。硬件I2C從機(jī)在低功耗模式下喚醒不及時(shí)總線上有起始條件來(lái)了從機(jī)還沒(méi)準(zhǔn)備好。項(xiàng)目里已經(jīng)有別的模塊占用了I2C外設(shè)同一個(gè)MCU里掛了兩個(gè)從機(jī)硬件資源不夠分。換芯片換到一半新芯片的硬件I2C與外設(shè)引腳的映射對(duì)不上但又不能改板子。另外還有一個(gè)體驗(yàn)上的問(wèn)題不同廠家芯片的硬件I2C實(shí)現(xiàn)細(xì)節(jié)差異很大尤其從機(jī)模式下的時(shí)序容錯(cuò)處理不太一樣調(diào)試的時(shí)候想用一個(gè)統(tǒng)一方案覆蓋所有芯片模擬反而更可控。1.2 模擬方案適合什么場(chǎng)景模擬I2C從機(jī)說(shuō)白了就是用GPIO外部中斷跟蹤SCL和SDA的每一個(gè)邊沿把I2C協(xié)議翻譯成一串狀態(tài)轉(zhuǎn)移。它適合以下場(chǎng)景對(duì)時(shí)序要求不算極端的總線100kHz標(biāo)準(zhǔn)模式下完全夠用400kHz快速模式經(jīng)過(guò)優(yōu)化也能跑。通信頻率不高的傳感器數(shù)據(jù)交互比如讀取溫濕度、電池電量、配置參數(shù)等。需要快速移植到不同MCU平臺(tái)只要改引腳配置和中斷服務(wù)函數(shù)就行。學(xué)習(xí)I2C協(xié)議的好途徑——把狀態(tài)機(jī)寫一遍比看十遍時(shí)序圖都管用。如果項(xiàng)目里跑的是1MHz以上的高速I2C或者主機(jī)連續(xù)讀寫超大塊數(shù)據(jù)不允許任何時(shí)間偏差那還是老實(shí)選硬件I2C外設(shè)模擬方案在這種場(chǎng)景下性價(jià)比不高。2. 模擬I2C從機(jī)的狀態(tài)機(jī)設(shè)計(jì)思路2.1 從機(jī)視角重新理解I2C時(shí)序?qū)憦臋C(jī)模擬代碼前先把協(xié)議站在從機(jī)角度捋一遍這和寫主機(jī)驅(qū)動(dòng)時(shí)的視角完全不一樣。主機(jī)知道時(shí)鐘什么時(shí)候來(lái)從機(jī)只能在中斷里被動(dòng)地接住每一個(gè)邊沿。I2C通信的關(guān)鍵事件如下起始條件SCL為高時(shí)SDA產(chǎn)生一個(gè)下降沿這是通信開(kāi)始的敲門聲。地址階段隨后8個(gè)SCL脈沖內(nèi)主機(jī)依次發(fā)送7位地址1位讀寫標(biāo)志從機(jī)在每個(gè)SCL上升沿采樣一次SDA。應(yīng)答階段第9個(gè)SCL脈沖地址匹配的從機(jī)要把SDA拉低ACK不匹配就釋放SDANACK。數(shù)據(jù)傳輸方向由地址第0位決定。寫操作時(shí)從機(jī)在每個(gè)字節(jié)后給ACK讀操作時(shí)從機(jī)在SCL低電平期間改變SDA數(shù)據(jù)主機(jī)在SCL高電平期間采樣第9個(gè)脈沖主機(jī)回ACK表示還要繼續(xù)讀回NACK表示停止。停止條件SCL為高時(shí)SDA產(chǎn)生一個(gè)上升沿。特別注意一點(diǎn)模擬從機(jī)里起始條件和停止條件的檢測(cè)非常容易漏因?yàn)檫@時(shí)候SCL沒(méi)有變化只有SDA變了如果只監(jiān)聽(tīng)SCL中斷起始條件根本不會(huì)觸發(fā)。這也是很多新手寫模擬從機(jī)時(shí)數(shù)據(jù)一直對(duì)不上的主要原因。2.2 中斷選型與引腳配置方案我的方案是兩條線都接外部中斷并且都是雙邊沿觸發(fā)SCL接EXTI上升沿采樣數(shù)據(jù)下降沿判定階段切換、準(zhǔn)備ACK/下一bit。SDA也接EXTI用于起始/停止條件檢測(cè)中斷處理里先判斷SCL的電平若SCL為高且SDA有邊沿說(shuō)明是起始或停止事件若SCL為低說(shuō)明只是普通的數(shù)據(jù)變化忽略。引腳配置上有個(gè)關(guān)鍵點(diǎn)SDA既要能讀檢測(cè)邊沿、采樣數(shù)據(jù)又要能寫發(fā)送ACK、發(fā)送數(shù)據(jù)。如果把它配成輸入中斷模式就沒(méi)辦法拉低SDA配成開(kāi)漏輸出模式又擔(dān)心外部中斷不觸發(fā)。其實(shí)在STM32上開(kāi)漏輸出模式下把ODR寫1時(shí)引腳等于高阻釋放IDR仍然可以讀到引腳電平EXTI中斷檢測(cè)的是IDR的電平變化兩者完全不沖突。所以SDA的正確配置是開(kāi)漏輸出模式初始把ODR置1釋放然后手動(dòng)使能EXTI中斷。這樣既能在需要時(shí)拉低SDA又能在總線上出現(xiàn)起始/停止條件時(shí)觸發(fā)中斷。初始化代碼我在第3節(jié)給出。2.3 狀態(tài)機(jī)定義與轉(zhuǎn)移條件我把從機(jī)的整個(gè)工作過(guò)程拆成8個(gè)狀態(tài)typedef enum { I2C_STATE_IDLE 0, /* 空閑等待起始條件 */ I2C_STATE_RX_ADDR, /* 接收地址讀寫位 */ I2C_STATE_ACK_ADDR, /* 地址應(yīng)答等待完成 */ I2C_STATE_RX_DATA, /* 接收數(shù)據(jù)寫操作 */ I2C_STATE_ACK_DATA, /* 數(shù)據(jù)應(yīng)答等待完成 */ I2C_STATE_TX_DATA, /* 發(fā)送數(shù)據(jù)讀操作 */ I2C_STATE_STOP /* 停止條件 */ } I2C_SlaveState;狀態(tài)轉(zhuǎn)移的核心邏輯是SCL上升沿負(fù)責(zé)收數(shù)據(jù)采樣SDASCL下降沿負(fù)責(zé)換階段切換狀態(tài)、準(zhǔn)備ACK或下一位數(shù)據(jù)。地址階段和數(shù)據(jù)接收階段雖然都是8個(gè)bit的采樣過(guò)程但收完后的處理不同——地址收完要判斷是否匹配數(shù)據(jù)收完要存緩沖區(qū)。因此我用一個(gè)bit_count變量區(qū)分當(dāng)前收了多少位在SCL下降沿檢查這個(gè)計(jì)數(shù)。另外要設(shè)計(jì)好超時(shí)保護(hù)。如果主機(jī)在通信中途掉線比如只發(fā)了起始條件就掛死從機(jī)狀態(tài)機(jī)會(huì)一直停在RX_ADDR狀態(tài)這時(shí)后面再來(lái)的數(shù)據(jù)會(huì)被誤當(dāng)?shù)刂诽幚?。可以在主循環(huán)里加一個(gè)超時(shí)檢查超過(guò)比如10ms沒(méi)收到新的SCL邊沿就強(qiáng)制回IDLE。3. 手把手實(shí)現(xiàn)的Demo代碼3.1 引腳初始化SDA開(kāi)漏輸出外部中斷的配置我用的型號(hào)是STM32F103SCL接PA6SDA接PA7從機(jī)地址設(shè)為0x32。工程基于HAL庫(kù)但SDA的外部中斷部分用寄存器手動(dòng)打開(kāi)因?yàn)镠AL庫(kù)沒(méi)有直接提供開(kāi)漏輸出EXTI的組合模式。void I2C_Slave_Init(void) { GPIO_InitTypeDef GPIO_InitStruct {0}; __HAL_RCC_GPIOA_CLK_ENABLE(); /* SCL浮空輸入 雙邊沿外部中斷 */ GPIO_InitStruct.Pin GPIO_PIN_6; GPIO_InitStruct.Mode GPIO_MODE_IT_RISING_FALLING; GPIO_InitStruct.Pull GPIO_PULLUP; HAL_GPIO_Init(GPIOA, GPIO_InitStruct); /* SDA開(kāi)漏輸出初始釋放 */ GPIO_InitStruct.Pin GPIO_PIN_7; GPIO_InitStruct.Mode GPIO_MODE_OUTPUT_OD; GPIO_InitStruct.Pull GPIO_NOPULL; GPIO_InitStruct.Speed GPIO_SPEED_FREQ_HIGH; HAL_GPIO_Init(GPIOA, GPIO_InitStruct); HAL_GPIO_WritePin(GPIOA, GPIO_PIN_7, GPIO_PIN_SET); /* 手動(dòng)配置SDA的EXTI上升沿下降沿都觸發(fā) */ GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource7); EXTI-IMR | EXTI_IMR_MR7; EXTI-RTSR | EXTI_RTSR_TR7; EXTI-FTSR | EXTI_FTSR_TR7; HAL_NVIC_SetPriority(EXTI9_5_IRQn, 1, 0); HAL_NVIC_EnableIRQ(EXTI9_5_IRQn); }這里有個(gè)細(xì)節(jié)值得說(shuō)明GPIO_PULLUP對(duì)開(kāi)漏輸出模式是不生效的所以SDA的上下拉要由外部上拉電阻決定。PCB上I2C總線必須要有上拉電阻一般4.7k到10k比較常見(jiàn)如果沒(méi)有通信會(huì)隨機(jī)失敗。SCL配成上拉輸入是為了防止總線空閑時(shí)引腳浮空誤觸發(fā)中斷。3.2 起始/停止條件的檢測(cè)SDA的中斷函數(shù)是整套代碼里最需要抓住時(shí)機(jī)的地方。進(jìn)入中斷后第一件事就是讀SCL的電平判斷這次SDA變化是起始/停止還是普通數(shù)據(jù)位變化void EXTI9_5_IRQHandler(void) { /* SCL中斷處理略見(jiàn)3.3節(jié) */ /* SDA中斷檢測(cè)起始/停止條件 */ if (EXTI-PR EXTI_PR_PR7) { EXTI-PR EXTI_PR_PR7; if (HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_6) GPIO_PIN_SET) { /* SCL為高說(shuō)明SDA變更是起始或停止信號(hào) */ if (HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_7) GPIO_PIN_RESET) { /* 下降沿起始條件 */ i2c_state I2C_STATE_RX_ADDR; bit_count 0; shift_reg 0; i2c_rx_done 0; } else { /* 上升沿停止條件 */ if (i2c_state I2C_STATE_RX_DATA bit_count 0) { i2c_rx_done 1; /* 標(biāo)記一幀接收完成 */ } i2c_state I2C_STATE_IDLE; } } /* 如果SCL為低這只是數(shù)據(jù)位翻轉(zhuǎn)直接忽略 */ } }實(shí)際調(diào)試時(shí)我遇到過(guò)一種情況上位機(jī)主機(jī)在發(fā)送數(shù)據(jù)過(guò)程中SDA的電平變化點(diǎn)與SCL下降沿幾乎重疊。這時(shí)候SDA中斷里讀到的SCL電平可能已經(jīng)是下降了或者恰好還在高電平導(dǎo)致誤判。我的解決辦法是在初始化時(shí)把SCL的采樣放在中斷入口處并且用一小段延時(shí)或重復(fù)采樣做去抖。更穩(wěn)的辦法是稍微滯后一點(diǎn)再采樣但中斷里不適合做長(zhǎng)時(shí)間延時(shí)所以重復(fù)讀兩次取多數(shù)值是比較實(shí)用的做法。3.3 地址匹配與ACK/NACK處理SCL中斷承擔(dān)了狀態(tài)機(jī)的核心推進(jìn)工作。我把上升沿和下降沿分開(kāi)處理。上升沿采樣SDA數(shù)據(jù)/* SCL上升沿從數(shù)據(jù)線上采樣1個(gè)bit */ if (HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_6) GPIO_PIN_SET) { if (i2c_state I2C_STATE_RX_ADDR || i2c_state I2C_STATE_RX_DATA) { shift_reg 1; if (HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_7) GPIO_PIN_SET) { shift_reg | 0x01; } bit_count; } }SCL下降沿要處理的事情更多。這里的關(guān)鍵是區(qū)分剛好收滿8位和第9個(gè)時(shí)鐘結(jié)束兩個(gè)時(shí)刻。假設(shè)執(zhí)行到以下SCL下降沿代碼時(shí)如果地址剛好收到8位表示要進(jìn)入ACK階段了如果狀態(tài)是ACK_ADDR表示ACK階段結(jié)束了else { /* SCL下降沿 */ if (i2c_state I2C_STATE_RX_ADDR bit_count 8) { /* 8位地址含讀寫位收滿 */ i2c_addr shift_reg 1; /* 7位從機(jī)地址 */ i2c_is_read shift_reg 0x01; /* 最低位是讀寫標(biāo)志 */ if (i2c_addr I2C_SLAVE_ADDR) { SDA_LOW(); /* 地址匹配拉低SDA應(yīng)答 */ i2c_state I2C_STATE_ACK_ADDR; } else { SDA_RELEASE(); /* 地址不匹配不響應(yīng) */ i2c_state I2C_STATE_IDLE; } bit_count 0; shift_reg 0; } else if (i2c_state I2C_STATE_ACK_ADDR) { /* 第9個(gè)時(shí)鐘結(jié)束ACK階段完成 */ SDA_RELEASE(); if (i2c_is_read) { /* 主機(jī)要讀數(shù)據(jù) */ i2c_state I2C_STATE_TX_DATA; i2c_tx_index 0; bit_count 0; /* 預(yù)置第一個(gè)數(shù)據(jù)位 */ if (i2c_tx_len 0 (i2c_tx_buf[0] 0x80) ! 0) { SDA_RELEASE(); } else { SDA_LOW(); } bit_count 1; } else { /* 主機(jī)要寫數(shù)據(jù) */ i2c_state I2C_STATE_RX_DATA; bit_count 0; shift_reg 0; } } else if (i2c_state I2C_STATE_RX_DATA bit_count 8) { /* 一個(gè)完整數(shù)據(jù)字節(jié)收滿 */ if (i2c_rx_len 15) { i2c_rx_buf[i2c_rx_len] shift_reg; } SDA_LOW(); /* 數(shù)據(jù)應(yīng)答 */ i2c_state I2C_STATE_ACK_DATA; bit_count 0; shift_reg 0; } else if (i2c_state I2C_STATE_ACK_DATA) { /* 數(shù)據(jù)ACK階段結(jié)束 */ SDA_RELEASE(); i2c_state I2C_STATE_RX_DATA; bit_count 0; shift_reg 0; } else if (i2c_state I2C_STATE_TX_DATA) { /* 發(fā)送數(shù)據(jù)的處理見(jiàn)3.4節(jié) */ } }這里需要注意bit_count 8判斷必須在ACK_ADDR和ACK_DATA之前因?yàn)樗鼈兊挠|發(fā)條件不同。如果把狀態(tài)判斷放在前面會(huì)出現(xiàn)bit_count還停在8就又被ACK狀態(tài)的分支消耗掉的情況狀態(tài)會(huì)錯(cuò)亂。調(diào)試時(shí)可以用一個(gè)狀態(tài)打印函數(shù)把每個(gè)中斷里的狀態(tài)和bit_count打出來(lái)。3.4 數(shù)據(jù)收發(fā)狀態(tài)機(jī)的完整實(shí)現(xiàn)讀操作從機(jī)發(fā)送的處理比寫操作繞一些。原因是從機(jī)要主動(dòng)改變SDA電平但又必須在SCL低電平期間改變高電平期間保持穩(wěn)定。我采用的策略是在第9個(gè)ACK時(shí)鐘下降沿后的低電平窗口里預(yù)置第一個(gè)bit然后在后面每個(gè)SCL下降沿準(zhǔn)備下一個(gè)bit。else if (i2c_state I2C_STATE_TX_DATA) { if (bit_count 8) { /* 還沒(méi)發(fā)完8個(gè)bit準(zhǔn)備下一位 */ bit_count; if (bit_count 8) { uint8_t current_byte i2c_tx_buf[i2c_tx_index]; if ((current_byte (0x80 bit_count)) ! 0) { SDA_RELEASE(); } else { SDA_LOW(); } } } else { /* 8個(gè)bit已經(jīng)全部放到總線上第9個(gè)時(shí)鐘讀主機(jī)ACK */ SDA_RELEASE(); if (SDA_READ() GPIO_PIN_RESET) { /* 主機(jī)ACK表示還想要下一個(gè)字節(jié) */ i2c_tx_index; if (i2c_tx_index i2c_tx_len) { bit_count 0; if ((i2c_tx_buf[i2c_tx_index] 0x80) ! 0) { SDA_RELEASE(); } else { SDA_LOW(); } bit_count 1; } else { /* 數(shù)據(jù)已經(jīng)全部發(fā)完 */ i2c_state I2C_STATE_IDLE; } } else { /* 主機(jī)NACK通信結(jié)束 */ i2c_state I2C_STATE_IDLE; } } }寫操作相對(duì)簡(jiǎn)單接收方向的數(shù)據(jù)處理就是不斷采樣、存緩沖區(qū)、給ACK。demo里我維護(hù)了兩個(gè)全局?jǐn)?shù)組volatile uint8_t i2c_rx_buf[16]; /* 寫操作收到的數(shù)據(jù) */ volatile uint8_t i2c_rx_len 0; volatile uint8_t i2c_tx_buf[16] {0x01, 0x02, 0x03, 0x04, 0x05}; volatile uint8_t i2c_tx_len 5; volatile uint8_t i2c_rx_done 0; /* 收到完整一幀后置1主循環(huán)處理 */做讀操作demo時(shí)從機(jī)主動(dòng)發(fā)數(shù)據(jù)這個(gè)動(dòng)作特別容易翻車。我建議先用一個(gè)固定數(shù)組測(cè)試通信確認(rèn)主機(jī)能完整收到數(shù)據(jù)后再改成動(dòng)態(tài)更新。另外發(fā)送數(shù)據(jù)時(shí)如果主機(jī)的ACK信號(hào)從機(jī)沒(méi)讀到比如時(shí)序太緊后續(xù)狀態(tài)就卡死了??梢栽赥X_DATA狀態(tài)加一個(gè)保護(hù)如果bit_count超過(guò)9還沒(méi)等到正常狀態(tài)轉(zhuǎn)移強(qiáng)制回IDLE。4. 調(diào)試經(jīng)驗(yàn)常見(jiàn)坑與排查方法4.1 邏輯分析儀驗(yàn)證時(shí)序的要點(diǎn)模擬I2C從機(jī)寫好后必須用邏輯分析儀看實(shí)際波形不要只在代碼里打日志。我用的8通道邏輯分析儀采樣率調(diào)到24MHz以上抓SDA和SCL兩根線導(dǎo)出后對(duì)照I2C協(xié)議逐bit核對(duì)。重點(diǎn)看三處起始條件是否被正確識(shí)別波形里SDA在SCL高電平期間形成下降沿后面的地址數(shù)據(jù)能正確對(duì)齊。ACK/NACK是否在正確的時(shí)鐘周期出現(xiàn)ACK應(yīng)該在第9個(gè)時(shí)鐘的低電平期間被拉低高電平期間保持。讀操作方向的數(shù)據(jù)位是否建立正確SDA的變化應(yīng)該發(fā)生在SCL低電平期間每個(gè)SCL高電平期間SDA必須穩(wěn)定。邏輯分析儀上如果發(fā)現(xiàn)ACK時(shí)序?qū)α说恢闷艘粋€(gè)相位多半是狀態(tài)機(jī)的下降沿/上升沿判斷反了。我曾犯過(guò)的錯(cuò)誤是把拉低SDA應(yīng)答放在了第8個(gè)時(shí)鐘的上升沿結(jié)果主機(jī)看到的是數(shù)據(jù)位不是ACK。4.2 實(shí)測(cè)中遇到的4個(gè)典型問(wèn)題問(wèn)題現(xiàn)象可能原因解決方案主機(jī)找不到從機(jī)NACKSDA開(kāi)漏模式下ODR沒(méi)初始化成1總線被拉死初始化后寫GPIO_PIN_SET釋放SDA起始條件偶爾丟失主機(jī)的SDA變化時(shí)間與SCL高電平窗口重疊在SDA中斷里去抖重復(fù)讀SCL確認(rèn)降低I2C主機(jī)的傳輸速度讀數(shù)據(jù)時(shí)第一個(gè)字節(jié)是0xFF發(fā)送模式下第一位預(yù)置的時(shí)機(jī)太晚主機(jī)已采樣在ACK_ADDR的下降沿就預(yù)置第一個(gè)bit而不是等TX_DATA的下降沿?cái)?shù)據(jù)塊接收完后缺最后一個(gè)字節(jié)停止條件到來(lái)前從機(jī)沒(méi)有保存最后一字節(jié)在SDA中斷的停止條件分支里判斷bit_count若等于8也要存入緩沖區(qū)并置rx_done第一個(gè)問(wèn)題很隱蔽。SDA配置成開(kāi)漏輸出后如果ODR默認(rèn)是0SDA會(huì)被一直拉低總線忙任何主機(jī)都起不了通信。初始化把ODR置1相當(dāng)于釋放總線這是必須的一步。第二個(gè)問(wèn)題我在調(diào)試時(shí)遇到了好幾次。主機(jī)的起始條件要求SDA下降沿后保持至少0.6us快速模式到4.7us標(biāo)準(zhǔn)模式如果MCU在SDA中斷里處理時(shí)間太長(zhǎng)還沒(méi)退出中斷SCL就開(kāi)始翻轉(zhuǎn)后面的采樣就會(huì)錯(cuò)位。解決辦法一是優(yōu)化中斷函數(shù)把耗時(shí)操作移到主循環(huán);二是把主機(jī)的I2C時(shí)鐘降一檔比如從400kHz降到100kHz。第四個(gè)問(wèn)題也值得展開(kāi)。寫操作最后主機(jī)發(fā)完最后一字節(jié)數(shù)據(jù)后會(huì)發(fā)出停止條件SCL高電平時(shí)SDA上升沿。這時(shí)從機(jī)的狀態(tài)可能還停在RX_DATAbit_count等于8但還沒(méi)進(jìn)入ACK_DATA分支。所以我特意在SDA中斷的停止條件判斷里加了bit_count 8的判斷把最后一字節(jié)保存。這個(gè)坑如果不處理主機(jī)會(huì)發(fā)現(xiàn)總是少收到最后一字節(jié)數(shù)據(jù)。我在實(shí)際調(diào)試中還有一個(gè)體會(huì)如果項(xiàng)目里主機(jī)和從機(jī)都是自己寫的建議先跑通主機(jī)寫、從機(jī)收這一方向再跑反方向。兩個(gè)方向都能穩(wěn)定跑過(guò)1000次后再上業(yè)務(wù)邏輯。模擬從機(jī)的核心問(wèn)題不是代碼復(fù)雜度而是對(duì)時(shí)序細(xì)節(jié)的把握把中斷優(yōu)先級(jí)處理好、狀態(tài)機(jī)梳理清楚后面移植到別的MCU也就是改改引腳的事情。這個(gè)demo后續(xù)還可以擴(kuò)展時(shí)鐘拉伸、多字節(jié)寄存器讀寫、錯(cuò)誤重試等功能底子打好了加功能就是水到渠成的事。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
成人无码在线超碰网| 青娱乐国产精品| 东京热一区二区三区四区五区六区| 男人女人18禁片免费看网站| 韩日精品福利视频一区不卡在线免| 眼镜人妻101.com| 劲爆欧美人妖三区91| 中文字幕亚韩| 蜜臀AV成人精品蜜臀AV久久| 亚洲色人| 五月丁香六月激情| 亚洲第一男人天堂| 蜜臀av一区二区三区免费观看| 中国和日本人色哪个不下载能放| 日本 成 人 小说 电影 一区二区| 综合网天天| 亚洲AV乱码专区国产噜噜亚洲| 人妻丰满熟妇一区二区三| 蘋果手機免費看成人Av| 欧美三级免费伊人| 国产熟女免费观看久久| 91性片| 亚熟hd视频在线| 不卡中文字幕aⅴ在线| 東南亚性呦成人伦理资源在线视频| 欧美综合第一| 中文字幕老熟妇黄色视频| 中国乱伦一区二区| 亚洲无992tv| 欧美国产有色电影| 凹凸视频特色日本特黄| 日韩免费大片一级播放| 精品久久久久久中文字幕视频免费| 自拍第一页| 国产小炒后入式| 久久e6只有精品| 志村玲子视频一区二区| 人摸人人操人| 日本东京热加勒比久久| 久久久久久亚洲Av无码| 99e久久国产精品| 中文久久| 亚洲天堂在线怕怕视频 | 97在线精品观看视频| 亚洲老司机123专区| 久久久久久大| 操人妻逼91| 91亚洲欧美色图| 日本天堂网| 色噜噜综合在线| 精品一区二区三区蜜桃臀赵总| 日韩成人电影AV| www.色婷婷.com| 五月婷婷综合网| 97操碰| 日本一级二级三级网站| 无码一区二区精品视频久久久春药 | 亚洲密乳AV| 粉嫩av久久一区二区三区| 一起草视频在线| 亚洲国产成人精品女人久久久| 欧美色涩| 久久久精品91八戒| 91丨熟女丨丰满熟女| 日韩av乱伦| 久久精品国产精品亚洲艾通辽熟妇 | 91在线视频观看国产| 精品少妇人妻av久久免费| 日韩Va亚洲va欧美Ⅴa久久| 天天色播亚洲综合网站| 艹我哪美一区无码| 精品人妻一区二区三区夜夜| 亚洲脚交| 另类亚洲一区二区三区| 18禁免费视频| 婷婷五月天_亚洲小说欧美激情另类_精品久久国产字幕 | 久久黄人人爽视频| 亚洲无码成人精品| 伊人网综合在线视频| 一区二区三区机械有限公司| 爱干爱射网啊啊啊| 美女干逼2| 天天在线91| 嗯嗯啊好爽| 自拍偷拍国产欧美日韩韩| 丰满人妻无码一区二区三区| 久久99午夜精品一区人妻| 91丨九色丨东北熟女| 丰满人妻一区二区三区四| 欧美后入视频| 久草新在线| 国产色综合亚洲色综合吹潮| 大香蕉乱伦视频网| 97精品97| 日本成a人v网站在线观看| 国产精品视频一区二区三区八戒| 日韩乱码Av| 天天草AV| a片自拍直播视频| 在线视频日韩欧美国产| 亚洲欧美爆| 国产久久久久影院老熟女| 啊啊啊好想要| 五月天婷婷久久| 97视频7| 凹凸 69堂 在线播放| 亚洲国产ⅴ高清在线观看| 国产刺激视频| 综合亚州欧美| 亚洲精品第一| 97精品久久久久中文字幕| 中文久久久| 久操精品网| 久色99999| 日韩偷拍一区二区三区| 亚州操操穴网| 国产精品九九九| 激情四射五月天| 免费国产| 男人的天堂一区三区| 精品国产乱码久久久兰草影视| 精品人妻一区二区三区在| 五月天丁香网| 嗯嗯不要 视频| 一区二区三区激情在线观看| 欧美韩日精品资源| 免费作爱一级视频| 色五月激情AV在线| 久久久无码av精| 都市激情人妻一区二区青青操视频| 日韩免费一级性爱视频| 欧美性区| 无码人妻精品一区二区中文| 91精品丝袜久久久久久无码人妻| 国产狂喷潮在线精品| 肥臀熟女福利视频一区二区| 国产毛片片精品天天看视频| 天天综合色电影| 精品国产Av无码久久久伦古装| 天天操夜夜操| 色九色久| 无码又爽又硬又激情免费视频 | 国产不卡精品91| 麻豆成人影音在线| 99.色网| 国内亚洲高清无码| 1204金沙人妻懂旧版免费| 日逼视频日本| 91青青在线视频| 伊人久久婷婷| 亚洲精品久久久久毛片A片拉屎| 色av中文字| 亚洲欧美日韩免费观看| 91黑丝美女| 欧美日韩国产高清在线一二三区| 91男人综合| 天天爽天天爽| 欧美爱三级日韩久久| 97在线青| 9999久久久久| 国产超碰AV在线精品| 一及黄久一点| 亚洲欧美在线观看2021| 精品午夜福利| 亚洲限制级| 99久久网站| av影片在线观看不卡| 人妻人人澡人人爽人人| 久热伊人| 51久久夜色精品国产麻豆| daxiangjiao你懂的| 五月丁香啪| 国产内射爽爽大片| 制服丝袜第二页| 97九色人妻| 免费观看国产不卡av| 视频二区美腿制服人妻欧美| 国产AV天美| 亚洲 欧美 手机在线观看| 老妇女91| 四虎免费视频| 欧美少妇一区二区三区| 五月丁香六月婷| 亚洲国产成人7777| 亚洲国产精品久久久久婷婷老年| 熟女丝袜视频| 亚欧韩av| 免费观看国产小粉嫩喷水精品午| 丝袜 中出 制服 人妻 美腿 中文字幕| 刺激性视频黄页| 2020国产精品| 天天激情综合站| 综合欧美亚洲| 成人九九| 亚洲日韩欧美一区二区| 中文字幕乱碼在线| 亚洲天堂男人在线| 十八禁视频网站| 日韩字幕一区| 精品国模无码| 欧美成人性活片| 久久久精品一区二区| 欧美一二三区四五区| 蜜臀久久99精品久久久久久久久| 思思热免费视频观看| www..com操老师| 亚洲 小说 欧美 激情 另类| 九月伊人中文字幕| 丝袜 中出 制服 人妻 美腿 中文字幕| 亚洲无限观看| 亚洲 另类 丝袜 自拍 动漫| 5252色欧美在线| 人妻碰碰碰碰碰碰| 欧美成人9797| 天天影视综合网欧美精品| 91色婷婷综合久久中文字幕二区| 在线看的av| 在线毛片片免费观看| 黄页av| 阿姨一区二区免费视频-高清正片西瓜视频下载app-T450AV | 国产精品亚洲免费| 中文字幕精品区先锋资源| 国语精品内射在线观看| 国产网红精品| 亚洲一欧洲中文字幕在线| 欧美一级美片在线观看免费| 狠狠色伊人亚洲综合网站色| 韩国三级一线观看久| 日本爽爽爽爽爽爽免费视频| 欧美 亚洲 在线| 亚洲国产成人综合碰碰三级经典| 综合网欧美| 偷拍亚洲情色| 夜夜夜爽www精品视频| 美女t无毒不卡不卡| 日日嗨AV一区二区夜夜| 国模91| 国产精品夜夜夜| 91色欧美| 久久久久99精品成人片蜜臀| 97超碰精品图片| 9999久久久| 天天噜| 丰满美女一级毛片在线播放| 色综合天天| 亚洲精品第一| 久都青青视频| 亚洲高清少妇| 9久热这里只有精品| 电家庭影院午夜69久久夜色精品国产69乱 | 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 人妻夜夜爽天天爽麻豆三区网站| AV天天在线观看| 久草精品国产蜜臀| 久久人妇| 无码二级三级| 亚洲AV成人无码一二三久久| 亚洲黄色网址视频| 久操大香蕉手机视频在线看| 国产精品国产拍高清AV| 亚洲色图91欧美日韩| 久草资源在线视频官方总站日韩丝袜美腿| 嗯嗯嗯啊啊啊干死我吧| 日本久久久精品电影| 亚洲综合九九| 中文字幕亚洲热播人妻| 亚洲情色第一页| 18禁久极品美女久久哦哟呀!| 精品免费成人久久| 俄罗斯一区二区视频在线观看| 国产精品毛片?v一区二区三区| 国内毛片无码一级毛片| 久久大香蕉手机高清视频| 日韩中文9| 蜜臀一区二区三区在线 | 麻豆一区在线| 亚洲精品人体| 日韩AC| 精品一区二区三区最新| 青青草中出视频 | 五月天激情婷婷| 69精品人人人人| 日日骚一区二区三区| 人人看黄色视频| 五月香婷婷| 成熟熟女国产精品一区二区| TS人妖另类精品视频系列 | 99性爱视频| 亚洲性猛| 熟妇的味道HD中文字幕| 116美女午夜| 一本色道人妻久久| 强奸乱伦av电影| 精品九九九九九九九| 91熟女在线| 911粉嫩人妻| 男人的天堂日本东京热| 免费a v| 99热综合| 91欧美色| 天天爱天天操| 四虎精品一区| 国产无码高清操逼视频| 一区二区三区男女操逼黄色小电影| 欧美亚洲激情一二三| 日本黄色精品专区网站| 偷拍亚洲高清图片| 欧美极品美女aaaaaa级黄片| 精品久久一区二区三区四区五区| 中文字幕一区二区三四五区日日骚| 国产精品久久久久久久久久久久久久吹 | 欧美国产视频| 亚洲**2021在线观看| 久九干| 欧美激情精品| 超碰99热| 九久精品| 亚洲aV性爱| 性老妇一区二区三区| 黄片www视频免费| 免费操逼视频下载| 综合亚州欧美| 99这里只有精品| 黑人性欧美| 国产一区二区三区精品观看啪| 加勒比久久av| 狠狠综合网| 国内外内射高清视频| 欧州色图区| 国产乱子伦一区二区三区在线观看| 97人人干人人操| 热G综合热G中文| 国产欧美一级在线观看| 熟女色综合久久| 国产精品69久久久久久久| 人人看人人摸人人色| 久区视频| av在线人气| 强奸乱伦亚洲第一页| www.成人无码| 后入 亚洲 美女 射| 人人操我人人干| 1204人成网站色www| av天天在线观看| 亚洲人妻中文在线视频| 欧美日韩亚洲国产中文永久天天看| 两性色网| 人人妻人人玩人人澡人人爽| 超碰99热中文字幕| 五月丁香六月婷| 欧美狠狠干| 人妻酒店出差被中出免费在线播放| 日本成人电影资源网| 天天做天天爱| 国产日韩人人| 插欧洲美女欧美精品| 欧洲久久一二线| 97视频在线视频| 欧美亚洲se91| 91狠狠综合久久| 女人天堂av在线播放| 日日A∨| 这里只有精品久久| 日韩在线地址一| 欧美日日人人天天| 999狠狠综合| 亚洲国产一级精品毛一级精品看免费视频| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 白嫩白嫩的午夜九久久久久久久久久久久成人剧场 | 国产欧美精选自拍一区| 亚欧美色| 无码人妻精品一区二区三区九九| 大香蕉碰碰| 国语国产操逼伊人AV网| 国内偷拍精品一区二区| 欧美黑人168页欧美黑人167| 婷婷五月天久久精品视频一区二区三区 | 骚货操死你| 青青草在线视频人人想人人上| av天堂精品久久| 久久久96| 久久久久久久久9| 97bbn| 亚洲不卡AV在线| 欧美日韩性爱视屏免费看了| 99这里只有精品国产| 欧美97在线欧| 中国特猛少妇色xxx| 自拍第一页| 99re在线精品78| 鸥美精品一区二区久久婷婷| 日韩人妻少妇中文字幕| 天天爽天天爽| 久久一二三四五六七八九区区区| 深夜国产一区二区三区在线看| 亚洲中文字幕在现观看| 水多多映视AV| 欧美大的香蕉有线电视视频| 欧日韩一二三f区| h色99999| 十八禁电影伊人网| 亚洲妇色| 亚洲欧美setu| 国产av热热色| 91精品久久久久久久久久| 91在线丝袜视频| 丁香婷婷激情五月天无毒不卡 | 狠狠超| 欧美懂色综合网| 91第一页| 国产白丝精品在线观看| 97色综合中文网| 九九九草| 日天天九九天堂666| 国产精品白丝www| 中国熟妇| 草B在线| 澳门色噜噜色噜噜色噜噜色噜噜色噜噜| 蜜桃臀一区二区三区久久| 另类老少妇| 久草看看看| 天天综合网~91| 粉嫩av平台| 大香蕉www.超碰| 国产精品蜜乳AV| 91free福利| 2020中文字幕| 国产精品欧美激在线| 91网站视频在线观看| 狠狠夜色午夜久久综合在线| 久久av色| 成人一区二区三区四区| 蜜臀久久99精品久久久久电影| 嗯嗯不要视频| 先锋激情∨在线视频播放| 在线免费观看日韩一区| 免费中文在线| 亚洲天堂性爱| 日韩欧美中文字| 欧美中字不卡| 日韩精品午夜操呦呦不卡影院| 蜜臀在线视频| 91成人久久| 大香蕉九九| 97硬碰| 香蕉国产97| 97av在线观看| h4610国产人妻| 亚洲综合小说另类图欧美视频激情小说色五月天 | 成人美女av| 干婷婷综合网| 日本理论在线| 精品成人久久久人人亚洲| 成人青青草原伊人| 午夜国产乱伦视频| 大香樵伊人网| 日本黄页视频在线观看| 69一区二区| a男人的天堂久久一级A毛片| 久久精品国产免费观看99| 肉丝网站91| 久插综合| 九九九九免费视频| 亚洲在线网站| 超碰免费在线| 伊人久久蜜月| 色牛aV| 99性视频| 日本孕妇孕交| 久久黄片国产一区二区| 另类图片五月| 欧洲亚洲天堂精品| 一级婬片120分钟试看| 亚洲男人天堂Av| 超碰97导航| 日韩成人精品| 狠狠 91| 天天综合,91入口| 搡老女人老妇女AAA一VU麻豆| 99.色网| 国产精品久久久| 人妻少妇久久久| 久久精品操| 久草福利在线资源站| 国产美女口爆吞精| 99这里只有精品国产| 亚洲精品丝袜| 青娱乐淫乱1314| 日韩有码一区三区| 久久久久久九九九| 91操人| 久久久熟女一区| 97人人操人人摸人人爱| 91男人天堂网| 多乙久久久久久| 久久精品99| 成人免费不卡在线视频| 国产中午字一暮区| 五月婷婷爱六月丁香色| 欧美日韩制服| 丁香六月天| 精品人妻av区天天看片| 伊人97超碰| 2024年最新色情网站在线观看| 婷婷香蕉欧美在线一区二区三区| 丰满人妻一区二区三区色-百度| 久久久久13| 亚洲欧美91| 久操综合在线| 精品九区| 欧色综合| 成人AV超碰免费在线| 天天操女人| 婷婷在线视频在线观看| 久久久国产精品亚洲精品| 精品中文字幕一区二区l - 百度| 婷婷九月丁香| 综合色99| 丰满人妻一区二区三区蜜桃视频| 免费视频在线观看啊啊啊啊啊| 婷婷伊人五月| 宗合情欲网| 日本三级A片网站com| 日本最新1区2区3区| 97av在线视频| 中国操逼无码| 另类图片五月天| 成人a大片在线观看| 国产精品白丝www| 中文字幕精品人妻丝袜| 岛国视频免费在线观看| 高清孕妇孕交 交| 综合久欧洲| 亚洲中文一区二区三区| 国产999精品久久久| 天天弄欧美| 郑州宾馆老熟女露脸啪啪| 精品人妻一区二区三区不卡断 | 天天舔天天| 久久国产乱子伦精品免费女,网站| 99re9这里只有精品| 偷拍自拍在线视频观看| 中文字幕一区二区三区50路| 精品无码久久久久| 插入综合网| 秋霞蝌科网日本一区| 91中文字幕| 日韩av情韩国爱禁区av一区二区| 久久女婷| 午夜福利激情在线视频| 综合久久99| 亚洲性综合| 日韩av熟女一区二区三区成人| 国产女人91精品嗷嗷嗷嗷| 岛国福利在线精品播放| 久久久久久久97| 怡红院亚洲怡春院av| 99九九久久| 玖玖视频在线资源一区二区三区| 超碰成人最新最好看| 无码直播久久久| 超碰97人人乐| 校园春色中文字幕AV| 精品一区二区三区最新| 精品久久人妻成人网| 欧美日韩国产三级黄色| 久久久999| 欧美偷拍| 亚洲美女精品九九视频| 亚洲清纯综合| 欧美淫乱视频| 欧美日韩人妻少妇 一区二区三区| 大香蕉欧美伊| 人妻在线中出视频| 亚洲人妻一区二区三区| 入口操逼网站| 无码在线亚洲| 久久久久久久亚洲Av无码| 日韩99精品视频综合区| 亚洲男人综合| 亚欧毛片基地国产毛片基地| 97亚洲欧美| 久久一区二区三区四区五区| 精品一区二区三区丰满熟女-亚洲欧美一区| 综合网97| 国产性爱欧美性爱在线| 美日韩一二三区| 北京美女一区二区| 国产夫妻一区二区| 超碰人人妻| 六月婷婷激情| 久久草大香蕉| 青青草日韩无码| 97久久久久久久精| 亚洲情色五月天 | 国产精品免费久久久久久久久久| 少妇一区二区三区| 你懂的在线观看区国产| 亚洲日韩国产精品| 国产在线视频二区| 极品综合| 温婉少妇玩3p| 五月天婷婷久久| 久久极品一区二区| 亚射在线| 九99久久| 自拍啪啪视频| 国产精品久久| 四虎国产精品永久地址入口| 尤物视频一区| 乳欲人妻办公室奶水| 91粉嫩萝控精品福利网站_精品影音先锋国| 人妻人人做人人澡人人爽欧美一区| 亚洲一区二区三区AV无码 | 一级AV性爱| 黄在线| 志村玲子视频一区二区| 97色伦欧美| 国产亚洲日本| 最新制服中文第一页| 欧美黄色手机在线观看| 岛国视频免费在线观看| 男人的天堂亚洲| 极品粉嫩少妇视频| 99热这里都是精品| 国产福利合集| 国产黄片精品在线| 精品一区二区综合熟妇| 久久五月天婷婷| 97se综合网| 亚洲综合伊人| 精品十八在线观看| 婷婷久久五月综合激情| 操逼片中文| 日本三级人妻a人妻一在线| 精彩久久中文| 国产成人亚洲精品无码最新在线| 亚洲第一无码播放立川理惠| 性色中出| 九九九九热只有精品| 久久久久久久久久久免费精品| 国产精品黄色三级av| oumeisetu综合| 97视频7| 国产97亚洲| 亚洲啪啪视频一区二区| 久久久啊啊| 欧美第五页| 好爽视频在线观看视频| 日韩性爱1级片视频| 丁香五月天激情| 丝袜美腿校园春色| 绯色一区二区三区不卡少妇| 五月丁香网站| 91天天综合在线| 在线观看中文av字幕| 久久香蕉超碰97国产精品| 精品视频一区二区| 五月丁香综合啪啪| 欧美淫乱视频| 在线观看黄色电话| 蜜臀久久久国产| 黑人娇小av在线播放| 玖玖玖玖精品国产剧情| 97AV在线免费观看| 久操凹凸视频| 欧美999999| av强奸乱轮| 欧美人妻中出| 一线黄色免费性爱片| 污污污8888| 高清孕妇孕交 交| 激情六月婷婷| 高清孕妇孕交 交| 欧美激情综合色综合啪啪五月| 热热色色综合| 激情视屏国产乱伦强奸| 蜜桃网熟妇| 中文字幕精品资源在线| 国产精品一区二区麻豆| 人人摸人人添人人操| 国产精品乱码久久久久久久| 肉嘟嘟www视频在线观看高清| 偷拍综合亚洲| 看一级黄色视频| 久久后入制服| 综合熟女| 黄片www视频免费| 亚洲色图超碰在线| 国产肏逼网站| 色男人色天堂东京热| 国产区性爱在线视频秋霞豆| 高潮9999外国| 蜜臀久久99精品久久综合| 丰满人妻aA一区二区三区| 久草婷婷| A片 AV一级在线播放观看免费| 亚州黄站| 综合色色网| 久久精品国产亚洲粉嫩| 91丝袜在线观看视频在线观看| 91人精品妻入口| 色偷偷超碰亚洲| 久久久激情| 好爽视频在线观看视频| 国产超碰在线一区| 午夜120视频在线观看| 亚洲双插| 国产精品午夜成人福利| 日韩免费一级性爱视频| 伦理日韩国产久久| 人妻激情偷乱视频一区二区三区 | 超碰av在线| 国产亚洲色停停久久99精品91| 红桃视频高潮| 欧美v亚洲v日韩v最新在线二区 | 日韩精品99999| 91久久免费视频互動交流| 嫩草黄页| 78综合网| 欧美婷婷五月天| 26uuu国产亚洲综合| 男生通女生屁股| 啊啊啊啊啊啊好湿好爽视频| 亚洲成av人片色午夜乱码| 欧美性生活男人的天堂| 蜜屁av| 夜精品久无码| 人妻熟女字幕一区二区| 永久免费发布性爱网| 日韩免费中文字幕视频| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 亚洲av强奸乱伦| 中文字幕AV乱伦| 色综合1991| 成 人 影视 一区 二区 三区 四区| 超97在线精品视频| 高清有码一区二区| 高清不卡 中文 人妻| 国产一区二区三区不卡手机在线| 久久五月天婷婷丁香中文字幕| 传媒在线观看一区二区三区| 色制服丝袜夫妻av一区| 欧亚乱色熟一区二区三四区| 五月婷在线| 久久久一区二区三区麻豆| 校园春色综合| 日韩黄色电影网站| 青青伊人这里只有精品| 伊人网青青| 久久78| 97人人爱人人乐| 99久在线精品99re8| 目产99999久久999| 日日AV加勒比| 99re3这里只有精品| 一区二区三区精品黑丝白丝酒店对鸡 | 快灬快灬 一下爽蜜桃在线观看| 密桃99999| 午夜啪啪片| 岛国黄片网站| 欧美色图 色综合图| 啊啊啊轻点在线观看| 老司机午夜福利视频一区二区| 九九毛片这里只有精品| 一区二区三区免费岛国片| 先锋激情∨在线视频播放| 不卡中文字幕aⅴ在线| 欧美gv在线观看| 免费啪啪av| 啪啪资源网| 九九九国产精品| 北条麻妃性愛视频| 九九九影院| 中国熟女网站| 一区二区三区在线日韩影院观看| 青青操在线亚洲视频观看欧美在线| 亚洲18禁| 蜜桃不卡一区二区| 久久人妻无码毛片A片麻豆| 97少妇人妻中文字幕久久| 青青久久久| 九九九九精品精| 91成人18| 亚洲另类欧美精品| 免费啪啪av| 午夜精品久久一区二区| 麻豆国产97在线| 黄页网站免费高清在线观看| 色综合网1| 日韩啪啪啪啪啪| 色哟哟-国产专区| 色综合99999| 欧美少妇高潮| 国产精品一区二区a| 免费日韩黄片| 日韩在线观看中文字幕视频| 婷婷六月色开| 婷婷五月天激情网| 亚洲欧洲精品成人| 成人一区二区三区四区| 亚洲丰满很很操| 日韩无码第3页| 一区不卡在线观看av| 亚洲色图欧美色图日韩色图| 综合婷婷| 亚洲色图国产另类| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 麻豆成人AV| 天天看天天在线精品| AV九九| 视频在线观看一二三区| 久久久久极品| 涩综合导航| 九九干| 国产高清1234区| 操逼无毒无码免费视频| 亚洲AV无码乱码| www.人人cao| 丁香五月av| 精品美女人人干| 综合影院永久入口国产| 依人大香蕉| 男人天堂综合| 国产sv美女内射| 久久久久久人妻一区精品色欧美| 六月色婷婷| 日本久久久精品电影| 中文字幕人成乱码熟女香港| 极品色社| 精品人妻一区二区三区四区| 欧美大香蕉专区网| 丝袜综合色图| av网站在线看| 人妻天堂综合网| 色综合 加勒比| 精品人妻一区二区视频| 麻豆九九九| 超碰97伊人| 影音先锋国产精品| 91青青在线视频| 一级特黄aaa大片在线观看成人一级片在线观看| 麻豆久久久一区二区| 大香蕉草草| 国产动漫操逼视频| 人妖欧美一区二区| 欧美日韩激情无码专区| 岛国AV一区二区电影| 久久男人的天堂| 日韩三四五区| a'v在线资源| 欧美中文字幕男人天堂久久精品| 美女91AV| 久久国产精品一级二级三级| 97碰碰色| 玖玖在线视频| 久草资源在线| 亚洲色图久久精品蜜| 啊啊啊啊啊啊好多水| 亚洲,欧美,春色,另类| 国产区在线| 人妻熟女午夜精品在线| 丰满人妻一区二区三区免费 | 亚洲精品97| 天堂av2019| 性久久久| 330dv亚洲成年视频网| 亚洲啪啪视频一区二区| 蜜臀色乳| 欧美黄片视频在线观看免费 | 极品内射| 国产精品电| 日韩在线一区高清在线| 亚洲在线网站| 欧亚日韩三区| 调教熟妇 久久久久久| 东京热亚洲一区二区| 亚洲欧美91| 九色 人妻 大香蕉| 探花精品 一区二区| 九月AV| 亚洲啪啪视频一区二区| 亚洲色图欧美色图制服丝袜| 噜噜噜在线视频| 蜜桃网熟妇| 久久黄黄| 变态另类专区| 亚洲成人ab| 亚洲精品中文字幕一区在线视频 | 久9久9久9久9久9久9| 久久综合九九| 人人做天天爱| 久久久久久久久女黄| 日韩中文字幕熟妇人妻| 成人无码在线视频网站| 干美女人妻| 亚洲人妻AV| 无码区蜜乳| 欧成人在线| 日韩人妻少妇中文字幕| 2020中文在线一区二区三区| 97chaopengongkai| 日本九九久久99| 91精品丝袜在线观看| 亚洲色图欧美一区二区不卡| 青青草吊丝| 人妻av在线| 影视综合无码少妇| 欧美97免费| 啪啪91| 亚洲精品国产精品乱码不99| 91精品人| 亚洲高清91| 欧美熟女逼久久久久久| 很黄很污的免费网站| 大香网站| A片A5445444| 黑人粗大V S日韩女优视频| 亚洲综合码| www.久久久久| 亚洲色婷婷久久91| 精吧天堂| 清清一区二区三区四区不卡视频| 久操不卡视频| 免费强奸av| 家庭乱伦国产| 国产精品嫩草影院午夜两性| 欧美日韩在线小说| 9精品久久久久| 中出人妻中文字幕91在线| 亚洲色图91欧美日韩| 入口操逼网站| 亚洲成a人片在线观看中文!!!| 十八禁视频一区二区| 变态综合色| 日本三级精品| 蜜臀av中文字幕| 亚洲视频二区 | 欧美少妇大量自拍视频在线观看| 婷婷色中文字幕| 99久久网站| 色久桃花影院在线观看| 无码丰满熟妇一区二区浪潮AV| 亚洲电影中字一区二区| 精品黄色电影| 国产精品午夜AV完会免费 | 欧美九9 9 9| 中文字幕在线观看丝袜| 91 刺激在线| 色婷婷色99国产综合精品| 免费综合亚洲中文| 色五月首页| 5月婷婷6月六月丁香| 日韩人妻无码专区| 婷婷色网| 丰满翘臀美女影院视频| 久久本道| 欧美日韩婷婷中文| 97超碰总站| 欧美亚洲美少妇一区二区| 五月天久久婷婷亚洲| 亚洲欧洲无码97久久精品| 嗯嗯啊啊好大好爽| 蜜臀在线看片| 久久精品国产亚洲av水密被窝| 天天伊人| 十八禁啪啪视频| 欧美日韩另类在线播放| a天堂视频| 成人免费福利在线观看| 婷婷午夜| 亚洲精品三| 精品人人| 欧美内射少妇| 蜜臀久久99'精品久久久| 亚洲一区二区av| 国产成人拍国产亚洲精品| 亚洲AV噜噜狠狠网址蜜桃动漫| 99ri精品| 欧美毛片在线网| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 亚洲欧美另类少妇精品| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | av毛片aaaaa免费看| 999亚洲国产视频| 福利在线观看一区二区| 欧美性猛交美女自慰91| 在线观看视频91| 色逼综合| 久久亚州精品成人Av无| 久操操| 激情露脸爱| 一卡二卡在线播放| 天天射天天| 99精品久久| 黄色不卡视频| 嗯嗯啊好爽| 老司机射| 少妇人妻精品| www国产精品| 色久桃花影院在线观看| 亚洲熟妇极品| 色偷偷综合91久久噜噜| 九九视频黄色片| 精品国产久热在线观看| 黄资源| 激情综合网激情综合| 我要看免费韩日黄片| 久久超碰98| 欧美翘臀视频网站一区二区三区| 国产精品成人久久一区二区三区| 欧美在线播放aaaa| 久噜噜| 26uuu最新| 日本色婷婷| 欧美同性恋 的搜索结果 - 91n| 久久精品国产亚洲AV高清演员表| 日夜啪电影| 久久精品91| 亚乱色| 97久久精品亚洲中六字幕| 玖玖爱视频网站| 亚洲色图亚洲无码强奸乱伦| 精品久久久久黄少妇| 国内毛片四区| 强奸乱伦大香蕉网| 久久精品天美| 日本黄大片在线观看视频| 国产熟女少妇一区| 亚洲中文字幕熟女少妇一区二区| 欧美经典一区二区三区| 97色色国产视频| 蜜乳视频网站| 中文字幕天天操| 亚洲天天操| 97干在线看| 天天射夜夜骑| 在线观看一卡二卡| 中文字幕在线免费观看 | 久噜噜| 另类TS人妖一区二区三区| 欧美三级免费伊人| 91综合色| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 99性爱| 91熟女网| 99色婷婷| 亚州欧美色图| 97日本超碰综合| 美欧色综合| 伊人国产av| 国产一区二区三区高清视频| 久久久久七视频| 国内毛片婷婷六月色| 婷婷探花久久精品一区| 另类天堂| 97在线免费看视频| 九九九网页| 亚洲精品乱码线路中文字幕 | 懂色Av| 啊啊啊啊啊操我视频| 无码动漫av中文字幕| 天天操人人操骚逼网站| 欧美日韩精品一区二区三区高清| 欧美色交| 91国产精品熟女| 日韩欧美aⅴ综合网站发布| 亚洲中文字幕久久无码精品| 亚洲情色电影网| 一类av片在线看| 九九热国产| 日韩国产十八禁| 亚洲AV噜噜狠狠网址蜜桃动漫| 我爱操| 成人女人国产| 国产做?爰片久久毛片?片美国| 日韩大香蕉| 精品一二三区女同| 337p大胆噜噜噜噜噜91Av| 日韩免费中文字幕视频| 久久久成人免费av电影| 91操人| 大香蕉专区| 欧美性高潮| 欧美天堂日韩三级国产传媒| 老司机射| 男女猛烈无遮掩视频免费软件| 亚洲精品毛片在线观看| 人妻精品4K4K4K4K4| 国产精品久久久久无码A√| 欧美欧美少妇| 欧美午夜视频| 懂色综合久久久| 国产女s强制榨精视频| 国产风韵犹存熟妇三区| 一本一道人妻久久一区二区三区 | 精品无码产区一区二| 北条麻妃99精品青青久久| 麻豆国产96在线| 亚洲乱色熟女一区| 欧美性第1页| 无码一区二区三区四区五区六区七区八区九区十区视频 | 国内91熟女人妻丝袜天天精品视频在线| 亚洲国产成人福利在线观看| 无码人妻一区二区三区免费九色| 国产成人精品一区| 日韩伦理视频| 欧美1727免费观看视频| 在线性黄高清免费视频| 黄色免费网| 久久久啊啊啊| 久草在| 97AV爱| 日本天天色| 看大黄色大片原件| 韩日色费| 视频一区二区免费在线| 日日爱99| 欧美综合网在线| 欧美91网| 超硑97精品| 情色AV电影| 色av中文字| 九月婷婷久久| 婷婷色色网| 色色五月婷| 五月婷婷综合在线| 国产亚洲在线观看| 一级啊性爱在线视频| 天堂中文日本在线观看| 色翁荡息又大又硬又粗又爽| 在线人成亚洲视频免费观看| A级片日韩欧美国产欧美视频精选观看 | 人、人、摸,人、人、草| 亚洲精品a人片在线观看视| 一区二区三区精品久久| 天天看,天天做| 99久久婷婷国产综合精品草原| 九九色逼| 91黑人无码激情在线| 亚洲 国产 精品一区| 狠狠激情综合狠狠操中文字幕| 中文字幕中文字幕一区二区| 啪啪视频亚洲第一| 小视频玖玖| 麻豆啪啪啪视频| 国产一级做a爰大片免费久久| 欧美日韩第一页| 青青草视频这里只有精品| 天天射,天天操,天天爽-国内精品一区二区三区-成人AV | 精品一区二区综合熟妇| 国内三级自拍小视频在线观看| 另类天堂| 丁香五月性| 国产视频一区二区在线观看| 久操视频免费在线观看| 欧美成不卡网| 91男人天堂网| 蜜桃臀一区二区aV| 亚洲日韩美女丝袜美腿人妻视频|