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

ARTICLE DETAIL

資訊詳情

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

STM32寄存器白話手冊:從庫函數(shù)到底層實戰(zhàn)

STM32寄存器白話手冊:從庫函數(shù)到底層實戰(zhàn) 前幾天在群里看到一個問題初始化串口時為什么非得先打開USART對應的時鐘有人回了句“先通電、再工作問就是抄手冊”。這個回答雖然糙但確實點破了很多人的日?!脦旌瘮?shù)一把梭初始化代碼背得滾瓜爛熟可一旦被問起GPIO的CRL寄存器里那幾位到底怎么排列人立刻就蔫了。這本《STM32寄存器白話手冊》就是寫給“會用庫但心里沒底”的開發(fā)者看的。它不搬芯片手冊里那些繞口的英文原文而是把時鐘樹、GPIO、串口、定時器這些常用外設的寄存器翻譯成“看得懂的開關”和“數(shù)得清的計數(shù)器”??赐曛竽隳懿豢坷讨苯訉χ拇嫫髑鍐伟淹庠O從零配起來再回頭看HAL庫的源碼時也不再是“它在干嘛我不知道”而是“哦原來底層就做了這么件事”。不管你是剛接觸嵌入式的學生還是已經(jīng)調(diào)了三五年庫函數(shù)的工程師這篇文章都值得你收藏。至少下次翻芯片手冊時不會再對著那一頁頁寄存器名發(fā)怵了。1. 學寄存器到底圖什么1.1 “只會調(diào)庫”的真正痛點很多人覺得庫函數(shù)已經(jīng)封裝好了寄存器操作又麻煩又容易錯沒必要學。這話對了一小半。日常項目用HAL庫確實夠快但一旦碰到底層問題就露怯了。我見過不止一個人遇到串口亂碼第一反應是換波特率而不是查USART的BRR寄存器里寫入的分頻值到底對不對遇到PWM輸出頻率不對只會調(diào)ARR和PSC的數(shù)值卻不清楚APB1總線的倍頻邏輯已經(jīng)把定時器時鐘翻了一倍。學寄存器并不是為了在工作中刻意手寫而是為了在關鍵時刻能看穿庫代碼的真實行為。比如庫函數(shù)HAL_GPIO_WritePin運行完系統(tǒng)實際只做了一件小事往BSRR或者BRR寄存器里寫了某個位。你知道了這個調(diào)試的時候用調(diào)試器直接看寄存器的值比從頭到尾走讀代碼快得多。另外實際開發(fā)里經(jīng)常遇到庫版本不匹配、移植老代碼、或者想實現(xiàn)特殊時序的場景。老項目的初始化代碼可能全是寄存器操作你不可能要求別人先翻譯成HAL庫再給你某些芯片型號資源緊張也不需要為了點個燈就拉進去全套HAL庫。這時候懂寄存器就等于手里多了一把能直接擰螺絲的扳手。1.2 寄存器操作的基本功讀、寫、改位寄存器操作說穿了就三件事讀、寫、改位。但每一件都有講究。先看讀。有些寄存器是只讀的比如GPIO的IDR引腳輸入寄存器你只能用指針去讀它的值不能寫。如果你強行往只讀位寫數(shù)據(jù)寫進去的會被忽略但在調(diào)試器里看時可能會產(chǎn)生誤導讓你以為自己成功改了某個位實際上硬件根本沒動。另一個細節(jié)是很多狀態(tài)寄存器一讀就會清標志位比如串口的SR狀態(tài)寄存器某些位被讀取后硬件自動清零。如果你用“讀-判斷-再處理”的流程寫代碼順序錯了中斷標志可能提前被沖掉。再看寫。寫寄存器一定要清楚這次寫是“全部覆蓋”還是“只改其中幾位”??刂祁惡团渲妙惖募拇嫫鞅热鏕PIO的CRL、RCC的APB2ENR通常整個寄存器都得按位段拼好一次寫進去。而有些標志清除寄存器比如EXTI的PR掛起寄存器則是“寫1清0”你得只對需要清的那位寫1剩下的位寫0不能圖省事把整個寄存器賦個0xFFFFFFFF。最后是改位這是最常用也最坑的操作。改位的目的是在不影響其他位的前提下修改某個或某幾個位。標準手段是先“清位段”再“置位段”邏輯上分兩步。舉個例子要把GPIOA的CRL寄存器里的MODE位改成輸出模式50MHz對應位段是bit0到bit1那么正確寫法是GPIOA-CRL ~(0x03 0); // 先清空bit0、bit1 GPIOA-CRL | (0x03 0); // 再寫入0b11即50MHz輸出這里有個很容易犯的錯誤第一句忘記寫或者把清位的掩碼弄反了。直接|寫進去的后果是原來那兩位可能殘留舊值比如原來是0b102MHz你|一個0b11結(jié)果變成0b1150MHz還好但如果你只想改成2MHz|一個0b10原來要是0b0110MHz算出來的結(jié)果是0b11頻率完全錯了。這種問題調(diào)試器上看半天都發(fā)現(xiàn)不了。所以我的習慣是只要涉及多位配置一律先清空再|(zhì)寫入兩步拆開絕不合并。把這三個基本功練扎實后面看所有外設的配置代碼本質(zhì)都是這個套路在不同寄存器上的重復。2. 白話時鐘樹與GPIO先讓芯片“活”起來2.1 時鐘使能為什么排第一很多新手第一次直接操作寄存器時最容易踩的坑就是“配了GPIO但燈不亮”。我排查過不少人的代碼寄存器配置完全正確但就是不工作。最后發(fā)現(xiàn)是RCC的時鐘沒打開外設壓根就沒通電。STM32內(nèi)部幾乎所有外設的時鐘都是默認關閉的這是為了省電。你要用哪個外設就得先在RCC相關寄存器里把對應位使能。拿最常見的USART1來說它掛載在APB2總線上需要在RCC的APB2外設時鐘使能寄存器RCC_APB2ENR里把USART1EN位置1你想用GPIOA也得把IOPAEN位置1。如果這些沒做后面寫再多USART配置寄存器都白搭。時鐘配置的完整過程可以分成幾層理解。內(nèi)部高速時鐘HSI默認作為系統(tǒng)時鐘源精度一般頻率也可能隨溫度漂移。要求高的時候要切換外部高速晶振HSE再配合PLL鎖相環(huán)倍頻得到相對高的系統(tǒng)時鐘。這個選擇過程涉及RCC_CR里的HSEON、PLLON以及RCC_CFGR里的SW、PLLXTPRE、PLLMULL等位段整個配置鏈其實就一句話先開晶振等它穩(wěn)定再配置PLL倍頻切換系統(tǒng)時鐘源最后把不需要的時鐘關掉省電。但這里有個實踐建議如果你只是做基礎外設實驗不跑操作系統(tǒng)、不要求高精度時序可以暫時不折騰復雜的PLL配置直接用默認的HSI或者直接用庫里的SystemInit生成的時鐘配置。因為寄存器手冊上很多時鐘位是互相關聯(lián)的新人一上來就想把PLL調(diào)到72MHz可能頭一個小時就耗在這兒了。先把外設跑起來再回頭看時鐘樹體驗會好得多。2.2 GPIO六大寄存器逐個拆GPIO是整個STM32寄存器學習中最好的切入點因為直觀。每個GPIO端口比如GPIOA由一組寄存器控制。官方文檔上寄存器縮寫很多但常用的大體有六個CRL低8位引腳配置、CRH高8位引腳配置、IDR輸入數(shù)據(jù)、ODR輸出數(shù)據(jù)、BSRR置位/復位、BRR復位。其中CRL和CRH負責引腳模式這是最需要仔細理解的寄存器。它們把每個引腳拆成4位一組其中MODE占低2位決定速度00是輸入模式01是10MHz10是2MHz11是50MHzCNF占高2位決定輸入輸出類型。注意MODE為00時是輸入模式這時CNF才有意義01表示浮空輸入10表示上拉/下拉輸入MODE非00時是輸出模式CNF的00表示通用推挽輸出01表示通用開漏輸出10表示復用功能輸出。這個位段的組合邏輯一開始容易暈。我建議只記兩個最常用的組合點燈用“通用推挽輸出50MHz”對應MODE0b11、CNF0b00合在一起就是4位二進制0011寫入CRL時左移引腳號乘以4的位置按鍵輸入用“上拉/下拉輸入”對應MODE0b00、CNF0b10合在一起就是1000。其余組合用到再查。再看ODR和IDR這兩個寄存器名字像功能正好相反。ODR是輸出數(shù)據(jù)寄存器你寫1對應引腳輸出高電平寫0輸出低電平IDR是輸入數(shù)據(jù)寄存器你讀它得到引腳當前電平。這兩個寄存器操作時都要小心ODR可讀可寫IDR只讀。調(diào)試GPIO時我會用調(diào)試器同時看這兩個寄存器的值對比一下就能判斷芯片有沒有真正輸出電平。BSRR和BRR是精簡操作的利器。BSRR的低16位對應“置1”高16位對應“清0”BRR只有低16位負責“清0”。它們最典型的優(yōu)勢是支持原子操作寫代碼時不需要先讀ODR再改某一位直接寫GPIOA-BSRR 0x0001就能讓PA0輸出高寫GPIOA-BRR 0x0001或GPIOA-BSRR 0x00010000就能讓PA0輸出低。這在做動態(tài)掃描、步進電機驅(qū)動這類需要極限壓縮時序的場景里特別重要。庫函數(shù)HAL_GPIO_WritePin內(nèi)部也不過是這幾條指令的封裝只是多了層邏輯判斷而已。2.3 一次完成點燈按鍵掃描的寄存器配置把上面幾個寄存器串起來寫一個簡單的點燈加按鍵程序就能把GPIO的寄存器操作完整過一遍。假設LED在PA0引腳按鍵在PB0引腳。第一步打開GPIOA和GPIOB的時鐘在RCC_APB2ENR里把IOPAEN和IOPBEN都置1也就是RCC-APB2ENR | (1 2); // 使能GPIOA時鐘 RCC-APB2ENR | (1 3); // 使能GPIOB時鐘注意這個寄存器地址不能整個覆蓋寫否則會把其他外設的時鐘位沖掉。用|最安全。第二步配置PA0為推挽輸出50MHz。因為PA0在低8位范圍內(nèi)用CRL寄存器。前四位對應PA0寫入組合0011正好左移0位GPIOA-CRL ~(0x0F 0); // 清空PA0的MODE和CNF GPIOA-CRL | (0x03 0); // 設置MODE0b11, CNF0b00第三步配置PB0為上拉輸入。同樣在CRL寄存器里PB0對應前四位配置組合1000就是MODE00、CNF10GPIOB-CRL ~(0x0F 0); GPIOB-CRL | (0x08 0); // MODE00, CNF10第四步寫主邏輯。一開始讓LED滅也就是PA0輸出低電平用GPIOA-BRR 0x0001。然后循環(huán)檢測按鍵PB0沒按下時讀到高電平因為上拉按下時讀到低電平while(1) { if((GPIOB-IDR 0x0001) 0) { GPIOA-BSRR 0x0001; // 按鍵按下點亮LED } else { GPIOA-BRR 0x0001; // 松開熄滅LED } }這段代碼雖然簡單但已經(jīng)把讀輸入、寫輸出、位段配置、時鐘使能全跑了一遍。我建議新手在開發(fā)板上真正運行一下然后故意改錯一個位段比如把CRL配置改成浮空輸入看看現(xiàn)象怎么變化測試過程中記憶會深很多。我當時就是這么干的比單純對著手冊背位定義舒服多了。3. 三個高頻外設的寄存器實操串口、定時器、ADC3.1 USART串口波特率計算與中斷收發(fā)串口是工控、調(diào)試、通信的基本手段也是很多人轉(zhuǎn)寄存器操作時跨不過去的第二道坎。它的寄存器名稱看著多但核心就幾個SR狀態(tài)、DR數(shù)據(jù)、BRR波特率、CR1控制1、CR2控制2、CR3控制3。其中CR1管總開關和字長、收發(fā)使能CR2管停止位位數(shù)BRR用手動算波特率。波特率計算是第一個容易翻車的地方。STM32的USART波特率公式是波特率 外設時鐘 / (16 * USARTDIV)其中USARTDIV是一個定點數(shù)整數(shù)部分和小數(shù)部分分別存在BRR寄存器的不同位段里。舉個例子如果掛在APB2上的USART1工作時鐘是36MHz想得到115200波特率計算過程是USARTDIV 36000000 / (16 * 115200) ≈ 19.53125 整數(shù)部分 19寫成十六進制是 0x13 小數(shù)部分 0.53125乘以 16 得到 8.5四舍五入取 8 BRR 寄存器值 (0x13 4) | 0x08 0x138注意這個計算里小數(shù)部分乘以16是因為BRR的低4位表示小數(shù)的4位二進制精度實際近似值會帶來一點點誤差一般通信完全夠用。但如果你不把公式搞清楚直接把別人初始化的BRR值套用到不同主頻的芯片上就會得到亂碼或完全不通。我調(diào)試時遇到亂碼第一件事就是反推當前的BRR值對應多少波特率而不是瞎換波特率配置。CR1寄存器里和日常收發(fā)緊密相關的有幾位UE總使能、M字長選擇0表示8位數(shù)據(jù)1表示9位)、TE發(fā)送使能、RE接收使能、RXNEIE接收中斷使能、TXEIE發(fā)送空中斷使能。按照“先配波特率、再配模式、最后開總開關”的順序簡單輪詢收發(fā)可以這樣來USART1-BRR 0x138; // 寫入算好的波特率值 USART1-CR1 | (1 13); // UE1打開串口總開關 USART1-CR1 | (1 3); // TE1使能發(fā)送 USART1-CR1 | (1 2); // RE1使能接收發(fā)送一個字節(jié)的輪詢代碼如下核心是等SR里的TXE發(fā)送數(shù)據(jù)寄存器空標志置位while((USART1-SR (1 7)) 0); // 等TXE USART1-DR ch; // 寫入要發(fā)的數(shù)據(jù)接收一個字節(jié)類似等的是RXNE接收數(shù)據(jù)寄存器非空標志也就是SR的第5位while((USART1-SR (1 5)) 0); // 等RXNE ch USART1-DR; // 讀走數(shù)據(jù)如果想用中斷接收數(shù)據(jù)還得配置中斷控制器NVIC并且打開CR1里的RXNEIE。這個鏈路是嵌套的很多人中斷進不去最后發(fā)現(xiàn)是NVIC沒使能也有很多人NVIC使能了但中斷還是不進回去一看CR1里的RXNEIE根本沒置位。記住一個排查順序外設產(chǎn)生中斷標志 - 中斷能不能送到CPU由NVIC決定 - 進了中斷后標志靠軟件清除。三層逐層排除。3.2 TIM定時器PWM輸出從公式到寄存器定時器是STM32外設里最“有料”的部分也是寄存器最復雜的一部分。但日常生活里90%的定時器用法都能拆成兩個場景定時中斷和PWM輸出。就用這兩個場景把常用寄存器串起來。先看定時中斷。定時器的核心骨架是PSC預分頻器、ARR自動重載寄存器、CNT計數(shù)器。PSC、ARR都帶一個“1”的隱藏規(guī)則寫0時實際分頻是1。假設定時器輸入時鐘是72MHz想讓定時器以1kHz頻率進入更新中斷計算公式是定時頻率 定時器時鐘 / ((PSC 1) * (ARR 1))如果選PSC71那么定時器時鐘先被分頻成72MHz / 72 1MHz也就是計數(shù)器每1微秒加1再設ARR999說明從0加到999一共1000次正好1毫秒一次更新。這樣寫配置TIM2-PSC 71; // 預分頻值 TIM2-ARR 999; // 自動重載值 TIM2-CR1 | (1 0); // CEN1啟動計數(shù)這個“1”的設計是新手最容易忽略的坑。曾有人想得到1MHz計數(shù)頻率結(jié)果PSC直接寫了7199ARR寫了9999計數(shù)器慢得出奇最后發(fā)現(xiàn)忘了把公式里的“1”算進去。計算時多停兩秒把PSC、ARR關系捋一遍就能省去半天排查時間。定時器的更新標志在SR寄存器里的UIF位CEN位于CR1寄存器。如果開了更新中斷還得去DIER寄存器把UIE中斷使能打開。清標志的方式是寫0但STM32的更新標志是硬件清除你讀SR之后UIF會自動清除這個可以不糾結(jié)跟著程序跑一次就有數(shù)了。再看PWM輸出。PWM的本質(zhì)是計數(shù)器不斷從0加到ARR同時有個比較寄存器CCR當CNT小于CCR時輸出高或低大于CCR時翻轉(zhuǎn)。這樣ARR決定周期CCR決定占空比。PWM相關的寄存器主要有CCMR1配置通道1、2的模式、CCER輸出使能和極性、CCR1比較值。以TIM2的通道1為例輸出頻率2kHz、占空比50%的PWM可以使用前面算好的PSC和ARR組合再設置CCR1為ARR的一半。TIM2-PSC 71; // 1MHz計數(shù)頻率周期2kHz就是ARR1500 TIM2-ARR 499; TIM2-CCR1 249; // 50%占空比 TIM2-CCMR1 | (0x6 4); // 通道1設為PWM模式1 TIM2-CCER | (1 0); // 使能通道1輸出 TIM2-CR1 | (1 0); // 啟動定時器其中CCMR1里的OC1M位段占bit4到bit60b110就是PWM模式1。CCER的bit0是CC1E輸出使能。這兩行非常關鍵我見過很多PWM不輸出的案例寄存器查到最后就是CCER里沒有置位輸出使能或者GPIO沒有配置成復用推挽輸出。另一個常見問題是引腳配置PWM輸出通道往往需要把對應引腳設為復用功能如果當成普通推挽輸出信號就只能在內(nèi)部打轉(zhuǎn)測不到波形。3.3 ADC采集序列、采樣時間與數(shù)據(jù)讀取ADC寄存器是很多人又愛又恨的部分。愛的是配置步驟有固定模版恨的是位段太多尤其是規(guī)則序列相關的SQR寄存器一長串下來看不清誰是誰。但拆開看其實就三條線配置觸發(fā)方式、編排采集序列、設置采樣時間。先說觸發(fā)和開關。ADC的CR2寄存器里ADON位是ADC總開關第一次置1是上電第二次置1是啟動轉(zhuǎn)換這個“兩次才行”的特性經(jīng)常讓人一頭霧水。如果你用了SWSTART軟件觸發(fā)位可以等ADC上電穩(wěn)定后直接操作啟動轉(zhuǎn)換。示例順序是ADC1-CR2 | (1 0); // 開啟ADC // 等待穩(wěn)定 ADC1-CR2 | (1 0); // 再次置位讓轉(zhuǎn)換開始 ADC1-CR2 | (1 22); // SWSTART1啟動規(guī)則通道轉(zhuǎn)換這種“同一位置兩次置1”的現(xiàn)象本質(zhì)是不同狀態(tài)下的相同寄存器位產(chǎn)生不同作用看數(shù)據(jù)手冊時會發(fā)現(xiàn)ADON的解釋里明確寫了“首次寫1讓ADC上電之后寫1啟動轉(zhuǎn)換”。所以遇到不認識的行為先翻手冊看位功能的詳細描述不要憑感覺。編排序列是ADC配置里最繞的一步。規(guī)則通道轉(zhuǎn)換需要一個序列這個序列長度由SQR1里的L位決定轉(zhuǎn)換順序由SQR1、SQR2、SQR3里一組組的通道編號決定。每次轉(zhuǎn)換從序列的第1個通道開始依次往后。比如要依次采集通道0、通道1、通道2一共三個通道那么L寫2代表序列長度減1也就是總共3個轉(zhuǎn)換SQR3的低5位寫0第一個轉(zhuǎn)換選通道0接下來5位寫1再接下來5位寫2。這樣一組范圍可以排列通道靈活度極高但排查時也最容易看花眼。采樣時間寄存器SMPR2主要影響轉(zhuǎn)換速率和精度。每個通道可以配置不同的采樣時間采樣時間越長采樣電容充電越充分數(shù)值越穩(wěn)定但轉(zhuǎn)換也越慢。實際開發(fā)里采集普通電壓信號我一般用1.5周期采集高阻抗信號源或噪聲較大信號時可以選擇更長的時間有些項目里噪聲導致讀數(shù)跳變改完采樣時間后跳動幅度立刻小了很多。讀取轉(zhuǎn)換結(jié)果用ADC_DR數(shù)據(jù)寄存器。單通道情況下某個通道的結(jié)果就存在這個寄存器里。如果啟用了DMA搬運數(shù)據(jù)會按序列順序依次搬到內(nèi)存數(shù)組。這里有個經(jīng)驗別直接在中斷里輪詢讀AD值尤其轉(zhuǎn)換速度高的時候會占用大量CPU直接用DMA把序列里每次轉(zhuǎn)換結(jié)果自動搬到內(nèi)存CPU再統(tǒng)一取用效率完全不同。4. 中斷體系NVIC與EXTI的完整鏈路4.1 EXTI外部中斷的觸發(fā)配置外部中斷EXTI是按鍵、傳感器信號、編碼器這些場景里天天用的功能。它的寄存器配置鏈路比串口中斷多一個環(huán)節(jié)。你必須先通過GPIO復用功能映射把某個引腳連接到對應的EXTI線然后配置EXTI本身的觸發(fā)邊沿、屏蔽使能和掛起標志最后還得在NVIC里使能對應的中斷通道。很多第一次寫外部中斷的新手上來只配置GPIO和NVIC結(jié)果中斷完全進不去。原因就是少了AFIO的復用映射這一步。不同端口引腳要選定一條EXTI線比如PA0和PB0都對應EXTI0但同一時刻只能有一個引腳映射到EXTI0。在STM32的很多系列中這個選擇由AFIO_EXTICR1寄存器決定EXTI0的低4位選0對應PA0選1對應PB0。完整的外部中斷配置順序可以按下面這個思路走// 1. 使能外設時鐘包括GPIO、AFIO RCC-APB2ENR | (1 2); // GPIOA時鐘 RCC-APB2ENR | (1 0); // AFIO時鐘 // 2. 配置PA0為輸入模式MODE00、CNF10上拉輸入 GPIOA-CRL ~(0x0F 0); GPIOA-CRL | (0x08 0); // 3. 選擇EXTI0源為PA0EXTICR1的bit0~bit3寫0 AFIO-EXTICR[0] ~(0x0F 0); // 4. 配置EXTI0觸發(fā)方式為下降沿EXTI_FTSR置位 EXTI-FTSR | (1 0); // 5. 打開EXTI0中斷屏蔽EXTI_IMR置位 EXTI-IMR | (1 0); // 6. NVIC使能EXTI0中斷通道 NVIC_ISER | (1 6);這個鏈路每一步都不可或缺。特別注意EXTI掛起標志的處理進入中斷后你必須向EXTI_PR寄存器的對應位寫1來清除標志否則中斷會不停觸發(fā)程序一直卡在中斷里。我踩過一次很深的坑清了掛起標志但忘了配置觸發(fā)邊沿為下降沿結(jié)果按一次鍵中斷連續(xù)進來好幾次最后發(fā)現(xiàn)觸發(fā)沿配錯了電平抖動加觸發(fā)方式不正確導致一次物理按鍵觸發(fā)了多個軟件事件。4.2 NVIC優(yōu)先級分組避免“中斷打架”NVIC是中斷控制的核心。很多人只會在初始化里添加一句HAL_NVIC_EnableIRQ但對它背后的分組邏輯毫無概念。實際上NVIC把中斷優(yōu)先級分成搶占優(yōu)先級和子優(yōu)先級兩部分具體怎么分取決于優(yōu)先級分組配置。優(yōu)先級分組通過系統(tǒng)控制寄存器里的PRIGROUP位段設置。常見的分組方式下有些能提供最多16級搶占優(yōu)先級有些提供8級搶占加2級子優(yōu)先級有些只提供2級搶占加4級子優(yōu)先級。搶占優(yōu)先級高的中斷能打斷搶占優(yōu)先級低的中斷而子優(yōu)先級只能在搶占優(yōu)先級相同的情況下決定先后順序不能實現(xiàn)打斷。組合實際開發(fā)時踩過的場景一個項目里串口接收中斷和高優(yōu)先級的外部中斷同時發(fā)生如果配置不當串口處理還沒完成外部中斷來了又或者外部中斷持續(xù)占用CPU串口數(shù)據(jù)接收處理被無限拖延。解決方式是把外部中斷搶占優(yōu)先級設高把串口中斷設低并確認串口的中斷處理程序里沒有長時間阻塞操作。配置NVIC優(yōu)先級還涉及一個容易忽略的問題系統(tǒng)啟動后默認的優(yōu)先級分組可能不是你想要的那一種。如果你沒有顯式設置分組直接配置單個中斷的優(yōu)先級值結(jié)果可能和你預期的完全對不上。我建議在系統(tǒng)初始化時最先明確設置優(yōu)先級分組再逐項使能各個中斷通道。另外中斷處理函數(shù)里盡量不要做太多操作。我見過有人把大量數(shù)據(jù)處理、甚至延時函數(shù)直接寫在中斷里導致主循環(huán)卡死或者數(shù)據(jù)覆蓋。寄存器代碼里尤其要注意中斷服務程序盡快做必要的標志清除和數(shù)據(jù)保存其余工作交給主循環(huán)處理這個原則比學會配置NVIC更值錢。5. 調(diào)試排查常見坑與我的土辦法5.1 本人踩過的五個典型問題速查表做寄存器開發(fā)這些年我把反復踩過的坑整理成了一張速查表。每當項目出問題我都按這張表逐項排查節(jié)省了大量時間。這里直接分享出來很多細節(jié)不是芯片手冊會寫的是實打?qū)崪y出來的經(jīng)驗?,F(xiàn)象高概率原因排查/解決思路點燈不亮GPIO時鐘沒使能或CRL/CRH里MODE位寫成了輸入模式用調(diào)試器看RCC_APB2ENR和GPIOA_CRL確認時鐘位和模式位按鍵無效上拉配置錯誤或引腳復用了其他功能測IDR電平是否隨按鍵變化再看CRL的CNF位串口亂碼波特率計算錯、主頻和預設不一致、TX/RX接反反推BRR值核對實際串口時鐘檢查共地定時器不啟動CEN沒置1或時鐘源沒配置看CR1的bit0確認定時器時鐘來源和倍頻關系中斷不進NVIC沒使能、EXTI線映射沒配置、外設中斷使能位沒開三層逐級排查外設標志、EXTI/NVIC、中斷服務程序PWM無波形輸出使能CCER沒開、引腳沒設為復用輸出看CCER的CCxE位檢查CRL/CRH的復用配置這張表里的問題我基本都在實際項目里遇到過。特別是串口亂碼和設備偶爾進不了中斷這兩種情況折磨人程度極高但只要按表格里給的原因逐項自檢通常幾分鐘內(nèi)就能鎖定問題。5.2 排查通用心法從最小系統(tǒng)到逐級打印除了上面這些具體問題的排查更重要的是一套“排查心法”。我自己的習慣是從最小系統(tǒng)開始驗證再逐級擴大范圍絕不一開始就懷疑復雜時序。最小系統(tǒng)主要指“時鐘GPIO一個外設”。如果點燈程序跑不起來先別急著查串口、定時器那些外設而是確認系統(tǒng)時鐘是否正確。比如開發(fā)板外部晶振沒焊好振蕩器沒起來整個系統(tǒng)還跑在內(nèi)部RC振蕩器上時序基準全部偏移后面所有波特率、定時器周期都會錯。這種情況如果只看串口配置永遠找不到問題。其次是用調(diào)試器逐個看寄存器值。大多數(shù)入門級調(diào)試器都支持寄存器窗口打開就能實時監(jiān)控指定寄存器里的每一位。比如串口不通直接在寄存器窗口看SR寄存器里有沒有RXNE、TXE置位GPIO不出電平直接看ODR的值和CRL位段的配置。這種“看寄存器說話”的排查方式比在代碼里到處加日志快得多。逐級打印也有技巧。寄存器開發(fā)環(huán)境下沒有庫函數(shù)自帶的調(diào)試打印最簡單的是自己封裝一個串口發(fā)送字符串的函數(shù)關鍵節(jié)點打輸出。但注意別把打印放在中斷里會拖慢時序。我的習慣是在主循環(huán)里放一個標志變量一旦某段初始化完成就置位主循環(huán)檢測到標志后統(tǒng)一把狀態(tài)打印出來。調(diào)試時建議每次只改變一個變量。很多人排查問題時同時改了三處配置結(jié)果問題消失了但根本不知道是哪一處起效。這種做法會給你制造“虛假的安全感”下次遇到類似問題還是無從下手。我后來養(yǎng)成了習慣拿個本子寫下問題、假設、改動、結(jié)果逐條記錄效率反而比對著屏幕瞎試高。5.3 寫給剛轉(zhuǎn)寄存器開發(fā)的人如果你之前只寫過庫函數(shù)現(xiàn)在剛開始嘗試直接操作寄存器有幾個心態(tài)上的建議是我自己走過彎路后總結(jié)出來的。不要怕看芯片手冊。很多寄存器手冊看起來厚但常用寄存器的有效位就那幾頁。比如GPIO真正要用的寄存器不超過五個USART的收發(fā)配置核心位也不超過十多個。你可以把每個外設的常用寄存器位段整理成一頁筆記比自己臨時翻手冊快得多。我自己的筆記本里至今留著幾張這樣的“寄存器速查表”項目做多了反而比官方庫的文檔更順手。不要一上來就想把所有位段弄懂。優(yōu)先掌握每個外設的“初始化三步”和“工作標志位”比如GPIO的CRL配置、定時器的PSC和ARR、串口的BRR和SR標志。先把常見場景跑通再逐漸擴展到特殊功能位。調(diào)試時保持“只改一處驗證一次”的紀律。寄存器代碼和庫函數(shù)代碼不一樣庫函數(shù)的封裝幫你隱藏了很多細節(jié)而寄存器代碼幾乎每一步都直接映射到硬件行為這個特性既是挑戰(zhàn)也是優(yōu)勢你不僅能精確控制時序還能在調(diào)試器里直觀看清楚每一步的結(jié)果。利用好這個優(yōu)勢積累的經(jīng)驗會是平時調(diào)庫函數(shù)的幾倍。最后說一個我個人的習慣在每個外設初始化代碼塊的末尾加幾行讀取并校驗關鍵寄存器的操作。比如初始化完USART后讀一次BRR判斷是否等于預期值初始化完定時器PWM后讀一次CCMR1和CCER確認模式位和輸出使能位。這個習慣看起來笨但每次都能在問題蔓延之前抓住它省下的排查時間遠比多寫的這幾行代碼多。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
五月开心网| 久久精品中文| 国产AV无码AV| 人妻夜夜爽天天爽三区麻豆AV网站| 蜜臀久久久久久999| 日本一区视频在线观看| 青娱乐二区免费| 少妇第一页| 超碰亚洲97| 午夜影美女日鸡鸡天天视频国产| 精品久久久久久中文字幕视频免费| 麻豆福利视频导航| 色999人与兽| 黄色电影观看久久9| 色欧美亚洲| 无码人妻系列少妇| 国产精品视频在线播放| 欧美少妇内射| 爱爱动态试试看6 0秒| 成人片在线播放| 国产人妖视频一区在线观看| 尤物av网站免费在线播放| 日本最新1区2区3区| 丰满人妻一区二区三区免费,| 亚洲精品性爱片| 啊啊啊在线观看| 亚洲少妇视频| 日韩无码人妻中字久久三区四区| 97视频在线免费播放| 狠狠躁AV| 四虎影视在线| 欧美成人色| 亚洲最大黄网| 精品9区| xxx亚洲午夜天堂| 91neishe| 丰满少妇一区二区三区专区| 久久亚洲不卡一区二区三区| 免费成人在线熟妇网| 三级片大波波| 亚洲欧洲激情| 亚洲中文字幕久久无码精品| av2014 日韩在线中文字幕| 91丨人妻丨国产丨丝袜| 友优传媒精品在线一区二区| 84YTCOM性无码| 欧美中出| 第四色奇米影视777| 男女一进一出视频久久| 精品中文字幕一区二区l - 百度| 欧美日韩在线国产在线| 国产激情片在线观看| 日韩AV熟女乱伦| 国产亚洲精品第一最新| 色香色欲天天综合网天天来吧 | 亚洲日韩AV视色| 韩国久久97| 日韩无码嘿咻黑热久| 97超级久久强资源| 在线一区| 91亚州| 久久亚洲中文字幕视频| 亚洲欧美经典一区二区| 日韩啪啪啪啪啪| 99热免费| 亚洲色宗合| 九九无码| 欧美久久人人网| 97人人爱人人乐| 国产精品永久免费10000| 日韩熟女操逼| 大香网伊人久久综合网eew| 日本狂喷奶水在线播放212| 亚洲诱惑| 久久久A∨| 日韩在线地址一| 人妻人久久精品中文字幕| www.91久久| 日韩欧美午夜一区二区| 78精品在线| 欧美激情亚洲色图| 操逼日韩无码| 欧美性爱中文字幕无线码| 天天干夜夜操一区二区| 亚洲av热热色| 国产suv精品一区二区四区999| 少妇啪啪自拍| 精品久久久久久中文字幕视频免费| 亚洲日韩XXX| 天天综和| 国产女同性恋视频| 又大又黄国产| 亚洲中文字幕妇伦久久| 五月花婷婷| 日韩激情啪啪| 国产一级αv免费看片| 综合另类| 亚洲AV麻豆Aⅴ无码电影一| 亚洲色诱惑| 美腿色图| 五月婷婷激情| 九九av| 乱欲一区二区| 情色五月天网| 亚洲精品99999| 日躁天天爽爽| 免费观看性欧美一级| 综合五月婷婷亚洲一区| 综合五月婷婷亚洲一区| 亚洲图片激情小说| 青青草原伊人网| 狠狠狠狠狠干| 色色毛片| 亚洲蜜桃V妇女| 人妻91少妇| 欧美一二三区四五区| 日本大片日本一区二区免费高清| 激情小说五月天| 韩国女主播青草福利视频| 蜜桃精品一区二区三区ww| 翘臀vidoes| 蜜桃在线观看一区二区三区 | 白天啪啪晚上啪啪视频| 日本免费一级AAA大片器| 丰满人妻av一区二区三区| 色五月综合网| 欧美丝袜激情| 亚洲交性| 欧美性爱无码一区二区三区| 综合久久中文字幕综合日韩精品| 97精品国产97久久久久久| 超碰1024久久| 后入国产| 国产高潮AA片免费看| 91人人看| 骚日日av| 亚洲暴力强奸AV| 欧美色图私拍91| 97超碰伊人| 国产传媒操逼视频| 久久本道| 婷婷丁香人妻| 在线看免费无码AV天堂的| 强上我不卡卡| 亚洲毛片一级带毛片基地| 欧美亚洲玖玖玖| 亚洲爱爱视频一区二区| 伊人热综合| 国产精品久久久午夜夜伦鲁鲁| 亚洲色偷偷色噜噜狠狠99网| 和协无码影院| 亚洲熟妇丝袜在线观看| 欧美在线55555| 香蕉黄色一级视频| 亚洲第一无码播放立川理惠| 欧美国产精品久久九九| 超碰95| 国产超碰国产97| 色香在线| 国产视频一区二区三区久久亚洲天堂| 日本一区二区三区精品| 99这里只有精品国产| 97中文字幕九区| 被窝影院午夜看片无码| 91丨九色丨国产打屁股| 青青草依人大香蕉| 玖玖色综合| 精品人妻一区二区三区在| 日韩天美| 亚洲精品毛片在线观看| 亚洲极品| 一区二区三区四区姦女| 久久av成人无码免费| 色777999综合| 97超碰69| 亚洲偷拍自拍在线视频| 亚洲中字幕日本一区二区三区| 动漫区日韩区欧美区| 激情久久av一区av二区av| 综合网 欧美| 欧美 日韩 婷婷 五月| 婷婷久久网| 翔田千里AⅤHD无码| 亚洲在线综合| 色综合20p| 人人乐大香蕉| 久久亚洲av成人无码国产| 午夜国产成人精品视频| 青青草在线视频美女| 国产suv精品一区二区四区999| 色欲蜜臀AV| 一级性爱视频免费观看| 91国产丝袜白虎| 欧美 综合 亚洲| 天天日B狠狠操| 日本三级A片网站com| 91亚州欧美| 亚洲二区精品在线观看| 无码区蜜乳| 青青草无码视频| 日产123区精品免费观看| 成人熟女区| 国模久久在线| 熟女熟妇一区二区三四区| 激情综合 婷婷五月 红杏| 久久久穴999| 人人操人人插人www| 男人天堂2030| 国产一级αv免费看片| 熟妇人妻精品一区二区| 999久久久精品国产| 欧美一区二区观看在线| 国产视频一区二区免费| 国产无码一二三区| 综合一区中亚洲国产成人综合精品| 色五天伊人| 久久社区一区二区三区| 中国一区二区亚洲人妻| 免费毛片在线播放| 国产11页| 亚洲激情 欧美色图| 欧美激情色婷婷花野真衣一区二区| 日本东京热大香蕉a片| 九九九热精品| 东京热男人的天堂| 老司机深夜18禁污污网站| 亚洲国产av中文字幕久久| 欧美日韩 强奸乱伦| 99热超碰| 国产av热热色| 欧美性性性| 1人人看人人摸人人操| 一起草精品人妻| 精品女人999| 亚欧美色图| w w w.久久精品| 亚洲黄色a级片| 99久久这里只有精品| 97超级色碰碰| A一区片| 亚洲欧美成人在线| 久久久久久9999| 一区二区三区 丝袜 高跟 美腿| 玖玖久久久| 久久免费少妇| 成人a大片在线观看| 欧美老妇曰批的视频| 亚洲最大的综合性av| 蜜臀AV成人精品蜜臀AV久久| 国产精品第一区第一页| 九月AV| 丁香七月婷婷| 麻豆国产第一| 亚欧性爱无码| 男人天堂婷婷五月天校园春色| http://qxhbdz.com| 亚一综合久久久久久久久久| 搡老熟女免费视频 | 亚洲第一色页夜| 又大又白奶子| 在线国产一区二区av| 久久中文字幕人妻熟av女蜜柚| 精品一区二区成人| 999久久久久久久精| 久久免费少妇| 免费看污网站| AV麻豆免费一区| 午夜福利久久久噜久噜久久综合| 蜜臀视频网站| 啊好大好舒服| 天天操夜夜操狠很操| 亚洲天堂人人妻| 黄片com.| 久午视频| 欧美综合在线91| 国产激情av女片自拍| 欧美日韩妖精91com| 中文字幕一区av| 黄片视频,下载| 999九九精品| 亚洲色图欧美一区二区不卡| 亚洲天堂,男人| 日韩综合色图| 亚av顶级裸体一区二区三区四区五区| 26uuu国产成人综合| 一本色道人妻久久| 东京成人一区| 天天天天操| 一级黄色视频网| 女色综合| 91美女视频电影| 亚洲日本韩国极品一区二区| 秋霞无码av鲁丝片一区| 后入式免费视频| 四虎影视永久在线观看精品免费网站 | 9l视频自拍9l九色成人| 在线国产一区二区av| 亚洲精品人伦一区二区| 91爽啪| 欧美洲精品一级| 亚洲无992tv| 一二三四区电影| 加勒比海成人视频网| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 国产11页| 九九综合九九综合| 久9精品| 日韩97P| 亚洲天堂资源| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 最近二区三区视频大全| 国产黑白丝在线| 久操| 五月天AV资源| 日1区2区3区2020| 伊人宅男大香蕉| 国产超碰97| 性色高清..……| 国产女主播视频在线观看| 十八禁一区二区无码观看| 日韩78m视频| 亚洲天堂美臀在线| 黄页网站成人免费| 99av| 久操操AV电影| 激情综合网五月婷婷五月天| 岛国成人av在线播放网址| 黄色av一区二区在线| 成人午夜视频免费播放| 先锋精品av色鲁| 色哟哟-国产专区| 久久人妻少妇| 久久久一区二区三区麻豆| 另类图片综合| av无线看| 中文欧丝袜诱惑| 少妇淫妇久久久久久久| 少妇熟女1区2区3区| 久久91精品国产9丨久久分亭 | 天美国产三级传媒| 超碰1997| 激情av| 91九色丨风韵犹存| 在线视频 亚洲精品| 国产精品夜夜夜| 国产精品另类一区大香蕉| 欧美91久久久久| 婷婷视频在线免费观看| 人妻少妇精品久久久| 青青草久草| 长长久久曰曰夜夜成人网| 啊啊啊不要啊啊受不了了视频在线| 精品人妻一区二区蜜桃视频| 91伊人久| 五月婷丁香| 日韩乱码Av| 久久riav中文精品| 日本视频在线中文字幕| 97精品国产97久久久久久| 私色综合网| 婷婷在线视频| 欧美另类天堂| 人妻日日干| 欧美日韩婷婷中文| se吧提供国产乱老熟视频胖女人| 青青草日韩无码| 午夜传煤十二区精品| 91色色色| 97欧美在线| 一区黄二区黄| 欧亚性爱在线视频| 欧美A√综合网| 熟妇的味道HD中文字幕| 伊人国产视频| 玖玖玖玖精品国产剧情| 欧美日韩制服| 午夜男人天堂| 一级aaaaa欧美中文字幕录像片| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 九九九国产精品| 五月丁香婷婷综合网| 抽插亚洲无码| 宗合情欲网| 成年人一级黄色毛片大全在线观看| av亚洲天堂资源网站| 两性色网| 97超碰超碰| 青草视频人妻在线观看| 国产67194| 夜夜草天天| 欧美天天在线| 日韩天堂av电影在线观看| 大香蕉一区二区在线观看.| 少妇激情AV| 亚洲综合九九| 插入逼91| 国产夜夜操| 男人天堂资源| 久久久久久91香蕉国产| 曰韩成人免费视频| 91天天综合日韩欧美| 久久久久白虎| 狠日操| 欧美亚洲玖玖玖| 丁香六月婷婷久久综合| 伊人久久亚洲色欲综合网站 | 国产亚洲精品自在线亚洲情侣| 中亚黄色三级大片 | 日韩视频精品在线观看| 麻豆天美国美国产| 精品免费囯产一区二区三区| 被操高清无码视频| 乱色视频中文字幕| 九九夜精品九九在线| 蜜桃传媒视频第一区入口在线看| 91黑丝美女| 色娱乐色呦呦夜夜夜夜av| 久久精品国产亚洲5555| 国产99久久99热这里只有精品15| 激情第四色| av一区二区三区 中文| 精品亚洲| 中日韩免费看男女操逼大全| 中文字幕一区二区三区人妻不卡| 我想要啊 啊 啊| 蜜臀99久久精品久久久久久| 九九av| 婷婷美人网| 久久成人午夜狠狠| 91操熟女视频| 欧美狠狠| 欧亚成人| 欧美色婷婷| 久九干| 超碰夫妻97| 97超级色碰碰| 好爽视频在线观看视频| 日韩福利综合一区| 91社区拍啪人妻| 91蜜臀熟女| 久草在| 极品人妻少妇综合| 在线播放成人高清免费视频 | 一个人免费视频观看在线WWW| av爱爱爱| 人妻22p| 99久久综合| 色欧美色交综合| 超碰精品日韩欧美国产| 激情五月天社区| 欧美日韩淫加| 日韩综合97p| 思思热国产在线视频| 337p大胆噜噜噜噜噜91Av| 久久綜合很很很| 亚洲乱妇p22| 久久久久久精品免费看A级| 欧美三级一级| 欧美在线亚洲| 成人免费视瓶| 亚洲熟久久| 风月影院男女十八禁| 公司1区2区3区精产精| 操淫穴亚洲五月丁香 | 国产成人综合网| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 十八禁电影伊人网| 色爱国产| 国产精品香蕉热久久新品| 午夜噜噜噜| 超碰久在线天天做| 精品视频免费在线一区| 1024久久高清视频| 99精品国产户外露出| 97色操| 午夜天天碰综合视频| 99re公开精品免费视频| 校园春色亚洲色图| 久久二| 亚洲欧美日韩中文久久自慰| 午夜人人操| 亚洲中文字幕噜噜噜久久久| 欧美一区二区亚洲天堂| 日韩综合97P| 亚洲欧美日韩精品久久久一区二区 | 91老熟女| 亚洲欧洲精品成人| 国产一区自拍欧美日韩| 九九九九九九九| 色色综合网站| 午夜国产综合视频在线观看| 国产精品欧美激在线| 香蕉久久AⅤ...| 亚洲日韩97| 日本三级人妻a人妻一在线| 国产AV色黄看到爽| 97欧美日韩精品| 91原创在线观看| 秋霞曰韩R级| 性综合网| 精品少妇一区二区三区| 欧洲乱码一区二区| 亚洲女毛多水多21P| 99无码| 高精欧美色| 欧美一二三区四五区| 亚洲av强奸乱伦| 国产日韩手机视频在线| 大香蕉视频啪啪啪啪| 男人天堂综合| 91 在线亚洲| 性爱av网站| 国产欧美日韩一区二区三区| 风间由美日韩欧美久久| 中文字幕综合人妻| 神马午夜久久久| 亚洲欧洲视频小说在线观看| 尤物一级在线免费观看| 色天使亚洲综合在线观看| 国产激情视频一区区三区| 亚洲超碰AV| 国产激情av女片自拍| 亚洲和欧美裸体美女双飞视频| 殴美日韩m| 中文字幕人乱码中文字的预防方法 | 91AV天美在线视频| 91精品久久久| 亚洲老司机123专区| 成人97人人超碰人人| 免费农村成人少妇人妻Aa一区二区视频| 97在线免费看视频| 亚州再线| 日韩欧美国产高清视频| 干超碰碰熟女| 亚洲和欧美裸体美女双飞视频| 亚洲无吗在线视频| 粉嫩久久久极品| 国产日比| 色欲三区| 99热这里只有精品1| 五月婷婷激情综合| 无码最新| 欧美日韩国产精品久久色婷婷| 九九探花视频在线观看| 大香蕉一级黄色片久久| 少妇国产不卡| blacked精品一区国产| 国产成人天堂| 久久亚洲av成人无码国产| 亚洲精品99999| 偷拍在线观看视频| 91国产精品在线看| 很黄很色的视频在线观看| 97超色| 国模一区二区三区| 日韩美女操b| 伊人超碰97| 亚洲视频二区 | 欧美日韩222| 亚洲成av人片色午夜乱码| 黄色操人| 国内毛片热久久思思热| 精品一区二区三区免费古装毛片香港三级日本三级人妇 | 少妇综合| 超碰九7| 欧美九九九| 九九九九九九九九九九精品视频| 宅男91视频在线播放| 人妻啊啊人妻啊啊| 婷婷五月天_亚洲小说欧美激情另类_精品久久国产字幕 | 欧洲熟妇xxXx欧美老妇裸体| 全球成人中文在线| 四虎影院成年人片| 夜嗨影院| 日韩欧美字幕亚洲一区二区 | 99.色网| 亚洲另类综合欧美| 精品91摸| 99re在线观看| 色眯眯av| 亚洲欧美另类小说| 国产精品爱欲| 全球成人中文在线| 黄页大片在线观看| 欧美在线中M| 午夜操操操| 97狠狠| 亚洲蜜乳av| 俺去也婷婷| 又黑又大又粗| 成人十八禁日韩欧美一二三| 老鸭窝黄色视频网站| 亚洲电影91| 激情婷婷黑人91| 欧美美女视频| 三级AV入口| 国产极品一区二区三区三州| 亚洲天堂区| 极品粉嫩少妇视频| 超碰吊日色| 日本乱人伦片中文三区| 亚洲九月丁香| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 亚洲一区日韩精品中文字幕 | 国产一级特黄大片处女| 亚洲天堂 视频你懂的| 欧美日韩国产电影| 一级AV性爱| 啪啪啪综合网| 久久久久9| 看全色黄大色大片免费视频| WWW黄片COM| 亚洲大胆人体av| 国产又黄又粗的视频| 婷婷丁香五月激情啪啪| 最新av在线| 国产又粗又大硬免费色网视频| 3028国产精品| 日韩精品9区| 精品久久久久久AV无码| 日韩久久艹| 中文字幕AV乱伦| 天天爽夜夜欢视| 91人妻在线视频| 97干在线| 国产精选视频| 夜夜操2028| 黄页av| 色999人与兽| 精品一区二区三区免费古装毛片香港三级日本三级人妇 | 伊人久久大香蕉线AV五月天| 8x福利精品第一福利视频导航| 蜜桃视频精品一区二区三区| 免费自拍三级综合| 丰满少妇精品一区二区| www久久久| 清纯唯美亚洲综合| 中 文字幕一区二区三四 五 区日 日 骚 | 欧美激情精品久久久| 欧美午夜一区二区三区| 久久老女人| 欧美人妻中出| 淮穴色AV| 自拍视频一区在线观看| 黄页网站成人免费| 中文字幕91综合| 性色av网站| 亚洲无码 国产无码| 91女优在线观看 | 97国产色综合| 精品在线观看视频在线| 热思思免费视频| 亚州精品人妻一二三区| 欧美夜色| 级品肉射| 亚洲男人的天堂网| 热久久国产精品视频大陆精品| 99热精品在线播放| 韩国成人精品久久久免费看| 精品人妻中文字幕高清| 少妇高潮九九九九九九九| 国产成自自拍在线观看| 九九九九久久久| 国产欧美日韩精品中文| PMv在线观看| 欧美少妇人妻| 色九九久九九| 东北熟女91| 亚洲男人天堂2017| 东京热毛片调教| 国产精品午夜福利视频| 亚洲男人天堂2016| 清清草影| 91色堂| 嗯嗯嗯啊啊啊干死我吧| 操逼999| 男女性扦B| 亚洲做性| 亚洲另类春色| 久久东京伊人一本到鬼色| 亚洲暴力强奸AV| 色综合色| 九热大香蕉| 九九九九免费视频| 日韩免费中文字幕视频| 亚洲国产ⅴ高清在线观看| 8050无码八戒| 欧美亚洲玖玖玖| 另类av天堂| 91成人久久| 啊啊啊啊嗯嗯在线久久久| 日韩欧美三级| 欧美性爱第1 页| 日本成人A片网站| 97人人草| 九九九九免费高| 中文字幕蜜乳av| 岛国网址国产| 97国伦国色| 色色97爱| 久久一级无码精品毛片6| 色欧美天天| AV在线资源| 国产精品96| 思思热在线观看| 后入式999| 国产精品ⅴ无码大片在线看.| 91五月天| 色欲无码人妻日韩欧美精品| 久久久久少妇| 色婷婷导航| 中日韩久久人妻一区二区| 国产97综合| 隔壁邻居波多野结衣中文字幕| 丁香六月激情综合| 啊啊啊骚| 色色色综合网| 变态综合色| 在线看免费无码AV天堂的| 免费97视频| 午夜福利免费精品视频| 青青草字幕AV| 久久亚洲AV成人精品无码| 精品国产国产AV| 免费?级毛片无码?∨蜜芽试看| 伊人久久大香线综合无码| 亚洲97成人在线观看| 成人网欧美风情| 国产精品一区av在线| 欧美在线 亚洲| 99re视频在线观看这里只有精品| 蜜臀中文无码午夜| 发朗少妇买婬全视频中文| 国产精品一区在线播放| 亚洲超碰在线| 亚洲欧洲自拍图片专区满春格| 香一区二区三区| 日本东京热久久久电影| 精品中文日韩字幕视频| 超碰人人干| 97色碰| 99蜜月精品久久| 青娱乐av在线| 國產尤物AV尤物在線觀看| 欧美性高潮| 嗯嗯嗯不要不要免费视频| 91精品国产高清久久久久久,亚洲成人 | 人妻丰满熟妇一区二区三| 福利五区| 欧美性爱一区| 精品国产网站| 国产欧美精品日韩区二区麻豆天美| 久久久久久久久久久免费精品| 欧美日韩妖精91com| 91美女色视频亚洲| 日韩AV色图| 久久久久国产精品片区无码直播| 人妻一区二区三区四区视频| 伊人久日| 亚洲精品蜜桃久久久久久久| 青青网三级视频| 日本日皮视频逼| 五月丁香六月综合缴清无码| 清纯唯美综合| 91bbbbbb| 99999精品| 亚洲欧美碰碰| 97资源亚洲| 精品人妻一区二区三区免费视频| 97欧美色| 中国和日本人色哪个不下载能放| 东北操逼| 日韩特一级久久| 97操在线| 无码人妻系列少妇| 99后入| 桑老女人九区| 国产精选视频| 日本淫乱女一区二区三区视频| 97干在线| av天堂天堂av日韩| 日韩一级片在线看| 色情五月婷婷| 久久曰曰| 欧美在线天堂| 人妻人人做人人澡人人爽欧美一区| 亚洲欧洲综合成人av一区| 国产精品露脸在线观看| 国产一区二区a毛片| 久草网站免费在线观看| 入口操逼网站| 青青草原人妻| 久男人久久| 天天日天天干天天操| 国产操伦| 天天弄天天操| 视频在线观看青青99国产| 你懂的在线观看区国产| 九九热最新| 黄色十八禁| 熟妇乱伦一区二区| 久久一区二区三区入口| 91亚·色| 亚洲图片偷拍欧美| 人人性爱视频免费| 色色丁香| 日日97| 无码日韩网站| 久久人妻少妇| 97国产高清视频在线观看| 五月天久久婷婷亚洲| 中国一级αV| 天天影视激情欧美| 久久精品| 曰韩欧美国产传媒麻豆第一区| 999熟女精品| 亚洲精品一区二区精品| 色哟哟国产精品免费网址| 欧美色涩| 一区 欧美 日韩 麻豆| 青春草莓视频在线观看网址| 中文字幕91综合| 夜夜草天天| 狠狠色一区二区中文字幕| 无码免费在线观看黄色片| 久久久久久久久久久97| 亚洲一区在线观看欧洲 | 东方亚洲在线操逼天堂| 亚洲九九九九| av毛片aaaaa免费看| 亚洲欧美一区二区三区一猛片| 婷婷日韩一区二区三区中文字幕在线| 久久久久无码一妻区| 国产精品视频91久久| 青青草日本无码| 久久香蕉国产线看观看亚洲女人| 综合欧美日韩在线观看| 精品乱码久久久久| 久久久久久人妻一区精品色欧美| 亚洲欧美中日韩| 成年人黄色| 亚洲精品丝袜-不卡成人免费……| 亚洲狠狠入| 亚洲各类熟们中文字幕| 尤物视频新赏网鲜网色诱网| 免费黄色A片| 人妻喷水| www色色com| juliaann欧美丝袜办公室| 操婷婷逼| 亚洲 在线| 亚洲AV小说| 久久只有精品| 男人的天堂2018.| 日本性感人妻91| 中文字幕久久精视频久久大全| 人人看人人插| 素人无码中文字幕| 日韩午夜精品一区二区三区电影| 大香蕉日亚洲日本亚大| 99re国产中文字幕| 男人的天堂va| 综合亚洲情色| 啪一啪免费视频| 亚洲情色 自拍| 久久人人妻| 五十路六十路七十路熟婆| 天天操美美| 91精品丝袜在线观看| 久久岛国| AV丝袜少妇| 色色色色电影网| 欧美日韩1234| 欧洲精品网| 超碰免费在线| 老熟女乱伦一区| 91激情国产| 日本曲间由美性生活片| 在线观看高清AV| 密臀国产在线| 亚洲综合在线高清| 国产精品无码论坛| 久操精品| 久久一本大香蕉 | 五月丁香婷婷综合| 中文字幕蜜乳av| 99热18这里只有精品| 蜜臀久久一区二区| 日日摸夜夜夜夜爽| 九热中文字幕| 日韩国产九九精品一区二区三区毛片| 日日狠狠久久偷偷色综合免费| 翔田千里爆乳巨臀无码| 欧美日韩系列| 亚洲熟妇熟在线电影视频| 中文字幕在线观看二区三区| 久久性爱视频免费看| 青青草一区二区三区四| 91天堂视频| 天天流夜夜操| 亚洲一区二区三区欧美日韩| 日本东京热久久久电影| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 天天看高清麻豆| 深夜操逼网| www黄片免费看com| 成人26uuu| 久久久久久久久久9| 天天日骚逼熟女| 日本蜜桃| 美日韩在线不卡人妻| 91国产精品在线看| 人人爱人人操人人性| 中文字幕精品一区二| 欧美在线天堂| 欧美 日韩第一性色| 日韩操呦呦影院在线观看| 大稥蕉免费视频这里只有精品| 欧日a| 五码视频在线观看| 97超碰中文在线| 青青草依人大香蕉| 欧美性五月| 欧美日韩天堂| 97在线观看免费视频l| 九一综合精品视品av| 欧美日日网| 啊啊啊啊一区| 大香蕉伊人久久| 十八禁啪啦拍视频无遮挡| 岛国在线一区二区三区| 一牛影视成人片免费| 国产强奸91| 无码操逼视频一下| 18禁在线视频| 亚洲一区日韩精品中文字幕| 97色网| 亚洲国产综合视频| 97天堂| 精品人妻一区二区三区日产| 91高潮| 日韩在线国产字幕| 97香蕉网| 亚洲97综| 高清无码人妻久久久一区二区三区aⅴ| 性交一区二区在线播放| 小明看看网址| 香蕉av一区二区三区| 超碰久久网| 欧美手机在线综合| 欧美日韩人妻精品一区二区三区| 夜夜嗨老熟女AV一区二区三区| 天天综合网亚洲综合网| 久久大香蕉97| 96久久久久久久| 精品78| 天天射天天| 无码最新| 免费精品福利在线观看| 婷婷六月色| 中日无幕一二三四区| 午夜天堂网| 久久久久久久久久久久久久久久9| 一区二区国产视频在线观看| 老鸭窝日丰县女人| 超碰人人干天天射| 国产免费黄色一级大片| 99久国产精品午夜性色福利| 中文字幕亚洲永久精品| 亚洲成av人片色午夜乱码| 九九九九久久久| 熟女中出视频| 综合大香蕉美。| 熟女人妻一区二区三区| 无码137片内射在线影院| 思思热在线cao| AV九九| 宗合情欲网| 蜜桃臀久久| 亚洲欧美情色| 国产av又色又爽又黄| 日本九九九九| 色女99一级片在线观看| 色哟哟AV| 伊人热综合| 天天做日日爱夜夜爽| 亚洲色偷偷色噜噜狠狠99网| 亚洲一本色码中文字幕| 在线洲亚线| 久久黄片国产一区二区| 丁香五月性爱| 夜夜综合| 色香综合| 亚洲一卡2卡3卡4卡乱码网站| 一区二区三区精品黑丝白丝酒店对鸡 | 一区中文字幕二区日韩| 99最新日韩偷拍视频| 一区二区乱码福利| 亚洲日韩成人性爱视频| 中文字日本乱码| 91欧美www| 国产高清免费不卡av| 日本三级久| 久久久国产护士丝袜美腿一| 国产无码久久高清| 久99热| 欧美大干日韩| 一级二级三级黑人无码| 夜夜操二区| 久9久9久9久9久9久9| 国产精品原创巨作?v网站| 一区二区 韩日AV| 国产自偷| 日韩欧美综合激情| 啊啊啊啊啊啊啊好爽不要| 91爱| 97啪啪| 嗯~啊~轻一点 视频| 欧美日韩国产三级黄色| 丝袜性亚洲| 久久男人的天堂| 91啪啪| 天天综合~91| a天堂视频| 很很很很操| 人人操人人操人人人操| 久久的网站啊啊啊啊啊| 亚洲天堂精品日韩电影| 欧美国产日韩清纯唯美| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 国产区在线| 日韩乱伦视频| 91精品久久久久久久久久| 国产亚洲精品久久久久小| 极品粉嫩一区二区| 国产真实子伦对白| 色综合一区二区三巨| 精品欧美乱码久| 日日干夜夜干| 少妇高潮九九九九| 婷婷五月花| 精品999一区二区| 亚洲婷婷五月天| 91精品啪在线观看国产城中村| 欧美国产有色电影| 国产Aα| 超碰日韩美妻| 国产剧情AV不卡在线观看| 青青草久草AV| 日韩中文字幕在线视频观看| 情色大香蕉| 男人的天堂啪啪啪啪啪蜜桃不卡| 亚洲欧美97| 九九热免费国产视频婷婷伊人| 亚洲天堂男人的天堂| 97视频观看| 午夜视频久久久久一区| 久久草视频污视频| 国产偷拍自拍在线视频| 乱色老一区二区三区的观看方式| 1769精品一区二区三区| 日韩精品 欧美激情| 熟女丝袜视频| 日韩黄片影院| 91AV天美在线视频| 色婷视频| 中文字幕蜜乳av| 欧美A√综合网| 国产强奸超碰AV| 91网站18禁| 天天干天天日天天射黄色片| 黄片com.| 久热这里只有精品9| 国产又黄又猛又粗又爽的网站| 久久 国产 无码| 天天爱综合网| 欧美1727免费观看视频| 国产亚洲深夜激情| 久久精品无码不卡| 夜夜操天| 涩涩涩综合| 麻豆一区二区AV天美| 亚洲熟妇图片| 蜜乳AV网址| 欧美人体性爱互联网第一页婷婷日本| 欧洲乱码视频| 欧美 亚洲 偷拍自拍| 搡老女人老91妇女老熟女| 操亚州| 国产精品色色| 国产精品亚洲一级av第二区| 中文字幕熟女人妻丝袜丝| 男人天堂.AB| 欧亚性爱啪啪| 国产真实子伦对白| 欧美最大综合网| 东北黄色电影| 国产在线视视频有精品| 成人毛片免费| 亚洲影视高清三级-草1024榴社区入口-品爱AV| 天天影视网综合少妇| 91天堂色男人的天堂| 国产无码精品无码| 久久99干一本高清| 97人人爱人人做人人乐| 五月天综合在线| 一区二区三区黄片免费观看| 日本精品五区| 欧美成人精品一区二区男人蜜臀| 久久久99久9| 五月天婷婷久久| 国产h片在线观看视频| 欧美v日韩v亚洲v最新在线| 麻豆区久久久久亚| 蜜臀99999| 97资源超碰| 婷婷丁香成人| 久久久久久久国产视频| 欧美成人A√在线一区二区| 国产精品久久蜜乳av| 天天情欲宗合网| 91亚洲欧美色图| 91九久| 五月天色图影视| 操逼日韩无码| 日韩人妻中文视频| 久久男人精品| 一区二区三区免费视频入口| 欧美天堂在线| 精品少妇一区二区| 激情久久日韩精品中文字幕麻豆| 欧美精品久久96人妻无码| 九九热男人天堂| 午夜精品一区二区三区三上悠亚| www色色色com| www.色操逼| 精品一区二区成人动漫| 国产中文字幕曰本毛片| 国产大学生口爆吞精合集| 国产对白刺激视频| 亚洲**2021在线观看| 国产免费黄色一级大片| 五月丁香激情四射| 日本色日夜干| 熟女精品日韩一区二区三区| 精产品久久| 91欧美网| 酒色综合网| 97精品视频| 一级性爱视频免费观看 | 国产真乱mangent| a片在线播放| 91熟女熟妇视频网站| 五月天激情影院| 人妻精品视频一区二区| 性做久久久久久免费观看软件| 日韩人妻一区二区精品| 午夜色婷婷| 婷婷五月天_亚洲小说欧美激情另类_精品久久国产字幕 | 天天综合网亚洲综合网|