日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

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

VS Code + Jupyter Notebook:打造個(gè)人本地知識庫

VS Code + Jupyter Notebook:打造個(gè)人本地知識庫 簡介面向嵌入式開發(fā)者和物聯(lián)網(wǎng)設(shè)備調(diào)試人員該壓縮包提供AW9523 GPIO擴(kuò)展芯片的完整I2C驅(qū)動源碼用于通過兩線制I2C總線讀寫芯片內(nèi)部寄存器從而在微控制器上擴(kuò)展GPIO引腳數(shù)量。驅(qū)動采用C/C編寫包內(nèi)僅含1個(gè)主要C源文件整體約3KB結(jié)構(gòu)緊湊適合直接閱讀和移植到不同平臺。已有244人學(xué)習(xí)下載適合有一定嵌入式基礎(chǔ)、正在調(diào)試I2C外設(shè)的工程師參考。代碼覆蓋I2C控制器初始化、寄存器映射讀寫、GPIO方向與電平控制、中斷配置及錯(cuò)誤處理等關(guān)鍵環(huán)節(jié)并體現(xiàn)與Linux設(shè)備模型交互的思路開發(fā)者結(jié)合AW9523數(shù)據(jù)手冊可快速定位驅(qū)動中的初始化流程、寄存器操作和中斷響應(yīng)邏輯也能從中學(xué)習(xí)I2C從設(shè)備驅(qū)動的通用編寫框架為后續(xù)在RTOS或裸機(jī)環(huán)境中實(shí)現(xiàn)類似外設(shè)驅(qū)動提供參考。1. 提到 gpio-aw9523 這個(gè)包先搞清楚它到底解決什么問題提到 gpio-aw9523 這個(gè)包做嵌入式的第一反應(yīng)通常是又一顆 I2C 接口的 GPIO 擴(kuò)展芯片而且驅(qū)動得自己寫。AW9523 的核心價(jià)值不在“IO 多”而在于它用一條兩線 I2C 總線帶起 16 路 IO其中 P0-P7 還能進(jìn) LED 模式做電流可調(diào)的呼吸燈效果省掉專門的 PWM 定時(shí)器。對 MCU 引腳不夠、又要接按鍵加指示燈的板子這個(gè)方向很容易落地。這篇筆記按 Linux 用戶態(tài)和 MCU 裸機(jī)兩條路線把 AW9523 的寄存器模型、C/C 驅(qū)動結(jié)構(gòu)、參數(shù)配置和容易翻車的點(diǎn)一次講透。剛拿到芯片不知道怎么下手的新手能跟著走熟手可以直接看邊界和坑。2. AW9523 寄存器模型與 I2C 時(shí)序先讀明白地址和位域再動手2.1 從機(jī)地址不是固定的A0 引腳決定 0x58 還是 0x59AW9523 的 I2C 地址不是寫死的芯片的 A0 引腳電平會改變 7 位從機(jī)地址。常見的默認(rèn)配置是 A0 接地地址落在 0x58如果把 A0 拉高地址會變成 0x59。這個(gè)細(xì)節(jié)最容易在第一步卡住用 i2cdetect 掃描總線發(fā)現(xiàn) 0x58 和 0x59 都不出現(xiàn)第一反應(yīng)是芯片壞了實(shí)際上只是原理圖上 A0 接到了 VCC而你代碼里寫死了 0x58。我一般會在拿到板子后先查原理圖確認(rèn) A0 接法再決定驅(qū)動里用哪個(gè)地址。如果原理圖還沒定建議默認(rèn)按 0x58 寫同時(shí)把地址定義做成宏這樣后面改起來只動一行。還有一點(diǎn)要注意AW9523 的地址是 7 位地址在 Linux i2c-dev 里 ioctl 設(shè)置從機(jī)地址時(shí)直接傳 0x58 這種 7 位值不要左移一位很多剛從單片機(jī)轉(zhuǎn)過來的同事在這里會把地址寫成 0xB0結(jié)果怎么都通信不上。地址確認(rèn)后下一步就是過一遍寄存器映射。以下寄存器表是根據(jù)這顆芯片的公開手冊整理的常見布局具體到某個(gè)批次還是以你手里的 datasheet 為準(zhǔn)。2.2 核心寄存器映射輸入、輸出、方向、LED 模式與中斷AW9523 的寄存器是 8 位寬偏移地址從 0x00 開始。寫驅(qū)動前先把下面這張表背下來比反復(fù)查手冊快得多。偏移名稱位寬作用0x00Input16讀引腳電平bit0 對應(yīng) P00x01Output16寫引腳電平bit0 對應(yīng) P00x02Direction161 表示輸入0 表示輸出0x03Initial State16定義上電時(shí)輸出腳的默認(rèn)電平0x04LED Mode Select8只對 P0-P7 有效置 1 進(jìn)入 LED 模式0x11/0x12LED Current8每 4 位一組控制 LED 電流檔位0x13Global Control8輸出模式、翻轉(zhuǎn)速率等全局配置0x14/0x15Interrupt Enable/Status8引腳變化中斷使能與狀態(tài)這里最容易誤解的是 0x00 到 0x03 都是 16 位寄存器但 AW9523 的 I2C 寄存器地址是 8 位偏移一次讀寫可以按兩個(gè)字節(jié)處理也可以按兩個(gè)地址分別讀寫高低字節(jié)。我習(xí)慣把它拆成兩個(gè) 8 位訪問邏輯更簡單踩的坑更少。0x04 的 LED 模式選擇只對低 8 位有效也就是 P0-P7。置 1 之后對應(yīng)引腳從普通 GPIO 變成 LED 驅(qū)動通道輸出電流由 0x11 和 0x12 里的 4 位檔位決定不再受方向寄存器控制。這一點(diǎn)在后面的踩坑章節(jié)會專門講很多翻車現(xiàn)場就是在這里發(fā)生的。中斷部分同樣容易誤用。0x14 是中斷使能0x15 是中斷狀態(tài)狀態(tài)寄存器讀完后必須寫 1 清除否則 INT 引腳會一直拉低主機(jī)側(cè)永遠(yuǎn)等不到下一次中斷。2.3 時(shí)序與總線速率100kHz 和 400kHz 怎么選SLEW 控制在管什么I2C 總線速率對 AW9523 這種芯片來說不是越快越好。芯片本身支持標(biāo)準(zhǔn)模式 100kHz 和快速模式 400kHz但實(shí)際板級走線長度、上拉電阻值、總線上掛了多少設(shè)備都會影響高速下的通信可靠性。我之前在一款主板上總線上同時(shí)掛了 AW9523 和一顆 EEPROM走線超過 15 厘米跑 400kHz 時(shí) EEPROM 讀寫正常AW9523 卻偶發(fā)返回錯(cuò)誤數(shù)據(jù)。原因在于 AW9523 的輸入引腳有一個(gè) slew rate 控制位在 0x13 全局控制寄存器里。slew rate 調(diào)低一點(diǎn)能抑制信號邊沿的過沖對長走線和弱上拉有幫助。默認(rèn)值不一定適合你的板子所以驅(qū)動初始化時(shí)最好顯式寫入這個(gè)寄存器而不是依賴上電默認(rèn)值。如果總線距離很短、上拉電阻 4.7k 到 10k、設(shè)備少400kHz 沒問題但凡有一點(diǎn)不確定先用 100kHz 把功能調(diào)通再嘗試提速。讀時(shí)序也是新手容易寫錯(cuò)的地方。AW9523 讀寄存器的標(biāo)準(zhǔn)流程是先發(fā)一個(gè)字節(jié)的寄存器地址然后重新產(chǎn)生起始條件再讀數(shù)據(jù)。用 i2cdetect 時(shí)看到設(shè)備地址出現(xiàn)只說明芯片在線不代表讀寫邏輯正確。真正驗(yàn)證時(shí)序最好用邏輯分析儀抓一次寫和一次讀對比手冊里的時(shí)序圖這一步省掉的話后面排錯(cuò)全靠猜。3. Linux 用戶態(tài)驅(qū)動用 C/C 寫一個(gè)可用的 aw9523ctl 工具3.1 用戶態(tài)還是內(nèi)核態(tài)i2c-dev 和設(shè)備樹各自的邊界在 Linux 下控制 AW9523有兩條路一條是在設(shè)備樹里聲明這顆芯片寫內(nèi)核態(tài) I2C 驅(qū)動通過 sysfs 或 gpio 子系統(tǒng)暴露給應(yīng)用層另一條是直接訪問 /dev/i2c-N 節(jié)點(diǎn)在用戶態(tài)用 C 程序讀寫寄存器。對大部分項(xiàng)目來說用戶態(tài)方案就夠了理由很實(shí)際AW9523 這類擴(kuò)展芯片的實(shí)時(shí)性要求不高寄存器操作頻率低用戶態(tài)讀寫引入的調(diào)度延遲完全在可接受范圍內(nèi)。而且用戶態(tài)代碼調(diào)試方便編譯快出錯(cuò)不會把整個(gè)內(nèi)核帶崩。內(nèi)核態(tài)驅(qū)動的好處是能接入 Linux 的 gpiochip 框架讓上層用標(biāo)準(zhǔn) gpiod 接口操作適合需要和其它 gpio 設(shè)備統(tǒng)一管理的場景。但如果只是點(diǎn)亮幾顆燈、讀幾個(gè)按鍵為它寫一個(gè) platform_driver 再配設(shè)備樹投入產(chǎn)出比不劃算。我通常的做法是原型階段一律用戶態(tài)把寄存器行為摸清楚后面如果確實(shí)要接入 gpio 子系統(tǒng)再把這層寄存器邏輯原封不動搬進(jìn)內(nèi)核驅(qū)動測試周期會短很多。用戶態(tài)方案有一個(gè)前提/dev/i2c-N 節(jié)點(diǎn)要有訪問權(quán)限。開發(fā)板上一般直接用 root 跑如果產(chǎn)品里是普通用戶運(yùn)行需要在 udev 規(guī)則里給 i2c 設(shè)備節(jié)點(diǎn)加權(quán)限組這個(gè)后面驗(yàn)證章節(jié)會提到。3.2 最小讀寫封裝兩個(gè) C 函數(shù)覆蓋全部寄存器訪問用戶態(tài)訪問 AW9523本質(zhì)就是打開 /dev/i2c-1用 ioctl 設(shè)置從機(jī)地址然后 write 和 read 寄存器。下面的代碼是一個(gè)最小可用的封裝頭文件部分包含了 Linux i2c-dev 的用戶態(tài)接口。#include stdio.h #include fcntl.h #include unistd.h #include sys/ioctl.h #include linux/i2c-dev.h #include stdint.h #define AW9523_ADDR 0x58 #define AW9523_REG_OUTPUT 0x01 #define AW9523_REG_DIR 0x02 static int aw_write_reg(int fd, uint8_t reg, uint8_t val) { uint8_t buf[2] { reg, val }; if (write(fd, buf, 2) ! 2) { perror(i2c write fail); return -1; } return 0; } static int aw_read_reg(int fd, uint8_t reg, uint8_t *val) { if (write(fd, reg, 1) ! 1) { perror(i2c write reg fail); return -1; } if (read(fd, val, 1) ! 1) { perror(i2c read fail); return -1; } return 0; }這段代碼的邏輯很直接寫寄存器時(shí)把寄存器地址和數(shù)據(jù)拼成一個(gè)兩字節(jié) buffer 一次發(fā)出讀寄存器時(shí)先單獨(dú)發(fā)地址再等芯片把數(shù)據(jù)送到總線上。注意讀操作里 write 和 read 之間不需要重新設(shè)置從機(jī)地址因?yàn)?ioctl 設(shè)置的地址在 fd 上一直有效。參數(shù)說明打開設(shè)備節(jié)點(diǎn)時(shí)用 O_RDWR不能只讀因?yàn)閷懠拇嫫魇请p向操作。ioctl 的第二個(gè)參數(shù) I2C_SLAVE_FORCE 會強(qiáng)制把 fd 綁定到指定從機(jī)地址即使這個(gè)地址已經(jīng)被內(nèi)核驅(qū)動占用用它調(diào)試比 I2C_SLAVE 更不容易失敗。但這個(gè)特性也意味著地址配錯(cuò)了不會立刻報(bào)錯(cuò)數(shù)據(jù)會發(fā)給一個(gè)不存在的設(shè)備所以地址宏一定要核對原理圖。3.3 初始化與命令行動作把寄存器配置變成可調(diào)參數(shù)有了讀寫封裝剩下的就是把寄存器配置翻譯成命令行動作。下面這段代碼實(shí)現(xiàn)了三個(gè)子命令init 完成基本初始化set 控制某一路輸出read 讀取所有引腳電平。這里刻意把寄存器地址和參數(shù)都做成宏方便換板子時(shí)調(diào)整。#define AW9523_REG_INIT_ST 0x03 #define AW9523_REG_LED_MODE 0x04 #define AW9523_REG_GCR 0x13 int main(int argc, char *argv[]) { int fd open(/dev/i2c-1, O_RDWR); if (fd 0) { perror(open /dev/i2c-1); return 1; } if (ioctl(fd, I2C_SLAVE_FORCE, AW9523_ADDR) 0) { perror(set slave addr); return 1; } if (argc 2) { printf(usage: aw9523ctl init|set|read\n); return 1; } if (strcmp(argv[1], init) 0) { // 先寫初始電平再配方向P0-P7 全部輸出高P8-P15 輸入 aw_write_reg(fd, AW9523_REG_INIT_ST, 0xFF); aw_write_reg(fd, AW9523_REG_DIR, 0xFF); aw_write_reg(fd, AW9523_REG_LED_MODE, 0x00); aw_write_reg(fd, AW9523_REG_GCR, 0x00); printf(aw9523 init done\n); } else if (strcmp(argv[1], set) 0 argc 4) { int pin atoi(argv[2]); int val atoi(argv[3]); uint8_t cur; aw_read_reg(fd, AW9523_REG_OUTPUT, cur); if (val) cur | (1 pin); else cur ~(1 pin); aw_write_reg(fd, AW9523_REG_OUTPUT, cur); printf(pin P%d - %d\n, pin, val); } else if (strcmp(argv[1], read) 0) { uint8_t lo, hi; aw_read_reg(fd, 0x00, lo); aw_read_reg(fd, 0x00, hi); // 實(shí)際應(yīng)讀 0x00 的低字節(jié)和高字節(jié)這里按兩段讀取 printf(input: 0x%02X%02X\n, hi, lo); } close(fd); return 0; }這段代碼里的 init 順序是有講究的先寫 0x03 初始電平再寫 0x02 方向寄存器。這樣配置的引腳從上電開始就保持確定的電平不會在初始化瞬間亂跳。方向寄存器寫成 0xFF表示高 8 位是輸入低 8 位是輸出P0-P7 輸出高P8-P15 懸空輸入。set 子命令里先讀回當(dāng)前輸出寄存器再改對應(yīng)位避免把其它引腳的狀態(tài)沖掉。這個(gè)“讀-改-寫”操作是 GPIO 驅(qū)動里最常見的模式很多人第一次寫會直接整字節(jié)覆蓋輸出寄存器導(dǎo)致其它引腳狀態(tài)被錯(cuò)誤復(fù)位。read 子命令目前沒有區(qū)分高低字節(jié)實(shí)際工程里應(yīng)該讀取偏移 0x00 和 0x01或者一次讀兩個(gè)字這點(diǎn)在拿到芯片手冊后按實(shí)際位寬修正即可。這個(gè)工具編譯只需要一條命令gcc -o aw9523ctl aw9523ctl.c。它不依賴任何第三方庫直接在開發(fā)板或 Linux 主機(jī)上編。如果板子上的 I2C 控制器編號不是 1把 open 里的 /dev/i2c-1 改成實(shí)際節(jié)點(diǎn)用 i2cdetect -l 可以列出所有總線。4. MCU 裸機(jī)驅(qū)動把 AW9523 封裝成可復(fù)用的 C 庫4.1 硬件抽象層設(shè)計(jì)為什么驅(qū)動不該直接綁死 HAL_I2C在 STM32 或其它 MCU 上寫 AW9523 驅(qū)動最容易犯的錯(cuò)是把驅(qū)動代碼直接調(diào) HAL_I2C_Mem_Write 或寄存器操作寫滿整個(gè)文件。這樣做在單板子上確實(shí)能跑一旦換平臺或者從 HAL 庫換成 LL 庫全部代碼要重寫。C/C 驅(qū)動該有的樣子是底層只留兩個(gè)函數(shù)指針上層邏輯完全不知道 I2C 控制器是哪家的。我一般會先定義一個(gè)設(shè)備結(jié)構(gòu)體把從機(jī)地址和兩個(gè) I2C 收發(fā)函數(shù)指針放進(jìn)去。初始化時(shí)傳入平臺的讀寫函數(shù)驅(qū)動內(nèi)部所有寄存器操作都通過這兩個(gè)指針完成。這樣 AW9523 驅(qū)動變成一個(gè)純 C 的靜態(tài)庫換平臺只是換底層兩個(gè)函數(shù)的實(shí)現(xiàn)芯片邏輯一行不用改。這個(gè)思路對 I2C 從機(jī)都適用不只是 AW9523。結(jié)構(gòu)體的定義并不復(fù)雜如下所示。核心是讓上層拿著 aw9523_t 指針就能完成所有操作而不需要關(guān)心底層是阻塞還是中斷傳輸。4.2 初始化和方向控制的核心代碼先配初值再配方向下面的代碼展示了設(shè)備結(jié)構(gòu)體和初始化函數(shù)的完整實(shí)現(xiàn)。重點(diǎn)是初始化順序和方向配置的細(xì)節(jié)。typedef struct { uint8_t addr; int (*i2c_write)(uint8_t addr, uint8_t reg, uint8_t val); int (*i2c_read)(uint8_t addr, uint8_t reg, uint8_t *val); } aw9523_t; static int aw9523_write_reg(aw9523_t *dev, uint8_t reg, uint8_t val) { return dev-i2c_write(dev-addr, reg, val); } static int aw9523_read_reg(aw9523_t *dev, uint8_t reg, uint8_t *val) { return dev-i2c_read(dev-addr, reg, val); } int aw9523_init(aw9523_t *dev) { if (aw9523_write_reg(dev, 0x03, 0xFF) 0) return -1; // 初始電平全高 if (aw9523_write_reg(dev, 0x02, 0x00) 0) return -1; // 全部輸出 if (aw9523_write_reg(dev, 0x04, 0x00) 0) return -1; // 關(guān)閉 LED 模式 if (aw9523_write_reg(dev, 0x13, 0x00) 0) return -1; // 推挽輸出默認(rèn)翻轉(zhuǎn)速率 return 0; } int aw9523_set_pin(aw9523_t *dev, uint8_t pin, uint8_t level) { uint8_t cur; if (pin 15) return -1; if (aw9523_read_reg(dev, 0x01, cur) 0) return -1; if (level) cur | (uint8_t)(1 pin); else cur (uint8_t)~(1 pin); return aw9523_write_reg(dev, 0x01, cur); }初始化時(shí)先寫 0x03 再寫 0x02這個(gè)順序和 Linux 用戶態(tài)版本一致。方向寄存器 0x02 的位定義是1 為輸入0 為輸出。示例里直接寫成 0x00讓 16 路全部輸出。實(shí)際項(xiàng)目里通常會結(jié)合硬件設(shè)計(jì)把部分引腳配置成輸入這時(shí)應(yīng)該按位準(zhǔn)備方向字節(jié)。set_pin 函數(shù)里的讀-改-寫是關(guān)鍵。AW9523 的輸出寄存器是 16 位分布在兩個(gè)地址上如果直接寫一個(gè)字節(jié)另一個(gè)字節(jié)的引腳狀態(tài)就丟了。示例代碼為了可讀性只處理了 8 位的情況真實(shí)使用時(shí)應(yīng)該按高低兩個(gè)字節(jié)分別處理或者封裝一個(gè) aw9523_set_pin_mask 函數(shù)一次性把需要變更的位和掩碼傳進(jìn)來。這部分是驅(qū)動里最容易埋雷的地方后面避坑章節(jié)還會展開。4.3 LED 呼吸模式不用 PWM 也能做出來的亮度漸變AW9523 真正值錢的功能是 LED 模式。進(jìn)入 LED 模式后P0-P7 不再受方向寄存器控制而是由 LED 電流寄存器決定輸出電流。這意味著不需要 PWM 定時(shí)器只需要周期性更新電流檔位就能做出呼吸燈效果。下面這段代碼演示了如何在 P0 上做 0 到 15 檔的漸變。#define AW9523_REG_LED_CUR 0x11 void aw9523_led_breath_step(aw9523_t *dev, uint8_t step) { uint8_t cur, target; if (step 15) step 15; // 讀回當(dāng)前電流配置只改低 4 位避免影響 P4-P7 aw9523_read_reg(dev, AW9523_REG_LED_CUR, cur); target (uint8_t)((cur 0xF0) | step); aw9523_write_reg(dev, AW9523_REG_LED_CUR, target); }調(diào)用方只需要在定時(shí)器中斷或主循環(huán)里每隔 30 到 50 毫秒改變 step 的值從 0 遞增到 15 再遞減回 0就能看到呼吸效果。電流檔位和實(shí)際毫安值的對應(yīng)關(guān)系要查芯片手冊里的曲線不同批次可能略有差異。0x11 寄存器每 4 位控制一組 LED 通道直接整體寫入會誤傷相鄰引腳所以必須先讀后寫。這個(gè)方案替代 PWM 的意義在于MCU 可以繼續(xù)睡在低功耗模式不需要一個(gè)硬件定時(shí)器專門跑 PWM。呼吸節(jié)奏完全由軟件控制改起來靈活。但副作用是 LED 模式的引腳不能再讀輸入狀態(tài)所以在設(shè)計(jì)按鍵和指示燈共用引腳時(shí)要提前想清楚。5. AW9523 驅(qū)動踩坑記錄五個(gè)最容易翻車的點(diǎn)5.1 引腳編號和寄存器位對應(yīng)錯(cuò)位輸出寫到別的腳上現(xiàn)象是控制 P5 輸出高結(jié)果 P9 亮了或者完全沒反應(yīng)。原因幾乎都是把引腳編號直接當(dāng)成了寄存器位號寫了 (1 pin)但 AW9523 的位映射是 bit0 對應(yīng) P0bit15 對應(yīng) P15中間的 P8-P15 在高字節(jié)P0-P7 在低字節(jié)。如果 pin 值大于 7位號已經(jīng)超出低字節(jié)范圍但驅(qū)動只寫了低字節(jié)高字節(jié)壓根沒動。解決方法是先分清楚高低字節(jié)pin 小于 8 操作 0x01 的低字節(jié)pin 大于等于 8 操作 0x01 的高字節(jié)實(shí)際寄存器地址為 0x01 和 0x011按手冊確認(rèn)?;蛘叨x一個(gè) pin_to_reg(pin) 宏把端口號映射到正確的寄存器和掩碼。我在驅(qū)動里統(tǒng)一用掩碼不用裸的位移從根上杜絕錯(cuò)位。5.2 進(jìn)了 LED 模式后P0-P7 讀不到輸入電平現(xiàn)象是把 0x04 寄存器的某位置 1 后原來配置為輸入的 P0 變成了永遠(yuǎn)讀到低電平。原因是 LED 模式會把引腳內(nèi)部結(jié)構(gòu)從輸入緩沖切換成電流源驅(qū)動引腳不再具備數(shù)字輸入功能。這不是芯片故障而是模式本身互斥。解決方法是把需要做輸入檢測的引腳全部放在 P8-P15或者在使用前把 0x04 對應(yīng)位清零并重新配置方向寄存器。設(shè)計(jì)階段就定好分工P0-P7 優(yōu)先給 LED 和指示燈P8-P15 做按鍵輸入和普通輸出。如果布局已經(jīng)固定就要在驅(qū)動里加一個(gè)狀態(tài)變量記錄哪些引腳處于 LED 模式避免上層誤讀。5.3 初值寄存器沒先寫上電瞬間輸出亂跳現(xiàn)象是系統(tǒng)上電后接在 AW9523 輸出腳上的繼電器或 LED 閃了一下然后才進(jìn)入正常狀態(tài)。原因是方向寄存器配置成輸出之后輸出寄存器默認(rèn)值是不確定的芯片在上電到初始化完成的窗口期內(nèi)可能輸出隨機(jī)電平。初值寄存器 0x03 如果沒被寫入這個(gè)窗口期的行為不可控。解決方法是嚴(yán)格按照先寫 0x03 初值、再寫 0x02 方向的順序初始化。如果硬件上不允許輸出腳在上電瞬間有不確定電平還需要在 AW9523 的 INT 腳或使能電路上加一個(gè) RC 延時(shí)讓芯片輸出腳在外圍電路穩(wěn)定后再生效。軟件和硬件兩手都要做這一點(diǎn)在量產(chǎn)產(chǎn)品上尤其重要。5.4 中斷一直拉低讀狀態(tài)寄存器后沒有清標(biāo)志現(xiàn)象是 AW9523 的 INT 引腳觸發(fā)一次后電平就一直保持低后續(xù)引腳變化不再產(chǎn)生中斷。原因通常是中斷狀態(tài)寄存器 0x15 只讀不清。讀取狀態(tài)寄存器之后必須把讀到的值原樣寫回把中斷標(biāo)志清掉INT 引腳才會釋放。很多人讀完之后直接忽略返回值中斷就永遠(yuǎn)卡死在第一次觸發(fā)。解決方法是把清標(biāo)志和讀狀態(tài)做成一個(gè)函數(shù)每次中斷處理末尾強(qiáng)制寫回。即使只有一個(gè)中斷源也建議寫回完整狀態(tài)值而不是寫 1避免不同位之間有粘連邏輯。用邏輯分析儀抓 INT 波形能直接看到清標(biāo)志前后引腳電平的變化是最快的驗(yàn)證方式。5.5 400kHz 快速模式下偶發(fā)讀寫失敗線長和上拉要背鍋現(xiàn)象是 AW9523 在 400kHz 下工作運(yùn)行一段時(shí)間后偶發(fā)寫入失敗或讀到 0xFF降到 100kHz 后完全正常。原因不是芯片性能不行而是板級 I2C 總線的上拉電阻和走線寄生電容不匹配。上拉電阻太大信號上升沿變緩走線太長振鈴和過沖疊加在 SDA/SCL 上毛刺會被芯片當(dāng)成錯(cuò)誤起始或停止位。解決方法是先看示波器抓 SCL 的上升沿如果邊沿超過 300ns把上拉電阻調(diào)小比如從 10k 換成 4.7k 或者 2.2k。同時(shí)把 0x13 寄存器里的 slew rate 控制位調(diào)低讓輸出驅(qū)動器本身不那么激進(jìn)。如果板子已經(jīng)量產(chǎn)沒法改電阻驅(qū)動里強(qiáng)制用 100kHz 跑AW9523 這類擴(kuò)展芯片的實(shí)時(shí)性要求通常不高慢一點(diǎn)完全可以接受。6. 驗(yàn)證方法與調(diào)試環(huán)境讓 AW9523 驅(qū)動跑得明明白白拿到一塊帶 AW9523 的板子先不要急著寫驅(qū)動。我有幾個(gè)固定的驗(yàn)證步驟能省掉大半排錯(cuò)時(shí)間。第一步用 i2cdetect 確認(rèn)設(shè)備在線。下面的命令會掃描總線 1 上所有 I2C 地址輸出列表里出現(xiàn) 58 或 59說明芯片通信鏈路沒問題。如果掃不到先查 A0 引腳電平再量 SCL/SDA 波形最后檢查 VCC 和 GND。i2cdetect -y 1 i2cdump -y 1 0x58第二步用 i2cset 手動改寫方向寄存器和輸出寄存器看對應(yīng)引腳電平是否變化。這一步繞過所有代碼直接證明硬件鏈路和寄存器行為符合預(yù)期。命令格式是把 0x58 地址處的 0x02 寄存器寫成 0x00全部輸出再把 0x01 寫成測試值。i2cset -y 1 0x58 0x02 0x00 i2cset -y 1 0x58 0x01 0xFF第三步如果功能正常但代碼跑起來不對重點(diǎn)檢查工具鏈架構(gòu)匹配。在 vscode 里配置 C/C 環(huán)境時(shí)遇到過擴(kuò)展報(bào)“二進(jìn)制文件不兼容或不匹配”十有八九是 tasks.json 里用的編譯器架構(gòu)和開發(fā)板不一致比如在 x86 主機(jī)上編出了 x86 的 ELF拿到 ARM 板上當(dāng)然跑不了。用交叉編譯工具鏈時(shí)編譯、鏈接、調(diào)試器三者的目標(biāo)架構(gòu)必須一致不能主機(jī) gcc 和 arm-gdb 混用。想快速驗(yàn)證算法邏輯在 termux 里裝 gcc 也可以但操作硬件設(shè)備節(jié)點(diǎn)需要真實(shí)硬件環(huán)境這點(diǎn)繞不開。驗(yàn)證順序建議是i2cdetect 確認(rèn)在線i2cset 確認(rèn)可控邏輯分析儀確認(rèn)時(shí)序最后再編譯驅(qū)動代碼。我自己的習(xí)慣是每換一顆新芯片先花半小時(shí)把寄存器表抄成頭文件再寫讀寫函數(shù)最后才碰業(yè)務(wù)邏輯。這個(gè)順序救過我很多次每次覺得“時(shí)序沒問題直接寫吧”結(jié)果都在省掉的那步上翻車。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
五月色丁香| 欧美午夜色妇色鬼| 欧美婷婷| 性爱乱伦视频免费| 丰满精品人妻少妇久久字幕| 樱花蜜乳av| 高潮内射在线| 午夜福利国产欧美日韩夜夜| 78p欧美| 婷婷激情丁香| 97视频在线观看免费高清| 久久一二区四| 熟妇乱伦一区二区| 人人摸人人干| 中文字幕日韩人妻视频| 欧美72网页| 97亚洲综合影院| 天天日天天舔天天喷天天射| 99久久99久久免费精品蜜臀| 成人精品在线观看| 久久青青草在线视频| 天美传媒国产原创中文字幕亚洲欧美另类 | 国产精品一区二区手机看片| 九九热男人天堂| 欧美92| 亚洲最大91网| 欧美成人免费在线观看| 蜜桃色院一区久久| 亚洲一卡2卡3卡4卡乱码网站| 日韩 女同 综合| 一本久道在线综合视频| 99热线麻豆 | 91国产丝袜美女| 国产农村妇女精品| 夜夜欢天天干| 九草九九九| 欲色综合| 97综合国产精品高潮久久| 久久精品 六十路 熟女 欧美| 情色AV电影| 日本视频在线中文字幕| 999 久久久| 超碰在线香蕉| 久久久久久日韩| 色综和网| 国产高清无码一区二区三区四区皇冠| 伊人麻豆传媒| 五月综合久久| 日韩欧美大片免费高清啪啪| 欧美体内射精| 安徽熟妇视频| 色青青久久影视| 久区视频| 久久国模av| 92午夜免费福利视频| 新91视频.cmp| 国产一区二区三区影片| 日韩Va亚洲va欧美Ⅴa久久| 国产精品97视频| 黄色小视频日本txt| 啊啊在线| 夜夜高潮夜夜爽高清视频一| 日本免费中文字幕在线| 91女色| 天天日日舔舔| 日韩精品资源| 五月天人妻综合| 青青伊人这里只有精品| 色777999综合| av天堂精品久久| 亚洲国产精品久久久男人的天堂| 国产精品久久久亚洲一区| 青娱乐福利99| 久久久精品九| 亚洲一二三精品久久网| 岛园激情| 天天天天天天天天天天干美女| 欧美激情区| 一区二区三区四区久久视1| 国产理论视频在线播放| 超碰95| 色欲色香天天天综合网www-亚洲综合国| 家庭乱伦网站国产| 黄色电影在线播放综合网站| 亚洲爽图| 欧美性爱超碰97| 91久久久老司机| 丁香激情五月天| 午夜福利视频在线一区| 国产久久久久久| 99老司机精品视频在线观看| 超碰爽人妻熟女Av| 黄骗免费网站| 碰人碰碰人人开房人肉| 国产人妻天天干精品| 大香网站| 乱伦一二三区| 美国美女AV在线| 妺妺跟我一起洗澡没忍住| 97亚洲精品超碰| 9999久久久久| 91搞逼视频| 97超碰大| 久草毛片| 超碰97导航| 伊人久久国产免费观看视频| 久久久精品91八戒| 亚洲日韩天堂| 久久精品国产亚洲av水密被窝| 操b网站亚洲无码| 大奶啊啊好爽| www.人人cao| 色综合V| 国产60页| 国产97综合| 天美传媒av 在线| 性爱乱伦一区| 欧美日韩操操操| 日韩中文字幕国产| 国产隔壁老王影院在线| 免费观看日本操逼视频| 国产一区二区二区按摩精品啪视频| 91久热| 日日干夜夜欢| 97欧美久久久久久久| 午夜欧美神马久久久久| 精品国产一区二区三区久久久蜜臀| 伊人久久婷婷| 99免费在线视频| 久热大香蕉| 妺妺跟我一起洗澡没忍住| 日本国产欧美高清在线| 亚洲三级。日韩三级| 国产AV人人 夜夜人人澡| 免费看片黄| 欧美东京热青青草| 超碰午夜| 夜色91| 97人人爱人人乐| 精品国产国产AV| 加勒比日本在线| 最新精品久久蜜桃| 欧洲精品一二三在线| 97爱b| 欧美激色| 丰满人妻一区二区三区| 国产成人欧美精品在线| 丰满人妻一区二区三区性色| 欧美探花网| 青青免费在线视频一区 | 欧美日韩天堂| 在线播放欧洲免费av| 天堂亚洲欧美| 男人的天堂在线有码| 99热色精品| 日日夜夜狠狠| 青青草国产亚洲精品久久| 大香蕉十区| 97超碰超碰| 精品人体无圣光凹凸| 超碰成人公开| 国产天天骚| 老熟女中文字幕高清| 美女91av| …亚洲黄色厕厕女女在线播…| 91性情| 欧美综合另类| 操逼逼一区视频| 国产精品 久久久精品一牛| 在线一道啪| 中文字幕日本久久| 青青草自拍视频在线播放| 中文字幕天天操| 91亚洲欧美综合高清在线| 97精品视频在线| 欧洲人妻视频| 国产女人和拘做爰视频 | 偷拍片久久| 亚洲色图欧美色图制服诱惑| 玖玖爱视频网站| 秋霞怕怕片| 黄色AAAAA欧美| 丝袜美腿诱惑亚洲欧美视频在线观看 | 欧美大香蕉同搞| 91狼人| 九九精品美女高溯喷水| 久操影视| 97免费视频在线观看| 久久精品国产亚洲妲己影视| 2020中文字幕| 精彩久久中文| 2023天天操夜夜操| 99色色网| 国产第11页| 天堂中文日本在线观看| 欧美天天综合网版| 亚洲无码日韩电影| 国产一在线观看| 丁香五月综合| 欧美激情 日韩精品| 91劲爆| 国产综合色精品在线观看| 午夜理论片在线观看免费| 成人五月香网在线| 天天性射网| 人人摸.人人色| 人妻一区二区三区| 91国产丝袜白虎| 精品美女久久久久| 天美国产精品| 久久久精精精| hd成人一区二区在线| 午夜久久一区二区无码中出 | 91 亚洲 欧洲| 色97欧美| 黄片无码在线制服| 美女大乳久久久久久久女人18| 欧美美逼| 岛园激情| 941超碰| 黄人人操人人操| 一区二区 韩日AV| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 欧美色网| 久久99久久99精品免视看婷婷| 嫩草影院永久在线制服丝袜| 333kkkk·亚洲com久久| 成人热久久精品| 美国日韩黄片| 91逼逼女人91| 久久久夜夜夜| 激情五月激情综合网| 欧美疯狂做爰xxxx| 大香蕉琪琪日本女优不卡| 亚州精品丝袜-不卡成人免费| 999久久久免费精品国产牛牛| 自慰白浆在线观看| 熟妇国产免费一区| 九九久精品| 老女人91| 粉嫩av在线一区二区| 色综合一区二区三区| 午夜天堂精品久久| 91亚洲色人| 超碰在线974| 欧美97av| 国产伦乱91| 日韩av电影网站| 男女性感激情网站| 亚拍在线| 日本黄 R色 成 人网站| 伊香蕉综合久久久久久久噜噜噜| 99性爱视频| 97超碰大| 国内精品不卡无毒99999| 91久久久亚洲| 97内射偷拍| 国产精品视频91久久| 欧美成人亚洲精品| 男女性感激情网站| 天干天干天干天天做| 丁香六月婷婷| 欧洲亚洲人妻无码中字久久三区四区| 亚洲综合色图欧美| 操B在线观看| 亚洲在线综合| 欧美男人亚洲天堂| 欧美日韩美女精品久草一区二区三区| 亚洲超碰AV| 91久久青青草原精品| www久久精品| 黄色片,com| 风月影院男女十八禁| 国产绿奴视频在线观看| 国产精品久久久久久久久久久久久久久久久久 | 北京美女一区二区| 俺去俺来也在线www| 麻豆av一区二区| 2010男人的天堂| 新亚洲无码| 性色av一区二区| 强奸乱伦资源| 久久久久女教师免费一区 | 国产成人自拍视频在线| 蜜臀无码视频在线观看| 日韩 女同 综合| AV中文在线可看| 久久透逼视频| 男人天堂毛片| 老女人日韩美91| 五码视频在线观看| av影院十区| 高清不卡视频| 国产又大又硬又长又粗| 欧美激情亚洲| 精品国产三级av韩国在线| 美女诱惑在线一区| 天天日天天插| 超碰色男人操熟女| 日韩在线电影| 伊人 俄罗斯 a v| 久操操| 香蕉99秘 一区精品蜜桃臀| 亚洲熟女综合| 思思热在线| 18禁在线视频| 97在线免费看| 秋霞Av理论一级在线| 中文在线久久字幕| 国产女人高潮视频| 白嫩国模丰满一二三区| 亚洲日韩视频二区| 狠狠91| 限制级中的三级片中的黑粗大屌屌日人妻熟女 | 亚洲国产精品无码AV久久| 国产AV高清AV无码| 久久久久久中文版| 欧美精品久久96人妻无码| 一区二区视频你懂的| 国产吹潮女在线观看| 色爱欲亚洲| 精品久久久久9999| 一区二区三区男女操逼黄色小电影| 天天操天天舔| 天天做日日做| 日日爱99| 大香蕉人妻久久| 龙兴卡官方查询| 91色综合激情| 操我啊啊啊啊啊| 99热这里只有精品99| 日韩精品人妻一| 亚洲婷婷丁香在线| 亚洲熟女人妻中文字幕一区二区| 精彩久久中文| 操淫穴亚洲五月丁香 | 嗯嗯嗯,草死我| 91 在线亚洲| 欧美色图20P| 蜜乳AV色欲AVAV无码| 亚洲av综合色区图片亚洲| 无码精品久久久久久亚洲| 岛国天天午夜影院传媒网| 欧美超碰人妻97| 青女在线| 熟女网站最新| 韩国女主播青草在线| 亚洲免费精品一区| 国产少妇与亚洲av| 久热伊人99re| 密臀在线免费观看| 欧美少妇第一页| 精精夜夜| 嗯嗯啊啊视频在线看| 色九区| 簧片免费看视频| 国产小u女在线观看| 插日本熟女视频| 国模无码一区二区三区在线| 91天堂色男人的天堂| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 9久9久| 久久九九热| 青青青草原| 加勒比99999| 亚洲欧美在线丝袜| 67914在线兔费成人视频| 中国熟女91| 欧美日韩97在线| 天天澡天天爽日日av| 澳门色噜噜色噜噜色噜噜色噜噜色噜噜| 国产午夜福利合集| 97亚洲精品超碰| 亚洲天天操| 尤物av网站免费在线播放| 夜间福利片1000无码| 亚洲无码国产探花在线观看| 亚洲精品视频在线| 久久超碰网| 97天天摸天天碰| 超碰伊人在线| 高清无码一区二区三区| 无码操逼网| 综合色久欲| 欧日韩不卡视.频| 欧美 亚洲 另类 综合| 日日超碰亚洲| 激情小说亚洲| 国产欧美日韩臀| 欧美一级黄片视频在线| 91网站18+| 日本色色视频网站| www.久久超碰| 欧美 青青草| 国产一级舔足在线观看| 91精品女厕偷拍视频| 日韩国语字幕| 亚洲人妻五月丁香婷婷| 九九精品热| 成人av影院在线观看| 蜜桃臀AV在线| 日本人妻一区二区| 91欧美美女日韩国产婷婷| 高清无码久操视频| 欧美黄页| 亚洲色图加勒比| 91高清日| 精品国产丝袜一区二区三区乱码| 思思热在线观看| 天天综合网AV91| 国产精品96久久久久久| 久久久国产成人一区二区三区在线| AV一二区| 好色综合| 国产欧美伊人| 中文字幕视频二区| 乱伦日本色图AⅤ| 一区二区三区男女操逼黄色小电影| 久久久久久无码人妻中文字幕| 人人干黄色| 国产视频不卡在线观看| 亚洲欧美日韩偷拍色图| 综合色99| 大香交| 天天干,夜夜爽| 精品综合久久久久久97| 男人天堂黄片| 亚洲欧美性生活| 日韩熟女精一区二区三区不卡| 国产精品自拍欧美在线| k频道色撸撸| 日韩久射综合| 婷婷综合激情| 五月婷视频| 97亚洲综合电影| 国产尤物AV尤物在线观看不卡| 9999免费精彩视频| 精品国产乱码久久| 噜噜噜噜天天狠狠| 亚洲激情在线| 亚洲一本大道中文字幕无码在线| 国产精品久久久蜜臀| 99re这里只有| 深爱五月天| 日本 情色 1区2区3区| 亚洲国产ⅴ高清在线观看| 亚洲欧美性生活| 丁香色狠狠色综合久久小说| 精品一区二区三区蜜桃臀赵总 | 国产一级内射高清视频| 九九九九久久久| 九九九国产| 九九热精品视频在线观看| 亚洲精品黄码久久久久| 婷婷亚洲天堂| 97国产人人| 亚洲综合春色| 欧美巨大性舒爽顶到了| 亚洲天堂自拍| 国产精品欧美日韩久久| 久久熟女嫩草成人片免费| www.色婷婷色综合| 欧美日韩久久精品爱爱| 2001天天操| 小说区 图片区色 综合区| 后入内射蜜桃臀| 无码动漫av中文字幕| 久久久性爱视频| 欧美精品一区二区少妇免费A片 | 99re这里只有| 美女人妻色网站| 69XX一中文字幕人妻91| 狠综合网| 亚洲福利中文字幕在线| 99999re| 91久热这里只有精品| 国产精品人妻无码久久久老鸭窝| 一区二区 电影 亚洲| 中文字幕日韩人妻视频一区二区三区 | 欧美日韩日产免费网站看| 久久精品视频一区三区小泽玛利亚| 老司机老司机午夜影院| 国产精选视频| 中文字幕丝袜人妻| 无码免费精品高清| 亚洲天堂2020| 91女优在线观看| 99综合视频一体| 国产综合日韩伦理| 日韩性爱1级片视频| 97超级色碰碰| 欧美性爱97超碰 | 国产精品久久久久综合| 搡老熟女免费视频| 死我十八禁| 天综合中文| 精品人妻一区二区视频| 欧美日韩久久精品爱爱| 久久久久久久国产| 五月激情小说| 约操熟妇| 亚洲一区日韩精品中文字幕| www.av不卡中文字幕| 人人天天欧洲| 亚洲砖码砖专无区2023| 日本韩国国产精品一区| 91高清日| 大香蕉视频一二三区| 综合亚洲网| 午夜福利成人免费视频| 成人毛片免费| 免看60秒涩涩视频| 曰本熟女视频| 天天舔天天| 国产区91柔拿会所技师| 乱伦熟女论坛| 啊啊啊啊好多水| 亚洲综合九| 爱爱动态120秒| av资源在线播放天堂| 青娱乐老司机视频| 亚洲影视综合| 国产精品对白自产拍| 国产精品午夜成人福利| 黄污污污污| 亚洲砖码砖专无区2023| 岛国黄| 国产无吗在线播放| 97人妻免费中文字幕| 91熟女视频网| 日日干夜夜操视频h| 国产精品一二三区福利| 欧美老妇曰批的视频| 亚洲成成熟女人综合一区二区| 1204金沙人妻懂旧版免费| 熟女人妻av在线资源,黄色的资源| 国模不卡| 第四色奇米影视777| 2019天天干| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 91网站在线播放| 神马久久久久久久久久久久| 99久久com免费视频′| 婷婷色综合| 欧美在线观看综合国产| 亚洲日韩美国人妻| 啪啪AV导航| 日本操逼视频不卡直接放| 国产熟妇 码视频户外直播| 超碰九7免费| 97欧美资源| 欧美啪啪天堂| 伊人性在线视频| 91欧美少妇| 蜜臀在线看片| 熟女熟妇一区二区三区视频| 天天天堂影视日韩亚洲91| av72网| 日韩精品9999| 欧美亚洲日韩16色| 少妇专区一二三四五| 亚洲国产一级黄色视频| 欧美性爱第1 页| 黑人娇小av在线播放| 大香蕉综合网| 91人妻人人澡人人爽人人精品| 欧美激情综合| 欧美不卡在线一区二区| 人人贴人人摸| 欧美色视频在线| 国产精品视频一区二区三区八戒| 无码精品蜜桃一区二区三区ww| 激情视屏国产乱伦强奸| 欧美性爱精品一区二区| 丁香五月AV| 国产欧美日韩女同性恋ww喷水精品| 97久久精品亚洲| 4141514逼喷水三级片| 草久久久| 最新9久久久9免费视频| 3级毛片一二| 人人操人人肉久久精品| 91综合在线| 99视频这有这里有精品| 3d成人精品一区二区| 综合久久欧美| 黄页18禁| 亚洲欧洲色情高清| 91精品在线播放| 中文字幕在线免费观看 | 99久久99九九99九九九| 精品九九九| 午夜无遮挡男女啪啪视频| 人人操人人操草草| 五月天伊人| 欧美无圣光在线| 九九九草| 女性91网站| 日本成人A片免费看| 搡老熟女老女人老熟妇免费视频| 五月丁香激情综合| 久久久婷| 91综合无码| 亚洲成人精品在线一区| 免费啪啪啪网站18岁| 久久久精品日本一道| 99RE在线视频精品,这里只有精品| 欧美高清在线| 91久久久亚洲| A 天堂在线观看视频| 亚洲综合春色| 久久人妻少妇| 久久97| 26uuu国产免费观看| 日韩成人色图| 婷婷精品国产欧美精品亚洲人人爽| 美女91在线| 精品人体无圣光凹凸| 天天干美少妇一区| 五月开心久久AV官网| 99re99| 人人摸人人摸人人干| 91亚州日韩高清| 天欧美在线| J?P?NESEHD熟女熟妇伦| 免费一级欧美片片线观看| 亚洲淫乱骚妇AV| 人妻91少妇| 色哟哟511老熟女| 狠狠躁日日躁夜夜躁A| 亚洲熟女一区| 男人女人18禁片免费看网站| 午夜精品99久久久久传媒| 欧美 亚洲精品首页| 欧美少妇色综合| 日本久久久久久久久久| 色欲天天综合久久久无码网中文| 又黄又爽在线观看视频| 青青青在线高清视频在线一二三四区| 天天香香欲综合| 天天日天天看| 熟女乱伦A| 2003天天干夜夜操| 日本在线一二| 亚洲男人天堂网| 欧美综合区| 白丝被操91| 防屏蔽在线视频| 208天天久久九九九| 69少妇一区二区| 亚洲 欧美 中文 日韩超碰 | 夜夜草天天| 校园春色综合| 无套后入双马尾| 性爱av在线免费观看| 熟妇激情| 日本免费专区| 国产亚洲日本| 国产精品视频自拍在线| 久久久久七视频| 超碰成人人人爽人人爽| 草草影院在线视频| 91精品人妻一区二区三区蜜桃| 婷婷中文网| 日本黄色天堂| 人摸人人操人| 91操人| 午夜120视频在线观看| 天天看特黄的免费网站| 国产精品白丝在线播放| 久久久久9久久久久| 91春色| 国产精品青青草| 日日超碰亚洲| 九九九综合精品| 久久亚洲中文字幕视频| 欧美 日韩 国产传媒| 13小男生GAY自慰脱裤子| 精品免费1| 操b在线观看| 国产传媒1234区| 一个国产在线综合网站| 亚洲少妇在线影音| 国产精品嫩草影院免费| 成人一级二级| 成人午夜无码视频| 亚洲丝袜少妇在线| 东北黄色电影| 伊人久久综合影院精品久久久| 九九英色视频| 日本精品无码三级网站| 欧美日韩亚洲国产中文永久天天看| 欧美人妻久久精品二区三区 | 日韩福利综合一区| 超碰这里只有精品| 久久精品国产亚洲AV无码做| 超碰在线综合97| 日本99久久| 屁股久久久久久久| 久久综合女优| 免费看欧美美女黄色大片| 久久久青青草| 欧美日日夜夜| 91c色| julia国产在线| 99超碰色| 淫荡少妇免费| 青青草色AV| 91女神在线视频| 你想操日本小逼吗| 久久久啊啊啊| 69综合网| 日本三级韩三级99久久| 免费一二区| 人妻在线大香蕉| 免费一级毛片在线视频观看| 97超碰欧美| www.男人天堂| 九九在线视频| 黄色激情电影在线观看| 丰满熟女人妻一区二区三五十一路| 婷婷久久综合| 高清国产无码av| 破处bbq| 午夜呻吟欧美| 69精品久久久久中文字幕| 亚欧美综合网| 色娱乐色呦呦夜夜夜夜av| 亚洲黄色影视| 美女视频尤物网在线看| 97se亚洲| 北京美女一区二区| 一区二区偷拍拍视频| 97在线精品观看视频| 暴力av在线| 夜夜嗷嗷一区二区| 99色综合| 三级色综合| 国产剧情在线| 2003天天干夜夜操| 成人网欧美风情| 99热官网| 国产高清精品福利| 久久精品 六十路 熟女 欧美| 啊啊啊操死我了| 日本东京热大香蕉a片| 思思热在线观看| 91天天爱| 99超碰色| 激情视频网址| 国产成年免费大片黄在线观看| 欧美97色| 大香蕉2017| 天天日天天操VV| 久久久噜噜噜久久久| 91粉嫩萝控精品福利网站_精品影音先锋国| 日本αv| 一本久道久久综合狠狠爱一密臀精| 国产精品天干天干综合网麻豆| 欧美熟爽综合| 91啪啪| 国产精品视频白浆免费| 高清无码在线播放网站| 日韩在线观看三级电影| 国产夜夜艹| 久久超碰国产一区二区三区| 国产品精品自在在线午夜免费| 青青操少妇| 青青草密桃在线播放| 五月丁香啪啪啪| 强免费黄色网址| 国产精品婬乱一级毛片彝族| 中日亚韩免费视频| 国产色综合亚洲色综合吹潮| 97色碰| 九九草| 在线欧美亚洲| 91精品导航| 天躁夜夜躁2021| www.久久超碰| 欧美综合色,www| 精品丰满熟妇人妻一区| 加勒比性爱成人在线| www被窝色com| 日韩一级二级三级免费看完整版国语版 | 中文字幕 av v| 熟女丰满人妻一区| 久久欧美1卡2卡3| 亚洲91av| 天天干天天日天天射黄色大片| 女人天堂AV五区在线| 丁香六月激情| 97天天爽| 91人妻视频在线| 欧美一区二区传媒| laoshunv91| 亚洲涩涩| 欧美日韩97在线| 日本ZZ高免费A级视频| 蜜区区视频79| 青青草好吊色| 水多多映视AV| 黄色免费一级在线毛片| 飘花国产午夜精品不卡| 视频黄色国产一级| 国产三区免费在线观看| 六十路日本| 色哟哟的毛片| 很黄很污的免费网站| 97欧美精品综合| aaa淫乱视频| 亚洲国产中文字幕| 久久久久99精品成人片蜜臀| 久操免费在线| 日韩欧美午夜一区二区| 乱伦图av| www色婷婷| 2020中文字幕| 国产青视频| 人妻激情在线视频| 久久老熟女| 女性喷水高潮在线观看| 国产女人高潮嗷嗷嗷叫小说 | 精品国产乱码久久久久久久| 91bbb| 日韩综合成人免费视频| 麻豆成人影音在线| 黄色片A级一区二区三区| AV色五月天| 国产精品经典一卡久久久| 国产版a级片直播在线| 久久久久久久国产视频| 女上位精品在线| 97久久国产精品女不卡| 偷拍 欧美 日韩| 97人妻免费中文字幕| 亚洲日韩精品在线播放| 精品免费一区二区三区在线亚洲人成| 欧亚日韩三区| 亚洲综合在线91| 久久草草亚洲蜜桃臀| 福利视频一区二区微拍| 九九热精品| 天天综合网入口~91| 超碰色美女| 一级性爱视频免费观看| av日韩在线观看电影| 一区二区偷拍拍视频| 老鸭窝黄色视频网站| 99热销国产这里有精品| 天天懆天天日| 亚洲激情综合| 九九九九九九九九九五码| 日本幼女18+| 免费1级a做爰片观看| 日本欧美成人片AAAA| 99RE在线视频精品,这里只有精品| 亚洲熟女一区二区| 国产不良强奸视频免费看| 99人人干| 亚洲色图美腿丝袜| 欧美综合网在线| 久久精品中文字幕无码l| 超碰亚洲欧美日韩无| 九99久久| 91人精品妻入口| 五月天丁香| 亚洲性感丝袜诱惑在线观看| 色婷婷国产精品一区在线观看| 大香蕉一线视频| 中文字幕乱碼在线| 少妇激情一区二区三区视频| 乳欲人妻办公室奶水| 老熟女91av| 久久r精品| www.黄色在线| 后入内射蜜桃臀| 这里只有97精品| 人人爱人人操人人性| 亚洲综合有玛| 欧美成人性活片| 妺妺跟我一起洗澡没忍住| 91国产美女丝袜足交精品视频| 国产熟女精品一区二区| 国产精品免费视频不卡| 色拍偷亚洲| AV一起草在线| 欧美中文字幕男人天堂久久精品| 久久精品成人| 亚洲欧美日韩精品久| 91日产欧美| 人人操人人干xxx| 97精品国产97久久久久久| 91高清日| 婷婷深爱五月| 人妻天天爽夜夜爽2| av绯色| 怡春苑东京热| 中字幕人妻一区二区三区| 精品熟女一区=区三区| 91爱| 欧美亚洲综合色| 四虎影视欧美| 色色操| 男女啊啊啊| 1024香蕉视频| 国产白丝网站| 激情小说五月天| 欧美自拍网| 五月丁香色色网| 五月天久久人妻| 国产激情视频在线观看| 91模特在线观看| 男人的天堂一区三区| 超碰在线1234区| 亚洲欧美日韩精品久| 日本加勒比无码专区一二三| 国产综合网站在线播放| 天堂精品| 综合久久婷婷| 色香天天| 啊啊啊啊啊在线观看网址| 麻豆久久一区二区三区| 久久久9视频| 亚洲av国产av综合av卡| 九九九九九九成人| 欧美aa一级片| 人妻熟女一区二区| 黑人黄片在线免费观看| 欧美综合天堂| 国产最新AV| 亚洲午夜未满十八勿入网站日本又色又爽又黄 | 欧洲免费一区二| 国产91会所女技师在线观看| 日韩 欧美 校园一区| 一区二区三区黄色片a| 操淫穴亚洲五月丁香 | 黑人操一区二区| 青青草华人在线欧美在线| 亚洲色啪| 女人天堂av在线播放| 啊啊啊好湿久久| 在线播放一级无码视频| 狠狠爱夜夜干| 天天操夜夜操| 亚洲无码 国产无码| 人人妻人人色| 日韩精品永久在线观看| 日夜精品| 成人色女网| 日本成人电影资源网| 18精品一二区| 91亚洲不卡一区| 色色香蕉| 超碰色97| 加勒比综合九九99视频在线播放| 成人八戒网站| 羞涩视频| 中文字幕人乱码中文字的预防方法| 亚洲 欧美日韩 另类| 亚洲欧美清纯| 欧美白嫩女HD| 99在线观看| 国产精品视频91久久| 五月天欧美色图| 激激五月| 在线中文字幕极品av| 日韩人妻丝袜中文字幕| 欧美亚洲se91| 亚洲天堂电影精品一区| 中文人妻av高清一区| 久久久78| 91九九九小逼| 婷婷午夜| 精品九九国产无码| 人妻少妇精品视频一区二区三区| 伊人久久大香线综合无码| 日本女人操逼| 国产乱伦性爱区| 欧美综合色图网| 极品粉嫩少妇视频| 92福利社视频| 国产精品欧美日韩久久| 探花视频免费观看国产专区| 亚洲91综合| 色诱中文字幕| 五月婷在线| 成人三一级一片aaa| 天美传媒AV在线播放| 肉丝无码中文高清| 亚洲A色| 欧美色五月| 狠狠色噜噜狠狠狠狠狠色综合久久| 麻豆精品一区二区三区四区免费观看| 中文字幕久久亚州无码| 色av中文字| 成人在线视频网| 天天插夜夜操| 美女91在线| 99综合免费视频| 国产精品无码论坛| 久久久久9久久久久| 久久女女| 黄片色区软件| 亚洲综合码| 大香蕉欧美| 中文字幕在线高清男人的天堂 | 成人性爱电影网| 亚洲猛交| 国外91| 亚洲 欧美 另类 综合 偷拍| 91五月天| 图片区小说区| 超碰成人公开| 亚洲A曰本VA欧美VA视频| 久久αⅴ| www.人人摸在线视频| 久久九精品| 97超级欧美| 亚洲综合性感在线| 大香蕉伊利av| 男人的天堂亚洲| 日本在线不卡一二区| 自拍偷拍 日韩无码| 亚洲自拍天堂| 日韩免费高清大片在线| 神马久久久久久| 丰满人妻一区二区三区四区| 尤物视频新赏网鲜网色诱网| 九九九九免费视频| 国产噜噜噜噜噜久久久久久久久| AV老汉| 白丝AV网站| 欧美三级免费伊人| 91美女视屏| 日韩三级网址| 亚洲精品一二三四区| 国产黄a三级三级三级av在线看| 五月天开心网| 六六久久日韩不卡| 欧美日不卡| 超碰79人人乐| 色色色色色色色色色色色色色色综合| 午夜精品久久久久久久男人的天堂 | 日本视频在线观看污污污| 手机在线播放国产福利| 黄骗免费| 久久久久久精品免费看A级| 操逼不卡中文字幕| 国产精品蜜乳AV| 一级性爱aaaa| www.色综合| 人人操av| 国产黄a三级三级三级av在线看| 爆乳免费黄网站| 成人熟女视频一区二区三区| 久久111| 久日综合网| 大香蕉手机在线| 亚洲熟女人妻中文字幕一区二区| 射综合网| 亚洲欧洲日本精品中文a∨| 成人无码在线超碰网| 国产欧美精选激情视频| 国产操逼逼网| 激情综合亚洲| 特污免视频| 91麻豆天美国产| 偷拍五区| 国产97色在线 | 亚洲| 97视频免费播放| 97无码视频在线播放| 少妇3P性爱自拍| 日本在线激情一区二区三区| 激情综合五月| 午夜性| 午夜精品人妻二区三区| 96超碰网| 中文字幕在线免费观看2| 色网在线视频观看免费| 色综合网1| 精品久久視頻在线| 91中文精品日韩欧美在线| 久久 久久国内精品亚洲| 中文字幕一区二区三区人妻不卡| 精品一级毛片在线观看| 一本大道不卡一二三区| 国产精品久久久三级无码| 极品色社| 久噜噜| 日韩欧美传媒一区国产| 无码外流操逼视频| 激情综合婷婷| 密臀在线免费观看| 欧美熟女逼久久久久久| 超碰色图| 国产精品亚洲天堂网址| 色婷婷狠狠18禁| 97久久精品亚洲中六字幕| 人乳av| 久久精品国产亚洲AV先锋| 小视频玖玖| 男人的天堂2010| 综合av影片| 亚洲中文字幕熟女少妇一区二区| 懂色中文一区二区三区| 欧美99热| 伊人一区二区三区| 少妇天堂| 男女激情黄色网址| 91久精品| 亚洲色天堂九9| 亚洲精品白浆高清久久久久久| 乱老女人一区二区视频| 91色爽欧美| 一二三区精品视频| 日韩卡一卡二卡三在线| 超碰97欧美在线 | 啪啪啪男女亚洲中文字幕99| 日韩操逼性鲍| 久久国产视频性吧| 97超碰中文字幕| 国产丝袜欧美在线视频| 99久久婷婷国产综合精品草原| 欧美91精彩| 欧美男人天堂| 亚洲经典啪啪| 精品国产乱码久久久兰草影视| 久久久久久久唑| 人人操人人摸人 | 99999精品视频| 嫩草 人人网精品| 大香蕉草草| 国产成人手机视频激情| 亚洲最大黄网| 密臀视频三区免费网站| 夜嗨影院| 综合色拍| 免费无码婬片AAAA片直播色戒| 九九热超碰| 九热超碰| 嗯啊抽插大香蕉网页| 久久精品一区| 亚洲天堂久久久久久粉红视频| 精品国产精品一区二区| 最新9久久久9免费视频| 丁香九月 婷婷| 欧美精品丝袜久久久中文字幕| 国产一二三在线视频五十路| 最近的最新的中文字幕视频| 国产精品久久久久久久久久久久久久久久| 日韩97| 亚洲色吧网| 丝袜AV一区二区三区| 视频分类 国内精品| 91艹| 亚洲一级特黄大片在线播放91| 热久久99999| 91视频伊人| 欧美激情超碰777|