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

ARTICLE DETAIL

資訊詳情

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

STM32寄存器操作實(shí)戰(zhàn):從GPIO到DMA的底層開發(fā)指南

STM32寄存器操作實(shí)戰(zhàn):從GPIO到DMA的底層開發(fā)指南 1. 為什么還要折騰寄存器1.1 從一個(gè)真實(shí)的困惑說起剛接觸STM32那會(huì)兒我和大多數(shù)人一樣從庫(kù)函數(shù)入手。新建工程、調(diào)用HAL_GPIO_Init()、編譯下載LED亮了覺得單片機(jī)不過如此。直到有一次做一個(gè)WS2812燈帶的驅(qū)動(dòng)需要精確到零點(diǎn)幾微秒的時(shí)序控制庫(kù)函數(shù)那層層封裝帶來的延遲讓我怎么調(diào)都調(diào)不準(zhǔn)。翻遍論壇有人甩了一句“直接操作寄存器”我盯著參考手冊(cè)里那一長(zhǎng)串GPIOB-BSRR、TIM2-CCR1完全不知道從哪下手。后來花了大概兩周時(shí)間把GPIO、TIM、USART、SPI、I2C這幾個(gè)常用外設(shè)的寄存器從頭到尾啃了一遍才發(fā)現(xiàn)寄存器操作根本沒有想象中那么可怕。它就像學(xué)開車庫(kù)函數(shù)是自動(dòng)擋踩油門就走寄存器是手動(dòng)擋你得知道離合、檔位、轉(zhuǎn)速之間的關(guān)系但一旦掌握了什么路況你都能應(yīng)付。這份手冊(cè)就是把我踩過的坑、總結(jié)的方法用最直白的話講清楚。它適合已經(jīng)會(huì)用庫(kù)函數(shù)但想深入理解底層的人也適合剛?cè)腴T想少走彎路的初學(xué)者。核心目標(biāo)只有一個(gè)讓你看到寄存器名字時(shí)不再發(fā)怵能對(duì)著參考手冊(cè)直接寫出可運(yùn)行的代碼。1.2 寄存器操作到底在操作什么很多人被“寄存器”三個(gè)字嚇住其實(shí)它的本質(zhì)極其簡(jiǎn)單。STM32內(nèi)部有成千上萬個(gè)存儲(chǔ)單元每個(gè)單元有固定的地址。所謂寄存器就是這些地址被賦予了特定功能的存儲(chǔ)單元。你往某個(gè)地址寫一個(gè)值硬件就根據(jù)這個(gè)值改變引腳電平、啟動(dòng)定時(shí)器、發(fā)送數(shù)據(jù)。舉個(gè)例子GPIOB端口的輸出數(shù)據(jù)寄存器GPIOB_ODR它的地址是0x40010C0C。你往這個(gè)地址寫0x00000001GPIOB的第0號(hào)引腳就輸出高電平。就這么直接。那為什么庫(kù)函數(shù)要封裝那么多層因?yàn)橹苯硬僮鞯刂啡菀壮鲥e(cuò)而且不同型號(hào)的STM32地址可能不一樣。庫(kù)函數(shù)用結(jié)構(gòu)體指針把地址包裝起來用GPIOB-ODR 0x01代替*(volatile uint32_t*)0x40010C0C 0x01既好記又不容易寫錯(cuò)。但封裝帶來的代價(jià)就是執(zhí)行效率降低和代碼體積增大。我個(gè)人的經(jīng)驗(yàn)是常規(guī)邏輯控制用庫(kù)函數(shù)對(duì)時(shí)序敏感或需要極致優(yōu)化的場(chǎng)景用寄存器。兩者不是對(duì)立的在同一個(gè)工程里混用完全沒問題。1.3 這份手冊(cè)的閱讀方式我不會(huì)按參考手冊(cè)的順序逐個(gè)寄存器講那樣太枯燥。我會(huì)按“實(shí)際使用場(chǎng)景”來組織點(diǎn)亮一個(gè)LED需要操作哪些寄存器、配置一個(gè)定時(shí)器中斷需要幾步、串口發(fā)送一個(gè)字節(jié)背后發(fā)生了什么。每個(gè)場(chǎng)景都從需求出發(fā)先講清楚要做什么再講需要配置哪些寄存器最后給出可以直接復(fù)制運(yùn)行的代碼。閱讀時(shí)建議手邊開著對(duì)應(yīng)型號(hào)的參考手冊(cè)遇到不認(rèn)識(shí)的位域隨時(shí)查閱。我寫的每個(gè)寄存器操作都會(huì)標(biāo)注它在參考手冊(cè)中的章節(jié)號(hào)方便你對(duì)照。另外所有代碼基于STM32F103系列但原理通用換到F4、H7系列只是寄存器地址和個(gè)別位定義不同思路完全一致。注意操作寄存器時(shí)一定要用volatile關(guān)鍵字修飾指針否則編譯器優(yōu)化可能把看似“重復(fù)”的寫操作優(yōu)化掉導(dǎo)致硬件行為異常。這是新手最容易忽略的坑。2. 動(dòng)手前的必修課地址映射與位操作2.1 存儲(chǔ)器映射找到寄存器的門牌號(hào)STM32的4GB地址空間被劃分成幾個(gè)大區(qū)域其中外設(shè)寄存器的映射區(qū)從0x40000000開始。不同外設(shè)掛在不同總線上地址范圍也不同。比如GPIO掛在APB2總線上起始地址是0x40010000TIM2掛在APB1總線上起始地址是0x40000000。每個(gè)外設(shè)內(nèi)部寄存器按功能順序排列每個(gè)寄存器占4字節(jié)。以GPIOB為例它的寄存器地址如下表所示寄存器名稱偏移地址絕對(duì)地址功能CRL0x000x40010C00端口配置低寄存器CRH0x040x40010C04端口配置高寄存器IDR0x080x40010C08端口輸入數(shù)據(jù)寄存器ODR0x0C0x40010C0C端口輸出數(shù)據(jù)寄存器BSRR0x100x40010C10端口位設(shè)置/清除寄存器BRR0x140x40010C14端口位清除寄存器LCKR0x180x40010C18端口配置鎖定寄存器知道這張表你就能直接操作GPIOB的任何寄存器。比如讓PB0輸出高電平寫*(volatile uint32_t*)0x40010C0C | 0x01;即可。但每次都算地址太麻煩所以標(biāo)準(zhǔn)做法是用結(jié)構(gòu)體把外設(shè)的所有寄存器組織起來。在CMSIS頭文件里GPIO的結(jié)構(gòu)體定義大致是這樣的typedef struct { volatile uint32_t CRL; volatile uint32_t CRH; volatile uint32_t IDR; volatile uint32_t ODR; volatile uint32_t BSRR; volatile uint32_t BRR; volatile uint32_t LCKR; } GPIO_TypeDef;然后定義宏#define GPIOB ((GPIO_TypeDef *)0x40010C00)這樣就能用GPIOB-ODR來訪問。結(jié)構(gòu)體成員的偏移量正好對(duì)應(yīng)寄存器的偏移地址編譯器會(huì)自動(dòng)計(jì)算絕對(duì)地址。這種寫法既直觀又高效編譯后生成的指令和直接寫地址完全一樣。2.2 位操作精準(zhǔn)控制每一個(gè)比特寄存器操作的核心是位操作。一個(gè)32位寄存器每一位可能控制不同的功能。你經(jīng)常需要只修改某幾位而不影響其他位這時(shí)候就要用到C語言的位運(yùn)算。最常用的三個(gè)操作置位REG | (1 n)把第n位置1其他位不變。清零REG ~(1 n)把第n位清0其他位不變。取反REG ^ (1 n)把第n位翻轉(zhuǎn)。如果要同時(shí)操作多位比如把第4到第7位設(shè)置為1010可以這樣寫REG ~(0x0F 4); // 先清零這4位 REG | (0x0A 4); // 再寫入新值STM32的GPIO還提供了BSRR寄存器可以原子性地置位或清零。寫B(tài)SRR的低16位對(duì)應(yīng)引腳置1寫高16位對(duì)應(yīng)引腳清0。比如同時(shí)讓PB0置1、PB1清0GPIOB-BSRR (1 0) | (1 (16 1));這種操作不需要讀-改-寫一條指令完成在中斷環(huán)境下特別安全。實(shí)操心得我習(xí)慣在頭文件里定義一組宏比如#define SET_BIT(REG, BIT) ((REG) | (BIT))、#define CLEAR_BIT(REG, BIT) ((REG) ~(BIT))寫代碼時(shí)直接調(diào)用既簡(jiǎn)潔又不容易出錯(cuò)。2.3 時(shí)鐘使能打開外設(shè)的電源開關(guān)STM32為了省電每個(gè)外設(shè)的時(shí)鐘默認(rèn)是關(guān)閉的。你配置了半天寄存器卻沒反應(yīng)十有八九是忘了開時(shí)鐘。時(shí)鐘使能寄存器在RCC模塊里APB1和APB2各有一個(gè)。以GPIOB為例它掛在APB2總線上對(duì)應(yīng)的時(shí)鐘使能位是RCC_APB2ENR的第3位。開啟時(shí)鐘的代碼是RCC-APB2ENR | (1 3); // 使能GPIOB時(shí)鐘APB1上的外設(shè)如TIM2、USART2則操作RCC_APB1ENR。我建議把常用外設(shè)的時(shí)鐘使能位做成宏定義比如#define RCC_APB2ENR_GPIOBEN (1 3) #define RCC_APB1ENR_TIM2EN (1 0)這樣代碼可讀性會(huì)好很多。另外注意開啟時(shí)鐘后最好加幾個(gè)空指令或短暫延時(shí)等時(shí)鐘穩(wěn)定后再配置外設(shè)雖然大多數(shù)情況下不需要但在低功耗場(chǎng)景下這個(gè)細(xì)節(jié)很重要。3. GPIO寄存器實(shí)戰(zhàn)從點(diǎn)亮LED到按鍵消抖3.1 輸出模式配置CRL和CRH的位域解析GPIO的配置寄存器分CRL和CRH兩個(gè)CRL管第0到7引腳CRH管第8到15引腳。每個(gè)引腳占4個(gè)位低2位是MODE高2位是CNF。MODE位定義輸出速度00輸入模式01輸出模式最大10MHz10輸出模式最大2MHz11輸出模式最大50MHzCNF位在輸出模式下的定義00通用推挽輸出01通用開漏輸出10復(fù)用推挽輸出11復(fù)用開漏輸出在輸入模式下的定義00模擬輸入01浮空輸入10上拉/下拉輸入11保留假設(shè)要讓PB0作為推挽輸出速度50MHz操作如下GPIOB-CRL ~(0x0F 0); // 清零PB0的配置位 GPIOB-CRL | (0x03 0); // MODE11, CNF00如果PB8也要配置成同樣模式因?yàn)樗鼘儆贑RH管操作變成GPIOB-CRH ~(0x0F 0); // 注意PB8在CRH中占第0到3位 GPIOB-CRH | (0x03 0);這里有個(gè)容易搞混的地方CRH中第0到3位對(duì)應(yīng)的是第8號(hào)引腳不是第0號(hào)。計(jì)算偏移量時(shí)要用(pin - 8) * 4。3.2 輸出電平控制ODR與BSRR的選擇配置好模式后控制電平有兩種方式。ODR寄存器直接寫整個(gè)端口的值比如GPIOB-ODR 0x0001會(huì)把PB0置1、其他引腳清0。這種方式適合一次性設(shè)置多個(gè)引腳但在中斷里操作有風(fēng)險(xiǎn)因?yàn)樽x-改-寫不是原子操作。BSRR寄存器則安全得多。低16位寫1置位高16位寫1清零寫0無效。比如GPIOB-BSRR (1 0); // PB0輸出高 GPIOB-BSRR (1 (16 0)); // PB0輸出低我實(shí)測(cè)過用BSRR翻轉(zhuǎn)引腳在72MHz主頻下能產(chǎn)生接近18MHz的方波而用ODR加異或操作只能到8MHz左右。所以對(duì)速度有要求時(shí)BSRR是首選。3.3 輸入讀取與按鍵消抖的寄存器實(shí)現(xiàn)讀取引腳電平用IDR寄存器。比如判斷PB0是否為低電平if ((GPIOB-IDR (1 0)) 0) { // 按鍵按下 }但機(jī)械按鍵有抖動(dòng)直接讀會(huì)誤判。硬件消抖加電容當(dāng)然好但大多數(shù)時(shí)候我們用軟件消抖。常見的做法是延時(shí)10ms再讀一次但這樣會(huì)阻塞CPU。我的做法是用定時(shí)器中斷每隔5ms采樣一次連續(xù)3次相同才確認(rèn)狀態(tài)變化。用寄存器實(shí)現(xiàn)的狀態(tài)機(jī)大概是這樣typedef struct { uint8_t current; uint8_t count; uint8_t stable; } KeyState; void KeyScan(KeyState *key, uint8_t pinState) { if (pinState ! key-current) { key-current pinState; key-count 0; } else { if (key-count 3) { key-count; } else { key-stable key-current; } } }這個(gè)邏輯放在定時(shí)器中斷里主循環(huán)只讀key-stable完全不阻塞。實(shí)測(cè)下來比HAL_Delay(10)那種寫法響應(yīng)快得多而且不浪費(fèi)CPU時(shí)間。注意事項(xiàng)配置輸入引腳時(shí)如果外部沒有上拉電阻一定要把CNF設(shè)成上拉輸入CNF10否則引腳浮空會(huì)導(dǎo)致讀數(shù)隨機(jī)跳動(dòng)。我見過太多人在這里卡住以為是代碼問題其實(shí)是硬件配置沒做對(duì)。4. 定時(shí)器寄存器精確計(jì)時(shí)的核心4.1 時(shí)基單元PSC、ARR與CNT的配合定時(shí)器的核心是三個(gè)寄存器預(yù)分頻器PSC、自動(dòng)重裝載寄存器ARR、計(jì)數(shù)器CNT。它們的關(guān)系可以用一個(gè)公式概括定時(shí)器溢出頻率 時(shí)鐘源頻率 / ((PSC 1) * (ARR 1))假設(shè)TIM2的時(shí)鐘是72MHz我想要1kHz的中斷頻率也就是每1ms觸發(fā)一次。計(jì)算過程先定PSC。為了獲得較好的分辨率PSC不要太大。取PSC71則分頻后頻率為72MHz / 72 1MHz。再算ARR。1MHz / 1kHz 1000所以ARR999。配置代碼RCC-APB1ENR | (1 0); // 使能TIM2時(shí)鐘 TIM2-PSC 71; // 預(yù)分頻值 TIM2-ARR 999; // 自動(dòng)重裝載值 TIM2-CNT 0; // 清零計(jì)數(shù)器 TIM2-CR1 | (1 0); // 使能定時(shí)器這里有個(gè)細(xì)節(jié)PSC和ARR都是16位寄存器最大值65535。如果需要的分頻比超過這個(gè)范圍可以級(jí)聯(lián)兩個(gè)定時(shí)器或者用主從模式。我在做超聲波測(cè)距時(shí)遇到過這個(gè)問題后來用TIM3給TIM2提供時(shí)鐘輕松解決了大分頻比的需求。4.2 中斷配置DIER與NVIC的聯(lián)動(dòng)定時(shí)器溢出后要產(chǎn)生中斷需要兩步使能定時(shí)器的更新中斷再在NVIC中使能對(duì)應(yīng)的中斷通道。TIM2-DIER | (1 0); // 使能更新中斷 NVIC_EnableIRQ(TIM2_IRQn); // 使能NVIC通道 NVIC_SetPriority(TIM2_IRQn, 1); // 設(shè)置優(yōu)先級(jí)然后在中斷服務(wù)函數(shù)里清除標(biāo)志位void TIM2_IRQHandler(void) { if (TIM2-SR (1 0)) { TIM2-SR ~(1 0); // 清除更新標(biāo)志 // 用戶代碼 } }注意SR寄存器是“讀后自動(dòng)清除”還是“寫0清除”不同系列可能不同。F1系列是寫0清除F4系列是讀后自動(dòng)清除。這個(gè)差異坑過我一次在F4上寫了清除代碼反而導(dǎo)致中斷丟失后來查手冊(cè)才發(fā)現(xiàn)。4.3 PWM輸出CCR與CCMR的配置邏輯PWM是定時(shí)器最常用的功能之一。以TIM3的通道1對(duì)應(yīng)PA6為例配置步驟配置PA6為復(fù)用推挽輸出CNF10MODE11。使能TIM3時(shí)鐘和GPIOA時(shí)鐘。設(shè)置PSC和ARR決定PWM頻率。配置通道1為PWM模式1TIM3-CCMR1 ~(0x7 4); // 清除OC1M位 TIM3-CCMR1 | (0x6 4); // PWM模式1 TIM3-CCMR1 | (1 3); // 使能預(yù)裝載 TIM3-CCER | (1 0); // 使能通道1輸出 TIM3-CCR1 500; // 占空比50%ARR999時(shí) TIM3-CR1 | (1 7); // 使能自動(dòng)重裝載預(yù)裝載 TIM3-CR1 | (1 0); // 啟動(dòng)定時(shí)器占空比的計(jì)算公式是CCR / (ARR 1)。ARR999時(shí)CCR500對(duì)應(yīng)50%CCR250對(duì)應(yīng)25%。改變CCR就能實(shí)時(shí)調(diào)整占空比不需要停止定時(shí)器。實(shí)操心得做電機(jī)調(diào)速時(shí)PWM頻率一般選15kHz到20kHz超出人耳聽覺范圍電機(jī)不會(huì)發(fā)出嘯叫。我試過8kHz電機(jī)聲音很明顯調(diào)到16kHz后就安靜了。另外死區(qū)時(shí)間用BDTR寄存器配置做H橋驅(qū)動(dòng)時(shí)必不可少否則上下管直通會(huì)燒管子。5. 串口通信寄存器從發(fā)送一個(gè)字節(jié)到DMA搬運(yùn)5.1 波特率計(jì)算BRR寄存器的分頻值USART的波特率由BRR寄存器決定。計(jì)算公式是波特率 fCK / (16 * USARTDIV)其中USARTDIV是一個(gè)定點(diǎn)數(shù)整數(shù)部分占12位小數(shù)部分占4位。假設(shè)系統(tǒng)時(shí)鐘72MHz要得到115200波特率USARTDIV 72000000 / (16 * 115200) 39.0625整數(shù)部分39小數(shù)部分0.0625 * 16 1所以BRR (39 4) | 1 0x271。USART1-BRR 0x271;實(shí)際寫代碼時(shí)不用手算用宏#define BRR_VALUE(fCK, baud) ((fCK baud/2) / baud)可以自動(dòng)計(jì)算。但理解這個(gè)公式很重要因?yàn)橛袝r(shí)候你需要非標(biāo)準(zhǔn)波特率比如某些傳感器用9600但時(shí)鐘不是標(biāo)準(zhǔn)值就得手動(dòng)調(diào)整。5.2 發(fā)送與接收SR、DR的握手流程發(fā)送一個(gè)字節(jié)的流程等待TXE標(biāo)志置位發(fā)送數(shù)據(jù)寄存器空。寫DR寄存器。等待TC標(biāo)志置位發(fā)送完成。while (!(USART1-SR (1 7))); // 等待TXE USART1-DR data; while (!(USART1-SR (1 6))); // 等待TC接收則更復(fù)雜一些因?yàn)橐幚砀鞣N錯(cuò)誤標(biāo)志?;玖鞒痰却齊XNE標(biāo)志置位。讀DR寄存器。檢查ORE、NE、FE、PE標(biāo)志有錯(cuò)誤則處理。if (USART1-SR (1 5)) { // RXNE uint8_t data USART1-DR; if (USART1-SR (1 3)) { // ORE溢出錯(cuò)誤 // 處理溢出 } }注意讀SR和讀DR的順序有講究。先讀SR再讀DR可以清除某些錯(cuò)誤標(biāo)志反過來則不行。這個(gè)細(xì)節(jié)在參考手冊(cè)里有說明但很容易被忽略。5.3 中斷與DMA解放CPU的兩種方式輪詢方式發(fā)送大量數(shù)據(jù)會(huì)占滿CPU。用中斷可以緩解但每個(gè)字節(jié)一次中斷115200波特率下每秒上萬次中斷CPU還是吃不消。DMA才是終極方案。配置USART1的TX使用DMA1通道4RCC-AHBENR | (1 0); // 使能DMA1時(shí)鐘 DMA1_Channel4-CPAR (uint32_t)USART1-DR; DMA1_Channel4-CMAR (uint32_t)buffer; DMA1_Channel4-CNDTR length; DMA1_Channel4-CCR | (1 4); // 從存儲(chǔ)器讀 DMA1_Channel4-CCR | (1 7); // 存儲(chǔ)器地址增量 DMA1_Channel4-CCR | (1 0); // 使能通道 USART1-CR3 | (1 7); // 使能USART DMA發(fā)送配置完成后往buffer里填數(shù)據(jù)DMA自動(dòng)搬運(yùn)CPU完全不用管。我做過測(cè)試用DMA發(fā)送1KB數(shù)據(jù)CPU占用率不到1%而輪詢方式接近100%。常見問題DMA傳輸完成后需要清除標(biāo)志位并重新配置CNDTR才能開始下一次傳輸。我習(xí)慣在DMA傳輸完成中斷里做這件事形成雙緩沖機(jī)制實(shí)現(xiàn)連續(xù)不間斷的數(shù)據(jù)流。6. 常見問題與排查技巧實(shí)錄6.1 寄存器操作失效的五大原因現(xiàn)象可能原因排查方法配置后無反應(yīng)外設(shè)時(shí)鐘未使能檢查RCC相關(guān)使能位引腳電平不變GPIO模式配置錯(cuò)誤讀CRL/CRH確認(rèn)位域中斷不觸發(fā)NVIC未使能或優(yōu)先級(jí)錯(cuò)誤檢查NVIC_ISER和IPR定時(shí)器不計(jì)數(shù)CEN位未置1讀CR1確認(rèn)bit0串口無輸出波特率計(jì)算錯(cuò)誤用示波器測(cè)實(shí)際波特率我遇到最多的是第一個(gè)。有一次調(diào)試SPI折騰了兩個(gè)小時(shí)最后發(fā)現(xiàn)是SPI1的時(shí)鐘沒開。從那以后我養(yǎng)成了一個(gè)習(xí)慣每配置一個(gè)外設(shè)第一件事就是開時(shí)鐘并且寫注釋標(biāo)記。6.2 讀-改-寫陷阱與原子操作前面提過REG | (1 n)這種操作在中斷環(huán)境下有風(fēng)險(xiǎn)。假設(shè)主循環(huán)正在執(zhí)行GPIOB-ODR | 0x01剛讀完ODR中斷來了中斷里修改了ODR的bit1返回后主循環(huán)寫回舊值bit1的修改就丟了。解決方案有三個(gè)用BSRR/BRR代替ODR硬件保證原子性。在操作前關(guān)中斷操作后開中斷。用位帶操作Bit-Banding把每個(gè)位映射到獨(dú)立地址讀寫都是原子的。位帶操作是Cortex-M3/M4的特色功能把外設(shè)區(qū)的每個(gè)位映射到別名區(qū)的一個(gè)32位字。比如GPIOB_ODR的bit0別名地址是0x42000000 (0x40010C0C - 0x40000000) * 32 0 * 4。寫這個(gè)地址就等于原子性地操作bit0。雖然計(jì)算復(fù)雜但可以用宏封裝#define BITBAND(addr, bit) ((volatile uint32_t*)(0x42000000 ((addr - 0x40000000) * 32) (bit * 4))) #define GPIOB_ODR_BIT0 BITBAND(0x40010C0C, 0)然后*GPIOB_ODR_BIT0 1;就是原子置位。這個(gè)技巧在實(shí)時(shí)性要求高的場(chǎng)合特別有用。6.3 寄存器調(diào)試的實(shí)用技巧調(diào)試寄存器問題時(shí)我常用的手段有這幾個(gè)在線調(diào)試看寄存器窗口Keil和IAR都有外設(shè)寄存器查看功能可以實(shí)時(shí)看到每個(gè)位的值。比打印printf快得多。用內(nèi)存窗口直接改寄存器調(diào)試時(shí)暫停程序在內(nèi)存窗口找到寄存器地址直接修改值觀察硬件反應(yīng)。這個(gè)方法用來驗(yàn)證配置是否正確特別有效。示波器/邏輯分析儀懷疑時(shí)序問題時(shí)示波器是終極武器。我調(diào)WS2812時(shí)就是靠邏輯分析儀抓波形發(fā)現(xiàn)高電平時(shí)間差了0.3微秒調(diào)整NOP數(shù)量后解決。二分法定位如果一段配置代碼不工作把它拆成兩半分別測(cè)試逐步縮小范圍。比從頭讀代碼快得多。避坑技巧修改寄存器時(shí)盡量用“讀-改-寫”的宏但要注意編譯器優(yōu)化。我習(xí)慣在關(guān)鍵操作前后加__DSB()和__ISB()屏障指令確保指令順序執(zhí)行。雖然大多數(shù)時(shí)候不需要但在操作時(shí)鐘、電源等關(guān)鍵寄存器時(shí)加上更保險(xiǎn)。7. 從寄存器到庫(kù)函數(shù)的自由切換7.1 什么時(shí)候該用寄存器不是所有場(chǎng)景都適合寄存器操作。我的判斷標(biāo)準(zhǔn)很簡(jiǎn)單需要極致性能中斷服務(wù)函數(shù)、高頻PWM、DMA配置這些用寄存器。需要精確時(shí)序單總線協(xié)議、WS2812、紅外編解碼必須寄存器。調(diào)試底層問題庫(kù)函數(shù)行為異常時(shí)直接看寄存器能快速定位。學(xué)習(xí)原理想真正理解單片機(jī)怎么工作寄存器是必經(jīng)之路。其他情況比如初始化一堆外設(shè)、寫業(yè)務(wù)邏輯用庫(kù)函數(shù)效率更高。我現(xiàn)在的習(xí)慣是初始化用庫(kù)函數(shù)關(guān)鍵路徑用寄存器。兩者混用完全沒問題編譯器會(huì)處理好。7.2 混用時(shí)的注意事項(xiàng)混用時(shí)最大的坑是庫(kù)函數(shù)可能覆蓋你的寄存器配置。比如你先用寄存器配置了GPIO然后調(diào)用HAL_GPIO_Init()后者會(huì)重新寫入CRL/CRH把你的配置沖掉。解決辦法是要么全用寄存器要么全用庫(kù)函數(shù)要么確保庫(kù)函數(shù)配置的參數(shù)和你的寄存器配置一致。另一個(gè)坑是中斷優(yōu)先級(jí)分組。庫(kù)函數(shù)用HAL_NVIC_SetPriority()設(shè)置優(yōu)先級(jí)底層操作的是NVIC的IPR寄存器。如果你直接用寄存器設(shè)置要注意優(yōu)先級(jí)分組設(shè)置SCB-AIRCR的PRIGROUP位否則優(yōu)先級(jí)可能不符合預(yù)期。我一般會(huì)在工程里定義一個(gè)宏USE_HAL_DRIVER條件編譯決定用哪套代碼。這樣切換起來方便也避免了混用沖突。7.3 進(jìn)階方向從寄存器到RTOS和底層驅(qū)動(dòng)掌握寄存器操作后你會(huì)發(fā)現(xiàn)很多以前覺得神秘的東西變得清晰。比如RTOS的任務(wù)切換本質(zhì)就是操作PendSV異常和堆棧指針比如DMA傳輸就是配置幾個(gè)寄存器然后讓硬件自動(dòng)搬運(yùn)。下一步可以嘗試寫一個(gè)自己的GPIO驅(qū)動(dòng)庫(kù)封裝成gpio_set()、gpio_toggle()等函數(shù)理解庫(kù)函數(shù)的設(shè)計(jì)思路。研究啟動(dòng)文件看匯編代碼怎么初始化堆棧、怎么跳轉(zhuǎn)到main函數(shù)。移植RTOS自己寫PendSV_Handler和SysTick_Handler理解任務(wù)調(diào)度的底層機(jī)制。優(yōu)化關(guān)鍵代碼用寄存器重寫耗時(shí)函數(shù)對(duì)比性能提升。我個(gè)人的體會(huì)是寄存器就像武功的內(nèi)功心法庫(kù)函數(shù)是招式。只練招式遇到強(qiáng)敵就束手無策內(nèi)外兼修才能游刃有余。剛開始可能覺得枯燥但堅(jiān)持啃完幾個(gè)外設(shè)后你會(huì)發(fā)現(xiàn)看任何單片機(jī)的手冊(cè)都不再發(fā)怵這種能力才是真正值錢的。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
欧美日韩一二三| 日韩欧美中文字| 91精品微拍福利| 综合网亚洲1| 青青草日本无码| 亚洲欧洲综合成人av一区| 激情文学亚洲| 欧美亚洲宗合色性图| 中文字幕 av v| jizzjizz欧美| 男女猛烈无遮掩视频免费软件| 天天色踪合| 天堂国产AV| 五月婷婷无码| 九九九九九九九精品视频| 国产一区二区三区白丝| 国语国产操逼伊人AV网| 天天操人人操狠狠插| 麻豆成人影音在线| 久久精品无码一区二区三区| 18精品一二区| 麻豆熟妇乱妇熟色A片在线看| 97久久免费| 67914在线精品观看| 黑人黄片在线免费观看| 操操操日本的逼| 强奸乱伦大香蕉| 久久综合九色综合欧洲98| 中日992视频| 91n欧美| 欧成人精品H无码| 91美女片在线| 色五月av| 2024年最新色情网站在线观看| 超碰在线日韩一区| 啊啊啊啊网站| 久久国产逼| 国产在线综合网| 久久精品国产精品一区| 日本操逼视频不卡直接放| www.99色| 天天做日日做| 夜夜爽爽爽| 无码9区| 日韩一级二级| 欧美人妻中出| 后入式999| 狠狠躁天天躁日日躁97| 大香交| 国产成人五月天丁香花| 国产在线视频午夜精华在 | 日韩人成网站在线播放| 婷婷丁香五月激情啪啪| 亚洲另类综合欧美| 天天综合影院91| 96国产污污污丝袜| 欧美呦呦性爱| www网站黄| 91 手机在线播放 绯色| 欧洲中文字幕| 亚洲毛片久久| 国产亚洲中文不卡二区| 熟妇熟女亚洲天堂网| 97色色色综合网站| 人妻大香蕉| 熟女熟妇一区二区三四区| 亚洲中文字幕熟女少妇一区二区| 日日操免费视频| 最新中文字幕在线亚洲| 亚洲天堂综合AV| 久久久精品,3| 免费看黄片现成| 日韩一级特黄av毛片| 激情小说五月天| 亚洲欧美日韩有码| 9精品久久久久| 国产无码高清操逼视频| 狠狠色婷婷777| 欧美久久九九| 国产精彩女在线观看视频| 日韩天天综合| 色欲无码人妻日韩欧美精品| WWW4虎| 天天影视网色欲色香| 九九九国产| 操逼视频色| 91精品综合久久久久久五月丁香| 久久草视频污视频| 欧美激情激情xxxx欧美专区| 三级片网站在线播放| 丝袜喷水在线| 国产粉嫩蜜臀av一区二区三区| 91久久精品中文字幕| 亚洲天堂电影精品一区| 欧美96交| 强奸乱伦资源| 青青操少妇| 日本加勒比无码专区| 999亚洲国产视频| 99热超碰| 欧美日韩色| 色综合久| 情色五月天就去干| 96精品久久久久久久久久| av操操不卡| 国产www色在线观看| 91狠狠综合| 欧美高潮| 亚洲天堂无码| 久久AV无码AV| 久久久96精品| 精品一区99999| 大香蕉综合在线| 97日韩欧美亚洲| 在线观看啊啊啊啊啊| 网页导航五月天免费一二三区| 天天做日日爱夜夜爽| 五月天精品| 熟女字幕| 99色天堂| 久久东京热久久| 97资源超碰| 久九九九九九九九热| 美女的肌被草喷水视频| 国产欧美日韩女同性恋ww喷水精品 | 国产熟女精品一区二区| 富女玩鸭子一级毛片| 九九精品99| 久久人妻视频| 老鸭窝黄色视频网站| 日韩97超碰| 91精品国产日韩欧美综合| 丰满人妻av一区二区三区| 中日无幕一二三四区| 日韩欧美麻豆| 天天干人人干天天日97| 中文伊人大香蕉视频| 在线播放中文字幕| 影视综合无码少妇| 久久理论字幕视频| 国产精品白丝| 吻戏激情性巴克| 久久人妻少妇| 免费a在线播放v| 国产激情视频一区区三区| 成年在线视频日本亚洲在线视频区精品江靖宇公司 | 日韩人妻中文视频| caopeng97| 亚洲乱伦图片视频| 国产熟女乱论| 白天啪啪晚上啪啪视频| 国产丸一视频| 97超碰色色| 91美女看B| 国产第25页在线观看| 国产精品麻豆成人av| 狠狠爱夜夜| 深田咏美亚洲精品福利社| 九一精品牛牛一区二区| 日本爽爽爽爽爽爽免费视频| 天天淫人人妻日日色| 免费视频观看60秒| 日本免费不卡二区| 国产JDAV无码视频在线观看| 青青草啪啪网| 午夜福利免费福利视频| 激情婷婷丁香网| 婷婷亚洲天堂| 熟女激情综合网| 欧美亚洲激情| 日日AV加勒比| 国产免费久久久久| 老熟女网站| 情色av电影| 亚洲第一精品在线视频| 激情内射| 九月丁香婷婷| 欧美激情久| 久久人妇| 欧美另类天堂| 蜜桃精品一区二区三区ww| 男女做爰猛烈动高潮A片免费应用 少妇厨房愉情理伦片bd在线观看 不卡中文字幕aⅴ在线 | 色天堂综合| 国产高潮AA片免费看| 0755午夜福利视频| 东北熟女91| 久久AV无码网址| 九月丁香| 高跟伊人julia ann| 最新欧美色网| 美女自卫慰黄网站免费| 亚洲揄拍网| 欧美情色贴图| 夜夜免费视频| 精吧天堂| 国产有码一区| 久热无码| 人人摸人人干| 欧美日韩国产色图在线| 日韩在线一区高清在线| 国产久久久久久| 久久有码视频| 中出20p| AV99热18这里只有精品| 97高清啪啪| 中文高清一区二区的| 国产超碰人人操| 久操不卡视频| 高清在线偷拍自拍视频| 大色综合网| 亚洲精品日日夜夜52| 在线可观看的黄色网址| av日韩手机在线影视| 国产无马视频| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 久久精品高清AV| 91熟女视频网| 久久精品日韩| 亚洲精品丝袜| 97se亚洲| 色婷五月天| 国内精品伊人久久久久影院会| 探花一区二区三| 青娱乐蜜桃臀AV色婷| 青青草大香蕉在线视频| 天天躁夜夜躁狠狠躁AV| 国产情侣自拍在线播放| 婷婷啪啪| 亚洲精品不卡一二三区| 亚洲好看强奸乱伦| 狠狠中文字幕| 国产欧美一区激情交| www.色婷婷.com| 激情图片伦理国产一区二区日韩| 日本999精品| 日逼97| 日本人妻中文字幕精品| 婷婷五月天久久久| 伊人久久亚洲中文字幕不卡| 欧美性第1页| 日韩精品在线放| 五月天婷精品激情| 久操 高清| 少妇精品| 人妻熟女av国产网站| 久久精品老司| jizz啪啪| 日本免费一区二| 蜜臀久久99精品久久久久电影| 黑人精品XXX一区一二区| 日韩精品 资源| 加勒比色99999| 欧美一级黄色免费专区| 精品久久9| 久久久久久99999国产精品| 9.1小视频| 亚洲男人综合网| 亚洲制服aⅴ中文字幕| 男人干美女| 午夜无遮挡男女啪啪视频| 国产精品亚洲一区二区三区四区| 曰韩av中文字幕专区| 求求你操操我| 久久久久久中文版| 国产精品一区二区三区,亚洲综合| 亚洲国产97| 亚洲AV无码天美传媒一区| 黄片qw| 97超碰碰碰| 立川理惠被中出无码| 欧美色网络| 国产精品干干干| 欧美在线干| 国产偷拍网站| 久久亚洲熟妇在线视频| 亚洲av影院在线观看| 超碰九九| 嗯嗯,啊啊,国产精品| 十八禁视频一区二区| 一区超碰一区| 天美国产三级传媒| 黄片视频,下载| 欧美日韩国产色五月综合在线| 亚洲第一无码播放立川理惠| 亚洲欧美首页| 欧美视频在线视频免费va| 蜜臀av在线播放一区二区三区| 日韩性爱小视频| 欧美激情久| 欧美色偷拍| 国产一级αv免费看片| 亚洲黄色a级片| 加勒比伊人综合| 日本色色的视频| 日韩九区| 丝袜美腿欧美| 丝袜av一区二区三区| 色制服丝袜夫妻av一区| 91狠狠综合久久久久久| 亚洲男人天堂AV| 亚洲情色五月天 | 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 精品久久久久久中文| 99re6在线视频播放免费精品| 欧美韩国你懂得在线 | 96久久久精品| 97香焦色区| 日日夜夜天天| 久久久久久久精| 草草影院在线视频| 一起草三级AV电影在线观看| 蜜桃臀一区二区aV| 欧美婷婷五月天| 超碰在线1234区| 日韩99精品视频综合区| 美女露胸露尿口| 懂色中文一区二区三区| 99日视频在线免费| 夜夜嗨一区二区| 国产在线视频午夜精华在| 九一综合精品视品av| 国产美女在线精品免费看| 国产精品色哟哟| 岛国视频免费在线观看| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区 | 骚逼自拍99| 九九性爱网| 欧美天天性| 黄色十八禁网站| 激情 欧美 亚洲 小说| 26uuu成人影片| 国产免费操逼| caorenqi shipin| 色呦呦、国产精品| 无码九九| 一级性爱网| 国产精品熟女九色九色蜜臀| 99精品在线观看| 96爱综合| 啊啊啊好大好深| 成人26uuu| 亚洲欧洲综合视频在线| 后入内射蜜桃臀| 天操天操夜操夜月月年年操操| 淫荡网址| 人人干人人操人人..com| 熟妇熟女视频一区二区三区| 久久久久久久久久久999| 99久久久| 亚洲精品日韩国产欧美| 中文字幕视频一区视频二区| 蜜桃臀久久| 日本中文熟女视频| 日本色色色| 干b在线性社区| 国产尤物在线三区| 色伊人91| 超碰爽人妻熟女Av| 色综合大香蕉| 午夜精品五区| 女人的天堂大香蕉网| 97ai亚洲| 精品一区二区成人| 超碰97资源中文字幕| 四虎影视国产精品| 欧美一级特黄淫片在线观看| 草久久久| av在线人气| 超碰97综合| 午夜国产成人福利视频| 夜夜操中文字幕| 亚洲精品自拍| 久久久久精| 啪啪啪综合| 免费视频a级毛片免费视频| 夜夜 中文视频rt| 在线观看亚洲成人精品| 亚洲av夫妻操穴网| 亚洲天堂资源在线| 狼天天狼天天大香蕉| 91在线国产后入风骚翘臀美女素人| 色综合国产在线观看| 丁香五月av| 久久久久女教师免费一区 | 99婷婷一区二区| 久久午夜伦| 麻豆一区二区三区在线看| A V视频日本| 国产青青美女玩逼视频| 午夜AV人气不卡| 97 国产一区| 午夜无遮挡男女啪啪视频| 欧美色图中文字幕| 99久久精品欧美国产| 殴美综合色88| 日本黄色精品专区网站| 伦在线97| 国岛片视频| 日韩精品一区,二区 九九...老司机| 欧美国产精品| 欧美玖玖爱免费玖玖| 久久毛卡| 99久久久| 中文乱码99| 亚洲中文字幕久久人妻| 成人片视频| 天天躁夜夜躁狠狠躁AV| 久久久夜夜嗨免费视频| 操一对老熟妇爽上天视频| 亚洲AV永久无码一区仙野| 久久线上视频免费看| 婷婷操逼| 久久久久久久久久久免费精品| 久插综合| 国产九九九九九九九九| 91情色在线| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 懂色av中文字幕一区二区三区天美 | 欧美国产操逼| 婷婷亚洲综合| 伊人网免费视频| 精品性爱久久视频| 婷婷91| 美女久久久| 亚州色图欧美| 久99热| 99久久精品国产系列| 欧美精品91| 欧美三级中文字幕hd| 国产91 丝袜在线播放| 在线天堂999| 牛牛aV| 亚洲九九九| 欧美男人亚洲天堂| 水澄无码AV| 欧美1区二区三区公司| 夜夜爽夜夜摸夜夜操免费视频| 婷婷五月天福利| 精品人妻一区二区三区四区石在线| 噜噜噜亚洲精品| 嗯嗯啊在线视频| 中国少妇XXXX做受| 美女黄站| 男人的天堂kva| 欧美日日夜夜| 欧美日不卡| 97精品中文字幕| 一道本久久棕合爱| 久久精视频美日韩在线视频| 欧美精品69性爱| 国产蜜臀在线| 日本最新1区2区3区| 国内精品999| 久久av成人无码免费| 97综合网| 久久精品区| 淫乱图区| 午夜天堂精品久久| 久久国产99精品72福利| 97亚洲国产| 啊啊啊想要| 日韩三级视频一区二区三区| 久久久九九| 93人人操人人| 亚洲色悠悠久久88| 巨爆乳一区二区爆乳区| 欧美日韩国产电影| av天堂精品久久| 久久一二三四五六七八九区区| 欧美一区二区三区不卡高清视频| 艳美熟妇先锋一二三区| 国产综合日韩伦理| 好看的91视频| 黄色片一区二区三区四区五区 | 91熟女在线| 丁香五月激情啪啪| 精品在线蜜臀| 91xingse| 三级日本一区二区三区| 裸体1区| av网页一区二区三区| 少妇精品久久久| 国产欧美一级在线观看| 国产女主播视频在线观看| 精品在线观看视频在线| 人妻熟女一区二区三区视频| 99这里都是精品| 91成人无码| 人妻天天操天天爽视频免费| 五月天我淫我色av| 91无摭挡| 婷婷在线视频| 18禁在线视频| 欧洲亚洲综合| 99色婷婷| 操国产逼| 青青青草原| 3571色综合一区二区二区| 国产精品点击进入在线影院高清| 久久中文色图| 日本 欧美 国产一区| 超碰人妻久久| 亚州 综合 色图| 90后性网国产欧美| 激情综合网激情综合| 人妻免费观看| 精品视频久久久久九九九九9999 | 久久久久久久久久久六六| 秋霞Av理论一级在线| 久草男人天堂| 99热免费| 大香蕉一线视频| 综合久久9| 日本新免费二区三区| 九九热精品| 亚洲图片色图欧美另类| 丰满人妻-区二区三区免费看| 内射黑人| 美女黄色一级A视频| 日韩中文字幕国产| 欧美一区二区三熟女剧情| av72网| 夜夜久久久| 日本性感人妻91| 三级网色| 美女露胸露奶头| 久久精品人妻一区二区| 97亚洲在线| 国产日韩在线播放av| 欧美亚洲中文字幕| 国产怡红院| 欧美一区二区三区成人性生活 | 中文字幕天天操| 丰满少妇精品一区二区| 国产无码精品久久久久久| 亚洲无码?第一页| 97精品国产97久久久久久| 97日视频| 啪啪啪综合网| 岛国精品视频在线观看| 操b网站亚洲无码| 欧姜老司机| 黄片免费看的| 岛国AV一区二区电影| 超碰综合97在线| 亚洲最新Av| 色情综合网| 九一精品牛牛一区二区| 99re这里只有精品9| 92人人操人人| 熟妇高潮精品一区二区三区下载| 91丨人妻丨国产丨丝袜| 欧美性爱另类综合| 亚洲欧洲无码一区夜| 国产高清成人免费视频| 久久草大香蕉| 人妻少妇被猛烈进入中| 美女露胸露奶头| 香蕉精品二区二区 | 97免费视频在线| 亚洲国产午夜真人一级片中文字幕精品黄网站 | 97超碰碰碰| 少妇色欲综合网2| 综合久久六月久久婷婷| 五月天久久婷婷亚洲| 97欧美精品| 天天爽天天爽| 青青草大香蕉视频| 国产欧美美女免费观看视频| 欧美性猛交美女自慰91| 久久综合18p| 极品少妇99| 国产成人天堂| 懂色AV网| 九九九九精| 亚洲中文字幕熟女| 国产精品 久久久精品一牛| 午夜激情成人在线观看| 亚洲成人美女无吗| 日日夜夜干| 97超碰碰碰| 色大师网站www永久网站视频| 亚洲天堂情色| 久久久久久久久9| 97视频在线播放| 日本性感人妻91| 国产高清免费不卡av| 男男H黄动漫啪啪无遮挡网站| 去干网最新版| 国产av青草| 国产诱惑| 亚州综合色| 99精品欧美一区二区三区桃色| 性爱乱伦网址| 欧美在线官网| 碰人碰碰人人开房人肉| 五十路一区无码| 久久精品中文字幕观看| 大香蕉碰碰| 小骚逼被操的爽不爽| 青青草大香蕉视频| 亚洲国产av中文字幕久久| 美女黄频a美女大全免费皮| 超碰久久性爱| 久热网| 国产精品高清2021在线| 日本日逼视频网| 大香蕉伊人在线成人AV在线观看| 一二视频神马久久传媒| 精品美女久久久久| 六月婷婷综合| 伊人国产视频| 在线视频97| 熟女乱伦二区| 日韩精品人妻中文字有码在线| 久久高潮妇女视频| 欧美黑人精品一区二区| 色女99一级片在线观看| 国产一线二线三线av| 天天搞在线综合网| 欧美一二三区四五区| 中文字幕第二页| 天天操夜夜操狠很操| 亚州色交| 九九九九亚洲| 免费中文在线| 免费超碰97久久| www久久国产精品| 91一区二区| 男人天堂无码| 久久久久国产精品喷潮免费观看臀 | 国产综合久久久鬼色| 色97干| 国产免费一区在线观看| 久热大香蕉网站| 欧美性爱免费短视频| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 丰满人妻一区二区三区四区| 亚州成人A√| 欧美天天弄| 婷婷五月天丁香花| 97鸡把在线视频| 性做久久久久久免费观看软件| 色拍偷亚洲| 日本无码1| 动漫av中文| 人干人人人操人人摸| 97爱亚洲综合色| 波多野结衣AV无码一区| 91夜色chaopeng| 国产午夜精品理论片a大结局| 婷婷丁香六月| 蜜臀久久99精品久久久久久-DVD原版全| 中文字幕一区av| 日韩精品人妻一区二区| 国产一区二区三区中文字幕| 天天综合网在线观看| 久久久九97| 99精品国产户外露出| 超碰国产情侣自拍网| 日韩综合无码一区久久92| 熟妇熟女一区二三区| 麻豆视频国产一区二区| 超碰97最新人妻| 成年女人黄网站| 999九九九九国产动| 天堂种子在线www网资源| 2017,超碰| 欧美制服网站美腿丝袜| 国产a片操逼| 久久久成人精品| 色狠狠综合| 国产激情视频一区区三区| 中文字幕av久久爽Av| 国产h片在线观看视频| 欧美色图小说综合| 在线 制服丝袜中出 人妻| 欧美色狠| 久操视频免费观看| 久久久爆乳翘臀一线天伦理视频| 精品一区二区国产日韩| 一本色道久久综合熟妇| 婷婷久久综合| 日韩免费高清大片在线| 夜夜青青无码影院| 97人妻色| 亚欧Av| 亚洲人天堂| 亚洲精品不卡一二三区| 91黑丝在线播放| 亚洲第一黄色av网站| 狠狠爱夜夜| 亚洲情色一区二区三区| 青青草视频这里只有精品| 日韩熟女乱伦中出| 久久粉色| 蜜臀亚洲综合一二三四区| 九九热最新| 免费的很黄很污的全部视频 | 91N五十路| 国产精品一区二区 尿失禁| 玖草在线视频| 一二区在线观看视频| 日韩精品高清资源在线 | 亚洲激情综合另类| 天欧美在线| 美日韩一卡二卡三卡免费人妻精品| 亚洲最大AV网| 久久久久久一日韩字幕无码| 欧美色性情| 激情小说亚洲视频| 人妻一区久久二区三区色播| 久99热| 欧美激情中文字幕另类小说| 91东京热男人的天堂| 欧美天堂在线| 国产超碰97| 亚洲资源网| 嗯嗯啊啊用力视频免费| 无码9区| 91超碰人人操| 国岛片视频| 午夜亚洲国产理论秋霞| 成人精品无码| 欧美色图亚洲激情| 日韩久射综合| 蜜臀99久久精品| 天堂综合| 激情综合网一盗摄| 九九九九精品一区| 欧美青青视频| 天美欧美国产| 久久久久ab| 欧美色997| 97玖玖超碰| av情色影音| 欧美日韩资源在线| 日少妇亚洲版| 鸥美插入视频| 亚洲天堂自拍| 淫乱图区 | 两性色网| 激情国产乱伦Av| 乱伦1色页| 免费A V在线播放| 操比国产| 婷婷五月激情综合| 男人的天堂不卡一区二区| 色五月综合| 美女啊啊啊啊啊啊啊| 久久久久久中文字幕中文字幕最新| 九九久久九九久久| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 91中文字幕制服丝袜免费视频| 久久久极品| 国产99999| 日日干天天干夜夜爽| 成人无遮挡毛片免费看| 综合五月婷婷亚洲一区| 国语av最新自产拍在线观看| 狠狠综合网| 91人妻超碰| www.91欧美| 国产丁香精品露脸视频| 加勒比海色香蕉婷婷| 欧美性爱第一页久久| 日韩性爱1级片视频| 欧美视频边做饭边橾| www.yw尤物| 亚州综合电影| 91操人| 成年无码动漫av片无尽在线| 性色中出| 热的中文 热的有码 热的国产| 欧美97色| 日韩精品亚洲专区在线影视| 99热精品在线观看| 久久久青青草| 17c嫩草51久久91嫩草| 日婷婷| 色爱三区| 91久热这里只有精品| 天堂在线一区二区| 狠狠干2020| 中文字幕99999| 无码人妻精品一区二区中文| 欧美国产日韩高清在线| 精品久久久久瑟瑟| 国产熟女高潮一区二区三区| 91欧美大片| 强奸乱伦大香蕉网| ss久久| 伊人网一本| 操逼视频国产无套| 91九九| 综合久久99亚洲人妻中文在线| 在线看污网站| 最新三级网址| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 熟女熟妇一区二区三区视频| 97免费在线观看| 国产视频一区二区三区在线免费观看 | 九九热国产| 亚洲色色探花| 久久国产精品一级二级三级| 亚洲AV在线资源| 2018天天日天天日| 久久99网站| 人妻五十路在线| 蜜臀久久99精品久久久电影| www…国产操逼| 懂色AV中文| 欧洲久久一二线| 户外裸露刺激视频第一区| 国产婷婷一区| 久久专区| 亚洲啪啪性视频| 欧美影音在线| 偷拍偷窥与盗摄视频专区| 大香蕉AV在线| 91视频综合在线| 亚洲字幕一区二区| 97国产精品国| 96久久久| 欧美日韩夜夜| 亚洲性天堂| 另类在线| 久久成人东京热人妻| 欧美大香蕉专区网| 亚洲欧洲色情高清| 无码外流操逼视频| 日韩9999| 超碰97人人cao| 精彩国产视频播放1区2区| 97碰久久| 能直接看AV的网站| 日韩操呦呦影院在线观看| 日韩激情电影中文字幕| 性色乱AV一区二区| 亚洲天堂男人天堂| 欧美少妇一区二区三区| 超碰碰97资源站| 水澄无码AV| 亚洲欧美综合| 亚洲综合97中文网| dy888午夜老子影视达达兔| 免费观看的av| 97视频在线播放| 91黑丝在线播放| 十八禁啪啪视频| 超碰97玖玖爱| 欧美日韩午夜精品一区二区三区| 蜜奶av| 在线中文字幕| 久久九操在线观看| 秋霞色色影院| 欧美白嫩女HD| 麻花传媒免费网站在线观看| 2026国产精品视频| 懂色AV蜜臀无码精品APP| 久久久久久久9最新免费视频观看| 欧美劲爆视频一区二区| 性欧美| 极品五月天噜噜| 免费黄色片。| 97视频在线视频| 最新欧洲欧美日本激情网站| 五十路三区在线| 伊人国产视频| 人人操人人摸人| 国产精品一区二区三| 亚洲91亚洲| 亚欧无码在线| 丰满人妻一区二区三区| 久久这里都是精品| 国产免a费看黄片在线| 亚洲少妇视频| 有码人妻系列| 久久性爱大全| 哈哈操电影| 粉嫩小泬久久久一区二区| 极品极品色影院| 久久永久无码人妻视频| wuyechaopeng| 99热超碰| 伊人久久大香大香线蕉中文| 草草电影院| 嫩草 我啊~嗯~在线| 久久久久久久极品香蕉视频| 日韩精品色呦呦| 98超碰欧美| 97精品国产精品免费观看| 日本99久久| 手机在线播放国产福利| 啊啊啊慢点| 亚洲天天影视综合网| 狂操嫩妻视频一区二区三区| 久久久久久日韩| 一起草高清无码| 亚洲情色综合网| 国产精品午夜成人福利| 日韩熟妇二区| 亚洲精品视频在线| 在线观看AV片| 亚洲伊人成综合成人网| 熟女少妇视频| 久久风骚城市| 日韩在线97| 91黑丝少妇| 欧美性生活综合| 日韩乱伦影音先锋| 欧美爱三级日韩久久| 射丝袜大香蕉| 亚洲一区二区麻豆影院| Blackedraw视频一区二区| 99e久久国产精品| 97免费视频在线| 少妇色欲综合网2| 久久久久极品| 东京热精品97综合网| 打av高清| 欧美亚洲玖玖玖| 亚洲五月天激情| 操逼网站地址| 成年人性爱日韩| 日韩精品中文字幕一| 日韩精品字幕| 九九九成人| 超碰97最新人妻| 亚洲男人的天堂V| 曰本精品久久久| 五月天伊人| 午夜男人天堂| 久久9精品视频| 亚洲黑丝在线| 久久国产精品一级二级三级| 淫妻综合网| 91丨九色丨大屁股| 天天弄天天操| 成人网站 免费观看| 黄色性爱网网| 欧美一区二区三区日韩| 国产精品免费美女视频| 8050午夜少妇无码| 秋霞视频一区二区 | 日日AV加勒比| 爽爽爽免费视频| 一区二区不卡| 精品小视频在线| 97超碰精品成| 亚洲亚洲亚洲天堂天堂| 亚洲第一男人天堂| 啊v在线观看视频| 亚洲九九九九| jazzjazz国产精品麻豆| www.91人妻.com| 26UUU欧美激情一区二区| 日韩乱伦影音先锋| 九九久久精品| 欧美|91色综合| 日日夜夜国产综合| 色五月AV在线| 久久久啊啊啊| 91av熟女人妻| 2017天天插| 亚洲人妻中文在线视频| yellow网站免费观看日韩高清无码| 欧美aa一级片| 久热91| 蜜奶av| 黄色片G G G| 91高潮| 九九干| 蜜乳av首页| 中文字幕在在线观看网站| 嗯嗯啊啊操死我| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 午夜色婷婷| 亚州情色j区| 91路www| 淫荡网址| 操逼片国产| 男人的天堂啪啪啪啪啪蜜桃不卡| 中文字幕啊啊啊在线观看视频| 嗯嗯,好大,好爽,好骚| 国产精品丝袜在线| 在线αⅴ| 99久久婷婷| 欧美激情一区二区| 亚洲男人天堂视频| 日本操逼视频在线| 久久精品国产免费观看99| 国产精品一二三免费网站| 天天摸天天舔天天操| 精品二区久久| 日韩欧美福利视频看看| 成人在线视频网| 亚洲日本男人天堂网| 亚洲情色无码一区二区三区| Sekablack无码一区| 欧美一级A片在线看视频性色| 欧美亚洲第1页| sewuyueav| 中国zzijzzijzzwww精品| 欧美日韩夜夜| 亚洲骚逼少妇| 性爱免费视频成人| 久久久噜噜噜久久久| 日日骚一区二区三区| 国产强奸乱伦xd| www老逼91| 婷婷色香伊人| 大香蕉免费乱伦视频| 欧美操逼视频二区| 99久久久无码国产精品性啊聊| 日韩亚洲Av人人夜夜澡人人爽| 啊啊好多水| 91综合色噜噜| 天天干天天干天天| 久肏视频字幕| 熟女人妻一区二区三区| 日本一天色道久久久精品视频| 天天做天天爱| 国产精品秘 福利姬在线观看| 91爱看| 密乳AV免费观看| 怡红院怡春院| 国产超碰97| 欧美不卡二区| 色五月第四色| 国产黄色小视频网站| 亚洲熟妇无码一区二区三区| 午夜传煤十二区精品| 欧美视频在线视频免费va| 亚洲人人夜夜澡人人爽| 国产亚洲精品久久久久小| 色婷婷综合久久久久中文一区二区| 久久人妻| 日韩精品99999| 黄骗免费网站| 亚州操操穴网| 射久久| 一区黄二区黄| 久久国产在线一区二区| 91色碰| 日本高清免费一本视频在线观看| 久久久久久91香蕉国产| 欧美翘臀视频网站一区二区三区 | 国产精品熟女一区二区三区| 麻豆精品久久久久久久| 青青青青青手机视频| 色爽爽文学| 粉嫩av平台| 人妻插插人妻人| 色天使亚洲综合在线观看| 久久久国产精品亚洲精品| 综合久久久久久久综合网| 五月天亚洲网| 五月综合视频| 黄骗免费网站| 97天天弄| 精品一区二区亚洲国产| 亚洲第一视频 欧美风情 日韩| 男人的天堂啪啪啪啪啪蜜桃不卡| 亚洲人成在线放东京热| 青青草视频爽一爽| 黄片国产精品一区二区| 久久久国产护士丝袜美腿一| 婷婷久久久| 欧美色亚洲| 欧美大战久久久伊人| 美女被艹尤物视频| 性91| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 青娱乐休闲视频在线观看| 久久国产精品,久久国产| 欧美人人曰人人操人人射射 | 91无遮挡| 伊人国产视频| 欧美99热| 伊人网高清| 91色综合激情| 精品亚洲国产成人AV制服丝袜| 熟妇熟女一区二区三区| 色婷婷综合久久久久中文一区二区| 国产精品久久久无码AV网站| 久久久亚洲精品中文字幕人妻| 9久综合网| 九月丁香综合网| 久久久久九九九| 九九九九免费高| 欧美性天天影视| 国产中文精品一区二区在线观看| 啊啊啊好大好深| 亚洲 欧美 小说| 天天干天天插| 国产av又色又爽又黄| 快播电影网日韩新片| 高潮综合网| 黄色乱论网站| 91社区伊人| 亚洲美女高潮喷水视频| 啊啊啊不要好爽日韩无码一区| 日韩精品 资源| 麻花豆传媒剧国产MV出差| 97超碰色色| 亚州,欧美在线| av亚洲天堂资源网站| 亚洲va综合va国产va中文| 啪啪资源网| 黑人美精品 A片| 猛猛干| 天天干人妻视频| 日产123区精品免费观看| 大稥蕉免费视频这里只有精品| 91干熟女| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 欧美性天天影院| 97爱爱爱综合| 五月丁香影院| 五月婷婷激情网| 亚洲 无码 偷拍| 少妇久久久久| 青青青在线高清视频在线一二三四区 | 日本淫色网| 国产免费一区二区在线A片视频| 国精精品无码一二三区水多多| 久久久国产av美女私房| 欧美日韩传媒| 九九九九精| 美女啊啊啊啊啊| 国产精品久久久久9999小说| 欧美青青视频| 亚洲天天影视综合网| 求求你操操我| 国产精品久久发布| 97精品一二区| 嗯啊啊啊轻点视频 | 国精精品无码一二三区水多多| 三级日本一区二区三区| 国产免费黄色一级大片| 思思久热在线精品66| 日本操逼视频免费| 老熟女91视频| 男人久久天堂| 曰韩中文人妻视频| 国产品精品自在在线午夜免费| 91丝袜视频在线观看| 性色aV一区二区三区噜噜| 国产乱子伦久久精品综合一区二区三| 老熟妇一区二区三区啪啪| 色五月激情AV在线| 九一国产精品| 亚洲第一页色网| 久热精品在线| 超碰色老头| 综合伊人网12色| 国产一区自拍欧美日韩| 收看日本人日bb| 中文字幕交换人妻|