色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合av,久久激情五月丁香伊人

ARTICLE DETAIL

資訊詳情

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

STM32定時器深度解析:從基礎(chǔ)原理到PWM、輸入捕獲實戰(zhàn)應(yīng)用

STM32定時器深度解析:從基礎(chǔ)原理到PWM、輸入捕獲實戰(zhàn)應(yīng)用 1. 從“計時”到“控制”為什么STM32的定時器是嵌入式開發(fā)的基石如果你剛開始接觸STM32可能會覺得定時器Timer不就是個“秒表”或者“鬧鐘”嗎設(shè)置一個時間到了就觸發(fā)一下。但當(dāng)你真正深入項目無論是驅(qū)動一個步進電機、生成PWM控制LED亮度、還是捕獲外部脈沖的頻率你會發(fā)現(xiàn)這個看似簡單的“秒表”其實是整個微控制器系統(tǒng)里最活躍、最核心的“節(jié)奏大師”和“多面手”。它遠(yuǎn)不止于計時而是實現(xiàn)精準(zhǔn)時間控制、波形生成、信號測量乃至復(fù)雜事件鏈的硬件引擎。我最初也低估了它的復(fù)雜性直到在一個電機控制項目里因為定時器配置的一個細(xì)微偏差導(dǎo)致電機抖動整個系統(tǒng)效率低下。那次踩坑讓我明白對STM32定時器的理解深度直接決定了你能否寫出穩(wěn)定、高效、可靠的嵌入式代碼。它不是外設(shè)列表中的一個普通選項而是連接軟件邏輯與硬件實時性的橋梁。本文將拋開枯燥的數(shù)據(jù)手冊翻譯以一個實際開發(fā)者的視角帶你深入STM32定時器的世界。我們會從最根本的“它為什么存在”開始拆解其種類與結(jié)構(gòu)然后通過幾個經(jīng)典場景手把手還原配置過程并分享那些數(shù)據(jù)手冊上不會寫的配置心得和避坑指南。無論你是正在學(xué)習(xí)的新手還是希望優(yōu)化已有項目的老手都能在這里找到直接可用的“干貨”。2. STM32定時器家族全景圖找到最適合你任務(wù)的那把“瑞士軍刀”STM32的定時器并非只有一種而是一個龐大的“家族”不同系列、不同型號的STM32其定時器在數(shù)量和功能上各有側(cè)重。但萬變不離其宗我們可以從功能上將其分為幾個基本類型。理解這個分類是正確選型和配置的第一步。2.1 基礎(chǔ)定時器Basic Timers純粹的時基發(fā)生器代表型號TIM6, TIM7在部分系列中。 這是功能最簡單的定時器。你可以把它想象成一個只有“向上計數(shù)”功能的精密秒表。它沒有輸入輸出通道因此不能直接用于捕獲外部信號或生成PWM波。它的核心作用就是提供一個穩(wěn)定的、可編程的“時間基準(zhǔn)”Time Base。主要用途為DAC數(shù)模轉(zhuǎn)換器提供觸發(fā)時鐘這是它的一個經(jīng)典應(yīng)用。通過定時器溢出事件觸發(fā)DAC可以無需CPU干預(yù)自動生成任意波形。為其他高級定時器提供時鐘基準(zhǔn)作為主定時器驅(qū)動從定時器。產(chǎn)生精確的延時雖然通用定時器也能做但基礎(chǔ)定時器邏輯簡單占用資源少用于純延時更“專一”。為什么需要它在復(fù)雜的系統(tǒng)中你需要一個“干凈”的、不受其他功能干擾的時鐘源來驅(qū)動特定任務(wù)?;A(chǔ)定時器就是為此而生它避免了因配置輸入捕獲或輸出比較等功能可能帶來的意外干擾。2.2 通用定時器General-purpose Timers嵌入式開發(fā)的“萬金油”代表型號TIM2, TIM3, TIM4, TIM516位部分系列有32位通用定時器如TIM2/TIM5。 這是你將會最頻繁打交道的定時器類型。它具備了定時器的幾乎所有核心功能是真正的多面手。核心功能包括向上/向下/中央對齊計數(shù)模式計數(shù)方式靈活。輸入捕獲Input Capture可以捕獲外部引腳上的信號邊沿并記錄下發(fā)生時的計數(shù)器值。這是測量脈沖寬度、頻率的硬件基礎(chǔ)。輸出比較Output Compare可以比較計數(shù)器值與預(yù)設(shè)值當(dāng)匹配時可以翻轉(zhuǎn)引腳電平、產(chǎn)生脈沖或產(chǎn)生中斷/DMA請求。這是生成PWM、單脈沖的基礎(chǔ)。PWM生成PWM Generation輸出比較功能的一種高級應(yīng)用模式直接硬件生成占空比可調(diào)的方波。編碼器接口Encoder Interface硬件直接讀取正交編碼器的信號自動判斷方向和計數(shù)極大簡化了電機位置反饋的編程。實戰(zhàn)場景舉例用輸入捕獲測量超聲波模塊回波的高電平時間從而計算距離。用輸出比較生成一個精確的1ms定時中斷作為系統(tǒng)的“心跳”。用PWM模式驅(qū)動舵機控制脈寬或LED調(diào)光控制占空比。連接旋轉(zhuǎn)編碼器讀取電機的轉(zhuǎn)速和轉(zhuǎn)向。2.3 高級控制定時器Advanced-control Timers電機與數(shù)字電源的控制核心代表型號TIM1, TIM8。 這是功能最強大的定時器在通用定時器的基礎(chǔ)上增加了面向電機控制、數(shù)字電源等復(fù)雜應(yīng)用的高級功能。獨有的高級功能帶死區(qū)插入的互補PWM輸出這是驅(qū)動三相電機或全橋電路的關(guān)鍵。它可以生成多路互補的PWM信號如高側(cè)和低側(cè)開關(guān)管并自動插入“死區(qū)時間”Dead Time防止上下管同時導(dǎo)通導(dǎo)致短路燒毀。剎車Break輸入一個高優(yōu)先級的硬件安全信號。當(dāng)外部故障如過流發(fā)生時可以立即通過剎車引腳將PWM輸出強制置為安全狀態(tài)通常為固定電平響應(yīng)速度遠(yuǎn)超軟件中斷。更靈活的輸出模式與觸發(fā)同步支持更復(fù)雜的波形生成和多個定時器之間的主從同步用于構(gòu)建精密的控制時序。選型心得如果你的項目涉及BLDC無刷直流電機、PMSM永磁同步電機驅(qū)動、開關(guān)電源、逆變器那么高級控制定時器幾乎是必選的。它的硬件死區(qū)和剎車功能是系統(tǒng)安全可靠運行的基石用軟件模擬不僅復(fù)雜而且可靠性無法比擬。2.4 看門狗定時器與系統(tǒng)窗口定時器獨立看門狗IWDG由一個獨立的低速時鐘LSI驅(qū)動即使主時鐘失效也能工作。用于檢測和解決由軟件錯誤導(dǎo)致的系統(tǒng)“死鎖”。你需要定期“喂狗”如果超時未喂則觸發(fā)系統(tǒng)復(fù)位。這是產(chǎn)品可靠性的最后一道硬件防線。窗口看門狗WWDG時鐘來源于APB1。它要求在一個“時間窗口”內(nèi)喂狗過早或過晚都會觸發(fā)復(fù)位。用于監(jiān)測那些跑飛但仍在周期性執(zhí)行錯誤代碼的異常情況。系統(tǒng)窗口定時器SysTick這是Cortex-M內(nèi)核自帶的24位遞減定時器通常用于操作系統(tǒng)的時基如RTOS的任務(wù)調(diào)度。它的優(yōu)先級非常高配置簡單。配置要點IWDG和WWDG的初始化通常放在程序最開頭且一旦啟用除非復(fù)位無法關(guān)閉。喂狗操作應(yīng)放在主循環(huán)或關(guān)鍵任務(wù)中但要避免在中斷里長時間喂狗否則失去了監(jiān)測意義。3. 定時器的核心“引擎”時鐘樹與計數(shù)器原理剖析理解了分類我們深入到定時器如何工作的核心。這就像開車不能只知道車型還得懂發(fā)動機和變速箱。定時器的“發(fā)動機”就是時鐘源“變速箱”就是預(yù)分頻器和計數(shù)器。3.1 時鐘源動力從哪里來定時器不能自己產(chǎn)生時間它需要一個節(jié)拍器。STM32定時器的時鐘源CK_PSC主要來自內(nèi)部時鐘CK_INT最常用的源。通常來自APB總線時鐘APB1或APB2。這里有個關(guān)鍵點當(dāng)APB預(yù)分頻器系數(shù)不為1時定時器實際得到的時鐘是APB時鐘的2倍。例如AHB72MHzAPB1預(yù)分頻器設(shè)為2則APB1時鐘為36MHz但連接到APB1的定時器如TIM2-4的時鐘源會是72MHz。這個設(shè)計是為了保證定時器在總線時鐘較低時仍能有較高的時間分辨率。務(wù)必在RCC配置后查清你的定時器實際時鐘頻率這是所有計算的基礎(chǔ)。外部時鐘模式1時鐘來自定時器的特定輸入引腳TIx用于對外部脈沖進行計數(shù)。外部時鐘模式2時鐘來自另一個定時器的輸出觸發(fā)事件用于定時器級聯(lián)。內(nèi)部觸發(fā)輸入來自其他定時器的輸出用于同步。對于絕大多數(shù)應(yīng)用我們使用內(nèi)部時鐘CK_INT。3.2 預(yù)分頻器與自動重載寄存器如何設(shè)定“節(jié)奏”時鐘源頻率很高如72MHz直接驅(qū)動計數(shù)器的話計數(shù)器累加得太快很快就會溢出無法實現(xiàn)較長的定時。因此需要“降速”。預(yù)分頻器PSC, Prescaler這是一個16位的分頻器。它會對輸入時鐘CK_PSC進行分頻得到驅(qū)動計數(shù)器CNT的實際時鐘頻率CK_CNT。CK_CNT CK_PSC / (PSC 1)例如CK_PSC72MHzPSC71則CK_CNT 72MHz / (711) 1MHz。此時計數(shù)器每1微秒加1。注意PSC寄存器寫入的是“分頻系數(shù)-1”。想2分頻就寫1想7200分頻就寫7199。這是新手常犯的錯誤。計數(shù)器CNT這是一個16位或32位的寄存器隨著CK_CNT的每個脈沖遞增或遞減。它是定時器的核心其當(dāng)前值代表了從上次重載后經(jīng)過的“節(jié)拍數(shù)”。自動重載寄存器ARR, Auto-reload Register這是定時周期的“目標(biāo)值”。當(dāng)計數(shù)器CNT計數(shù)到與ARR的值匹配時取決于計數(shù)模式就會發(fā)生“更新事件”UEV計數(shù)器被重新加載從0或ARR值開始同時可以產(chǎn)生更新中斷或DMA請求。定時周期 (ARR 1) * (1 / CK_CNT) (ARR 1) * (PSC 1) / CK_PSC舉個例子我們需要一個1ms的定時中斷。 假設(shè)CK_PSC 72MHz。選擇CK_CNT為1MHz即每微秒計數(shù)一次這樣方便計算。則 PSC 72MHz/1MHz - 1 71。1ms 1000us需要計數(shù)1000次。則 ARR 1000 - 1 999。代入公式驗證周期 (9991) * (711) / 72MHz 1000 * 72 / 72,000,000 0.001秒 1ms。完美。3.3 計數(shù)模式不同的“跑表”方式向上計數(shù)UpcountingCNT從0開始加到ARR產(chǎn)生更新事件然后歸零重新開始。最常用。向下計數(shù)DowncountingCNT從ARR開始減到0產(chǎn)生更新事件然后重新加載ARR值。中央對齊Center-aligned又稱向上/向下計數(shù)。CNT從0加到ARR產(chǎn)生更新事件然后從ARR減到0再產(chǎn)生一次更新事件。一個周期內(nèi)產(chǎn)生兩次更新事件。這種模式生成的PWM波形是關(guān)于中心對稱的在某些電機控制中能減少諧波。4. 實戰(zhàn)場景一用通用定時器實現(xiàn)精準(zhǔn)微秒級延時很多新手喜歡用for循環(huán)或while循環(huán)來做短延時這是極不準(zhǔn)確的因為受編譯器優(yōu)化、中斷打斷影響極大。利用定時器實現(xiàn)硬件延時是專業(yè)做法。這里我們以TIM2實現(xiàn)一個delay_us和delay_ms函數(shù)。4.1 硬件定時器延時原理我們不讓定時器產(chǎn)生中斷而是利用其計數(shù)器的當(dāng)前值CNT來精確判斷時間是否到達(dá)。思路是在延時開始時記錄計數(shù)器當(dāng)前值start_tick然后在一個循環(huán)中不斷讀取當(dāng)前值current_tick判斷是否過去了我們需要的“節(jié)拍數(shù)”。這里的關(guān)鍵是處理計數(shù)器溢出回繞的問題。因為CNT是16位的最大值65535超過后會從0重新開始。4.2 配置與代碼實現(xiàn)首先初始化定時器讓它以1MHz的頻率計數(shù)即1個計數(shù)值1微秒。// tim_delay.c #include tim_delay.h #define DELAY_TIM TIM2 #define DELAY_TIM_CLK_ENABLE() __HAL_RCC_TIM2_CLK_ENABLE() static uint32_t us_per_tick; // 每 tick 對應(yīng)的微秒數(shù)此處為1 void delay_tim_init(void) { TIM_HandleTypeDef htim; htim.Instance DELAY_TIM; htim.Init.Prescaler 71; // 72MHz / (711) 1MHz htim.Init.CounterMode TIM_COUNTERMODE_UP; htim.Init.Period 0xFFFF; // 最大值讓計數(shù)器自由運行不產(chǎn)生更新中斷 htim.Init.ClockDivision TIM_CLOCKDIVISION_DIV1; htim.Init.AutoReloadPreload TIM_AUTORELOAD_PRELOAD_DISABLE; if (HAL_TIM_Base_Init(htim) ! HAL_OK) { Error_Handler(); } // 啟動定時器但不使能中斷 HAL_TIM_Base_Start(htim); us_per_tick 1000000 / (SystemCoreClock / (71 1)); // 計算驗證應(yīng)為1 } // 阻塞式微秒延時 void delay_us(uint32_t us) { uint32_t start_tick DELAY_TIM-CNT; uint32_t ticks_needed us / us_per_tick; uint32_t end_tick start_tick ticks_needed; // 處理溢出 if (end_tick 0xFFFF) { // 如果結(jié)束值溢出等待CNT溢出回繞到0然后繼續(xù)等待剩余部分 while (DELAY_TIM-CNT start_tick) { /* 等待溢出 */ } while (DELAY_TIM-CNT (end_tick 0xFFFF)) { /* 等待到達(dá)結(jié)束值 */ } } else { // 無溢出簡單等待 while ((DELAY_TIM-CNT - start_tick) ticks_needed) { /* 等待 */ } } } // 毫秒延時基于微秒延時循環(huán) void delay_ms(uint32_t ms) { while (ms--) { delay_us(1000); } }避坑指南時鐘源確認(rèn)務(wù)必通過SystemCoreClock或查看RCC配置確認(rèn)CK_PSC頻率正確。這是所有計算的根。中斷干擾這種延時方式會被更高優(yōu)先級的中斷打斷導(dǎo)致延時變長。它適用于對絕對精度要求不是極端高、且中斷不頻繁的場景。對于需要極高精度的場景應(yīng)考慮使用定時器中斷或DMA。優(yōu)化問題如果編譯器優(yōu)化等級很高可能會將空的等待循環(huán)優(yōu)化掉。通常需要將循環(huán)變量聲明為volatile或者使用__NOP()等指令填充循環(huán)體。上面的代碼中直接訪問硬件寄存器DELAY_TIM-CNT通常不會被優(yōu)化掉。替代方案對于STM32更優(yōu)雅的方式是使用DWT數(shù)據(jù)觀察點跟蹤單元中的CYCCNT周期計數(shù)器它是一個32位、隨內(nèi)核時鐘遞增的計數(shù)器無需配置定時器且精度更高。但并非所有STM32型號都支持DWT。5. 實戰(zhàn)場景二PWM生成全解析——從驅(qū)動LED到控制舵機PWM脈沖寬度調(diào)制是定時器輸出比較功能的典型應(yīng)用。我們以通用定時器TIM3的通道1CH1生成一個頻率1kHz占空比可調(diào)的PWM為例驅(qū)動一個LED實現(xiàn)呼吸燈效果。5.1 PWM硬件原理與關(guān)鍵寄存器在PWM模式下定時器會自動將計數(shù)器CNT與捕獲/比較寄存器CCR進行比較。當(dāng)CNT CCR時輸出一種電平通常為高。當(dāng)CNT CCR時輸出另一種電平通常為低。當(dāng)CNT計數(shù)到ARR值并溢出重置后開始下一個周期。因此ARR決定了PWM的周期頻率。CCR決定了PWM的脈沖寬度占空比。頻率 CK_CNT / (ARR 1)占空比 CCR / (ARR 1)5.2 配置步驟與HAL庫代碼// pwm_led.c #include pwm_led.h TIM_HandleTypeDef htim3; TIM_OC_InitTypeDef sConfigOC; void PWM_LED_Init(void) { // 1. 開啟時鐘 __HAL_RCC_TIM3_CLK_ENABLE(); __HAL_RCC_GPIOA_CLK_ENABLE(); // 假設(shè)TIM3 CH1對應(yīng)PA6 // 2. 配置GPIO為復(fù)用推挽輸出 GPIO_InitTypeDef GPIO_InitStruct {0}; GPIO_InitStruct.Pin GPIO_PIN_6; GPIO_InitStruct.Mode GPIO_MODE_AF_PP; // 復(fù)用推挽輸出 GPIO_InitStruct.Pull GPIO_NOPULL; GPIO_InitStruct.Speed GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Alternate GPIO_AF2_TIM3; // PA6的TIM3復(fù)用功能是AF2 HAL_GPIO_Init(GPIOA, GPIO_InitStruct); // 3. 配置定時器時基 htim3.Instance TIM3; htim3.Init.Prescaler 71; // 72MHz - 1MHz htim3.Init.CounterMode TIM_COUNTERMODE_UP; htim3.Init.Period 999; // 周期 (9991)/1MHz 1ms - 頻率1kHz htim3.Init.ClockDivision TIM_CLOCKDIVISION_DIV1; htim3.Init.AutoReloadPreload TIM_AUTORELOAD_PRELOAD_ENABLE; // 預(yù)裝載使能避免更改ARR時產(chǎn)生毛刺 if (HAL_TIM_Base_Init(htim3) ! HAL_OK) { Error_Handler(); } // 4. 配置PWM輸出通道 if (HAL_TIM_PWM_Init(htim3) ! HAL_OK) { Error_Handler(); } sConfigOC.OCMode TIM_OCMODE_PWM1; // PWM模式1 sConfigOC.Pulse 500; // 初始占空比 CCR值 500 占空比 500/100050% sConfigOC.OCPolarity TIM_OCPOLARITY_HIGH; // 輸出極性高電平有效 sConfigOC.OCFastMode TIM_OCFAST_DISABLE; if (HAL_TIM_PWM_ConfigChannel(htim3, sConfigOC, TIM_CHANNEL_1) ! HAL_OK) { Error_Handler(); } // 5. 啟動PWM輸出 HAL_TIM_PWM_Start(htim3, TIM_CHANNEL_1); } // 改變占空比函數(shù) void PWM_LED_SetDuty(uint16_t duty) { // duty范圍 0-1000 (對應(yīng)ARR1) if (duty 1000) duty 1000; __HAL_TIM_SET_COMPARE(htim3, TIM_CHANNEL_1, duty); }5.3 呼吸燈效果實現(xiàn)在主循環(huán)中動態(tài)改變CCR值即可。// main.c 片段 int main(void) { // ... 系統(tǒng)初始化 PWM_LED_Init(); uint16_t pwm_val 0; int8_t dir 1; // 方向1為遞增-1為遞減 while (1) { delay_ms(5); // 用前面實現(xiàn)的延時函數(shù)控制變化速度 pwm_val dir; if (pwm_val 1000) dir -1; if (pwm_val 0) dir 1; PWM_LED_SetDuty(pwm_val); } }5.4 驅(qū)動舵機的特別注意事項舵機控制雖然也是PWM但參數(shù)截然不同。常見舵機要求周期20ms頻率50Hz。這是一個固定值。高電平脈沖寬度0.5ms ~ 2.5ms對應(yīng)舵機角度如0° ~ 180°。配置計算 假設(shè)CK_CNT 1MHz (1us)。ARR 周期 / (1/CK_CNT) - 1 20000us / 1us - 1 19999。0.5ms 對應(yīng) CCR 500。2.5ms 對應(yīng) CCR 2500。關(guān)鍵點舵機對周期的穩(wěn)定性要求高于對占空比的絕對精度。務(wù)必確保定時器時鐘穩(wěn)定ARR值設(shè)置正確。如果周期抖動舵機會出現(xiàn)抖動和噪音。使用TIM_AUTORELOAD_PRELOAD_ENABLE可以確保在更新ARR時等到下一個更新事件才生效避免產(chǎn)生一個錯誤的短周期。6. 實戰(zhàn)場景三輸入捕獲測量脈沖寬度與頻率這是定時器另一個極其重要的功能。我們以TIM4的通道1測量一個方波信號的高電平寬度脈寬為例。6.1 輸入捕獲工作原理將定時器通道配置為輸入模式并映射到特定的輸入引腳。設(shè)置捕獲邊沿上升沿、下降沿或雙邊沿。當(dāng)引腳上出現(xiàn)指定的邊沿時硬件會瞬間將計數(shù)器CNT的當(dāng)前值“捕獲”到捕獲/比較寄存器CCR中并可以產(chǎn)生中斷。在中斷服務(wù)函數(shù)中讀取CCR的值。通過計算兩次捕獲值如上升沿和下降沿的差值再乘以計數(shù)周期就能得到脈沖寬度。6.2 配置與代碼實現(xiàn)以HAL庫為例我們使用雙邊沿捕獲來測量高電平寬度。思路是在上升沿和下降沿都觸發(fā)捕獲并記錄對應(yīng)的計數(shù)器值。// input_capture.c #include input_capture.h TIM_HandleTypeDef htim4; volatile uint32_t capture_start 0; volatile uint32_t pulse_width_ticks 0; volatile uint8_t capture_done 0; void Input_Capture_Init(void) { __HAL_RCC_TIM4_CLK_ENABLE(); __HAL_RCC_GPIOD_CLK_ENABLE(); // 假設(shè)TIM4 CH1對應(yīng)PD12 // GPIO配置為輸入上拉 GPIO_InitTypeDef GPIO_InitStruct {0}; GPIO_InitStruct.Pin GPIO_PIN_12; GPIO_InitStruct.Mode GPIO_MODE_AF_INPUT; GPIO_InitStruct.Pull GPIO_PULLUP; GPIO_InitStruct.Alternate GPIO_AF2_TIM4; HAL_GPIO_Init(GPIOD, GPIO_InitStruct); // 時基單元配置 htim4.Instance TIM4; htim4.Init.Prescaler 71; // 1MHz, 1us分辨率 htim4.Init.CounterMode TIM_COUNTERMODE_UP; htim4.Init.Period 0xFFFF; // 16位最大值測量范圍可達(dá)65.535ms htim4.Init.ClockDivision TIM_CLOCKDIVISION_DIV1; htim4.Init.AutoReloadPreload TIM_AUTORELOAD_PRELOAD_DISABLE; HAL_TIM_Base_Init(htim4); // 輸入捕獲配置 TIM_IC_InitTypeDef sConfigIC; sConfigIC.ICPolarity TIM_ICPOLARITY_BOTHEDGE; // 雙邊沿捕獲 sConfigIC.ICSelection TIM_ICSELECTION_DIRECTTI; // 直接映射到TI1輸入 sConfigIC.ICPrescaler TIM_ICPSC_DIV1; // 每個邊沿都捕獲 sConfigIC.ICFilter 0; // 不濾波 HAL_TIM_IC_ConfigChannel(htim4, sConfigIC, TIM_CHANNEL_1); // 使能捕獲中斷 HAL_NVIC_SetPriority(TIM4_IRQn, 0, 0); HAL_NVIC_EnableIRQ(TIM4_IRQn); __HAL_TIM_ENABLE_IT(htim4, TIM_IT_CC1); // 啟動輸入捕獲 HAL_TIM_IC_Start_IT(htim4, TIM_CHANNEL_1); } // TIM4全局中斷服務(wù)函數(shù) void TIM4_IRQHandler(void) { HAL_TIM_IRQHandler(htim4); } // 輸入捕獲中斷回調(diào)函數(shù) void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim) { if (htim-Instance TIM4 htim-Channel HAL_TIM_ACTIVE_CHANNEL_1) { uint32_t current_capture HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_1); // 判斷是上升沿還是下降沿 if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC1OF) RESET) { // 防止溢出錯誤 if (__HAL_TIM_GET_CAPTUREPOLARITY(htim, TIM_CHANNEL_1) TIM_ICPOLARITY_RISING) { // 當(dāng)前是上升沿觸發(fā)記錄起始點 capture_start current_capture; // 切換為下降沿捕獲 __HAL_TIM_SET_CAPTUREPOLARITY(htim, TIM_CHANNEL_1, TIM_ICPOLARITY_FALLING); } else { // 當(dāng)前是下降沿觸發(fā)計算脈寬 // 處理計數(shù)器溢出 if (current_capture capture_start) { pulse_width_ticks current_capture - capture_start; } else { // 發(fā)生了溢出計算時要加上周期值 pulse_width_ticks (0xFFFF - capture_start) current_capture 1; } capture_done 1; // 標(biāo)志測量完成 // 切換回上升沿捕獲準(zhǔn)備下一次測量 __HAL_TIM_SET_CAPTUREPOLARITY(htim, TIM_CHANNEL_1, TIM_ICPOLARITY_RISING); } } __HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_CC1OF); // 清除溢出標(biāo)志如果發(fā)生 } } // 獲取脈沖寬度微秒 uint32_t Get_Pulse_Width_us(void) { if (capture_done) { capture_done 0; // 已知計數(shù)器頻率為1MHz1 tick 1us return pulse_width_ticks; // 直接返回 tick 數(shù)即微秒數(shù) } return 0; }6.3 避坑與優(yōu)化經(jīng)驗溢出處理是重中之重上面的代碼包含了簡單的溢出處理。但如果脈沖寬度可能超過定時器的最大周期ARR單次測量就會出錯。此時有兩種方案一是使用定時器的溢出中斷記錄溢出次數(shù)二是提高定時器時鐘頻率減小PSC或使用32位定時器來擴大測量范圍。輸入濾波ICFilter如果被測信號有毛刺可以設(shè)置濾波參數(shù)。它是一個數(shù)字濾波器需要連續(xù)N個采樣點一致才確認(rèn)邊沿。但濾波會引入延遲并可能錯過窄脈沖。分頻器ICPrescaler可以設(shè)置為每N個邊沿捕獲一次用于測量頻率很高的信號。直接測量頻率對于固定占空比的信號更高效的頻率測量方法是使用定時器的“從模式”中的“復(fù)位模式”。將一個通道配置為輸入捕獲觸發(fā)從模式復(fù)位計數(shù)器。這樣每次捕獲邊沿到來時CNT被清零而CCR中捕獲到的值就是上一個周期的計數(shù)值直接換算即得周期/頻率。這種方法無需中斷計算差值精度更高。注意GPIO的復(fù)用功能務(wù)必查閱數(shù)據(jù)手冊的“Alternate function mapping”表格確認(rèn)引腳對應(yīng)的定時器通道正確并配置正確的GPIO_AF。7. 高級應(yīng)用與調(diào)試技巧主從模式、DMA與調(diào)試心得當(dāng)你掌握了基本功能后這些高級技巧能讓你的系統(tǒng)更高效、更強大。7.1 定時器的主從模式構(gòu)建精密的控制時序想象一個場景你需要用TIM1生成中心對齊的PWM驅(qū)動電機同時用TIM2在PWM的每個周期中點進行一次ADC采樣。如何讓TIM2精準(zhǔn)地同步到TIM1的節(jié)奏這就需要主從模式。主定時器MasterTIM1。將其某個內(nèi)部事件如更新事件UEV、比較輸出等作為“觸發(fā)輸出”TRGO。從定時器SlaveTIM2。將其配置為“從模式”觸發(fā)源TS選擇為“ITR0”內(nèi)部觸發(fā)具體對應(yīng)關(guān)系需查手冊表示來自TIM1的觸發(fā)。從模式動作可以設(shè)為“觸發(fā)啟動”、“復(fù)位”、“門控”等。操作當(dāng)TIM1的更新事件發(fā)生時會發(fā)出一個觸發(fā)信號。TIM2收到后可以執(zhí)行“復(fù)位并啟動”動作。這樣TIM2就與TIM1嚴(yán)格同步啟動了。配置關(guān)鍵在CubeMX中分別在兩個定時器的“Trigger Output”和“Slave Mode”部分進行設(shè)置。在代碼中需要先啟動從定時器處于等待觸發(fā)狀態(tài)再啟動主定時器。7.2 定時器與DMA解放CPU的利器在需要連續(xù)、高速更新PWM占空比如播放音頻、生成復(fù)雜波形或搬運捕獲數(shù)據(jù)的場景頻繁的中斷會消耗大量CPU資源。DMA直接存儲器訪問可以將CPU解放出來。PWM DMA應(yīng)用將一組預(yù)計算好的CCR值存放在數(shù)組中。配置定時器的DMA請求為“更新事件”或“比較匹配”并將DMA通道的目標(biāo)地址指向定時器的CCR寄存器。DMA會在每次事件發(fā)生時自動將數(shù)組中的下一個值搬運到CCR無需CPU干預(yù)。輸入捕獲DMA應(yīng)用將DMA源地址設(shè)為定時器的CCR寄存器目標(biāo)地址設(shè)為一個內(nèi)存數(shù)組。配置DMA為“外設(shè)到內(nèi)存”模式觸發(fā)源為“捕獲比較事件”。這樣每次捕獲發(fā)生時捕獲值會自動存入數(shù)組攢夠一定數(shù)量后DMA傳輸完成中斷再讓CPU批量處理極大降低了中斷頻率。配置心得DMA的難點在于數(shù)據(jù)寬度、地址自增、循環(huán)模式等配置。務(wù)必確保DMA緩沖區(qū)大小足夠并處理好“傳輸完成”和“半傳輸完成”中斷以實現(xiàn)“雙緩沖”機制避免數(shù)據(jù)覆蓋。7.3 調(diào)試定時器示波器與邏輯分析儀是你的眼睛軟件仿真可以看變量但調(diào)試定時器這種與時間強相關(guān)的硬件必須依賴硬件工具。示波器測量PWM頻率、占空比、脈沖寬度是否與設(shè)定值一致。這是最直接的驗證手段。檢查信號是否有毛刺、過沖。邏輯分析儀可以同時觀察多路信號如多路PWM、編碼器A/B相、觸發(fā)信號的時序關(guān)系對于調(diào)試主從同步、死區(qū)插入等復(fù)雜時序問題不可或缺。利用調(diào)試器查看寄存器在IDE的調(diào)試模式下直接查看TIMx-CNT, TIMx-ARR, TIMx-CCRx等寄存器的值確認(rèn)配置是否已正確寫入硬件。GPIO翻轉(zhuǎn)法在關(guān)鍵的中斷服務(wù)函數(shù)如更新中斷、捕獲中斷入口和出口用一條GPIO_SetBits和GPIO_ResetBits語句來標(biāo)記。用示波器觀察這個GPIO的脈沖寬度就能知道中斷的響應(yīng)時間和執(zhí)行時間用于評估中斷負(fù)載。7.4 常見問題排查清單沒有輸出/輸入GPIO時鐘和定時器時鐘使能了嗎GPIO模式配置正確嗎輸出模式AF_PP輸入模式根據(jù)情況選擇GPIO的復(fù)用功能Alternate Function選對了嗎定時器啟動了嗎HAL_TIM_Base_Start,HAL_TIM_PWM_Start,HAL_TIM_IC_Start_IT中斷/NVIC配置并開啟了嗎頻率/周期不對系統(tǒng)時鐘SystemCoreClock配置正確嗎APB總線預(yù)分頻器是多少定時器時鐘可能是APB時鐘的2倍。PSC和ARR的計算公式用對了嗎記住是(PSC1)和(ARR1)。是否開啟了AutoReloadPreload它不影響首次運行但影響運行時修改ARR。占空比不對或無法調(diào)節(jié)CCR的值是否在0到ARR之間PWM模式選對了嗎PWM mode 1 和 mode 2 的輸出極性是相反的輸出極性O(shè)CPolarity設(shè)置是否符合預(yù)期輸入捕獲值跳動大信號本身是否干凈考慮增加硬件濾波RC電路或軟件濾波ICFilter。是否處理了計數(shù)器溢出中斷服務(wù)函數(shù)執(zhí)行時間是否過長導(dǎo)致錯過了后續(xù)的邊沿高級定時器互補輸出不正常死區(qū)時間DeadTime配置了嗎即使設(shè)為0也最好顯式配置一下寄存器。剎車功能Break是否被意外觸發(fā)檢查剎車引腳電平。輸出極性O(shè)CPolarity和互補輸出極性O(shè)CNPolarity是否配對正確對STM32定時器的掌握是一個從“會用”到“精通”的漫長過程。它不像GPIO點燈那樣立竿見影但卻是構(gòu)建穩(wěn)定、高效、實時嵌入式系統(tǒng)的核心技能。每一次踩坑每一次用示波器抓到一個完美的波形都會讓你對硬件和時間的理解更深一層。建議你從一個簡單的PWM呼吸燈開始然后嘗試輸入捕獲測頻最后挑戰(zhàn)一下定時器主從同步或DMA傳輸在實踐中把這塊硬骨頭啃下來。當(dāng)你能夠根據(jù)需求從容地選擇和配置定時器并精準(zhǔn)地預(yù)測和控制其行為時你會發(fā)現(xiàn)面前打開了一扇新的大門。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
黄站在线免费观看| 大香蕉琪琪日本女优不卡| 97超碰9| 欧美性,色九九| 日本3级一区二区免费| 私人尤物在线精品不卡| 九九九只有精品| 91中文精品日韩欧美在线 | 日韩97视频| 丁香六月婷婷综合| 五月综合视频| 欧美在线官网| 秋霞欧美性爰视频| 爽 好舒服 无码刺激久久| 91亚洲欧洲| 精品综合久久久久久97| 99999精品成人| 韩国一级婬片A片AAAAA| 极品尤物女神在线观看| 国产日本久久免费精品| 一级特黄aaa大片在线观看成人一级片在线观看 | 亚洲欧美中文日韩视频中国语| 91欧美丨精品丨入口| 色婷婷电影| 国产精品蜜臀久久久久无码AV| 91精品导航| 亚洲天堂另类小说男人| 操少妇很爽av| 爆乳免费黄网站| 91日韩在线| 开心五月婷婷激情| 日韩有码一区三区| 欧美少妇熟女| 9久久9综合| 麻豆天美国美国产| 欧美最婬乱婬爆婬性视频 | 女同性恋久久| 九九热九九| 婷婷色综合| 91九色网| 性欧美另类高清| 开心五月婷婷激情| 国产精品麻豆成人AV艾秋| 亚洲欧美中文日韩视频中国语| 少妇高潮九九九九| 18禁精品网站在线看| 18禁在线视频| 久久综合亚洲色1080p| 精品欧美不卡在线播放| 国产黄色视频久久| 在线观看无码三级少妇| 国产精品呦一区二区三区| 约操熟妇| 天天综合网~69| 男人的天堂色偷偷青青草视频婷婷网| 九九热精品视频在线观看| 久久五月天婷婷| 久久婷婷五月天| 大香蕉操久久| 999综合色| 国产久久一区二区| 外站AV在线| 五月丁香黄色网| 国内精品a| 91GD.COM| 国产av高清版| 超碰欧美在线欧美| 日韩精品碰碰| 欧美精品另类人妖xxxx| AV中文字幕剧情1区2区3| 亚洲91射| 国产AAAAAABBBBB| 人妻乱仑一区二区三区| 色诱中文字幕| 亚洲中文字幕av| 国产福利精品98视频| 91香蕉视频在线观看免费| 91粉嫩萝控精品福利网站_精品影音先锋国 | 思思热国产高清| 欧美综合娱乐久久| 伊人久久88国产女| 热热色AV| 影音先锋国产精品| 亚洲色资源| 欧美人妖内射| 93人人操人人| 日韩精品人妻中文字幕久久久| 久久久草成人网站久久久草成人久久久草久久久 | 97视频在线免费观看| 伊人专区一区二区三区| 国产毛片精品一区二区色欲黄A片| 久草视频在线视频在线视频在线观看 | 蜜乳AV.COM| 欧美一级黄片免费播放| 91中文精品日韩欧美在线| 操久久久久| 日本操大逼| 午夜呻吟欧美| 亚洲第一免费视频| 天美一二三在线观看Av| 欧美牲| 韩国一级婬片A片AAAAA| 久久精品人妻一区二区| 强奸乱伦 亚洲一区| 精品黑人一区二区| 青青草狠狠撸| 日韩AV无码中文一区二区| 丰满人妻一区二区三区在线| 欧美国产精品| 天天干人妻| 91色色网站| 五月丁香久久| 一类无码操逼视频| 麻豆精品三区视频| 性色av蜜臀av色欲aV| 91撸色网 玖玖网 欧美| 一级做a爰片久久毛片图片| 久久111| 99999亚洲| 色五月首页| 欧美肥臀在线| 色婷久久| 啊啊啊久久| 欧州色图区| 97色网| 久久综合日韩亚洲欧美| 精品久久无码午夜福利| AⅤ片水多多| 日韩紧密久久| 少妇高潮特黄A片| 亚洲999综合| 亚洲欧美91√| 吊色| 制服诱惑亚洲一区二区三区在线观看| caoni国产亚洲av| 日韩中文字幕国产| 夜夜嗨一区| 色色色综合网| 色综合一本| 超碰激情808| 隔壁邻居波多野结衣中文字幕 | 精品丰满人妻一区二区三区免费观| 少妇毛片久久| 久久久久久99AV无码免费网站| 日本护士高潮| 天天天干977| 欧美制服另类丝袜| 亚洲高清无码在线桃色| 亚州,欧美在线| 99色| aaaa少妇高潮大片| 香蕉视频精品亚洲一区二区三区在线播| 国内毛片热久久思思热| 日本A级视频| xxx0国产在线播放| 亚洲人成网站7777| 久久久久久无码人妻中文字幕| 国产午夜精品理论片一二三区区| 图片区小说区| 亚洲春色一区二区三区| 天天天堂影视日韩亚洲91| 精品超碰国产| 亚洲一区二区三区中文字幕| 久9无限国产| 熟女AV一区| 人妻熟女午夜精品在线| 久干9操| 亚洲无 码A片在线观看麻豆| 久久精品99| 欧美 亚洲 综合 制服| 日韩欧美操逼xxx| 人妻无码一区二区三区久久99| 熟女这里只有精品6| 暴力av在线| 色香在线| 欧美日韩精品国产91| 九九精品热| 超碰在线观看av不卡| 国产视频一区二区免费| 美女被啪到深处抽搐视频| 极品一区二区三区免费| 最新精品久久蜜桃| 91N五十路| 中文字幕av亚洲在线| 欧美特大AA级黄片| 男女日B国产| 精品91日日夜夜超清资源| 欧美与日韩97| 校园春色宗合网| 日本有码影片下载| 久久久一区二区三区四曲免费听| 亚洲日韩天堂| 免费国产视频| 国产97免费视频| 久久风骚城市人| 久久超碰av在线| 日韩钢筋无码高清啾啾啾| 北京专精特新企业招聘信息| 日本熟妇一区二区三区| 五月丁香六月激情综合| 97天天摸天天碰| 国产999精品久久久久久| 国产黄色 A 片免费看| 亚洲 日本 国产 综合| 成·人免费午夜在线观看| 97在线观| 啊啊啊免费视频| 三级色影综合网| 久久久免费高清中文视频| 很狠操| 懂色av中文字幕| 91色伦| 蜜桃午夜视频一区二区| 欧美精品系列| 色妇综合网| 97国产精品| 呦呦一区| 被男人添B超爽视频| 台湾一区国产高清在线| 亚洲欧洲日本精品中文a∨| 日韩av无码网站| 久草精品国产99| 亚洲无码超碰免费| 日本在线一二| 国产久久日韩网站导航| 99re在线视频国产| 偷拍 亚洲 欧美| 美女天天干| 黄色香蕉视频网站一区| 人妻中文字幕日韩电影| 67914亚洲精品| 天天做天天爱天天爽AV| 校园春色美腿丝袜| 男人的天堂 在线一区| 东北少妇高潮zzzz| 欧美极度丰满熟妇hd| 色啪网| 蜜桃传媒一区二区亚洲| 国产视频小说| 亚洲天天操| 亚洲免费成人在线高清无码视频| 久久性爱精品一区| 天堂种子在线www网资源| 99无码精品| 大香蕉伊人在线成人AV在线观看| 操人妻逼91| 亚洲综合校园春色| 日韩av性爱在线播放| 看日韩操逼| 极品白嫩福利在线| 欧美精品,四区。五区| 久久香蕉国产线看观看亚洲女人| 欧美日韩一二三| 高清无码久操视频| 人人操人人摸人| julia ann久久| 一区二区乱码福利| 亚洲无码99| 一区二区三区成人| 日韩一级二级三级免费看完整版| av亚欧| 久久精品国产亚洲AV无码电影| 91三级理论片播放器| 色综合中文字幕不卡| 日本最新1区2区3区| 日韩国产精品人妻无码久久久| 中文久久久| 狠狠色狠狠色狠狠五月| 婷婷五月天久久精品视频一区二区三区 | 伊人久久国产免费观看视频| 丰满人妻-区二区三区免费看| 日本熟妇自慰性高潮一区二区三区| 中文字幕第23区| 男人的天堂va在线| 国产超碰| 风月影院男女十八禁| 欧美裸体美女日麻屄| 精品国产精品一区二区| 欧美亚州色的图| 91精品微拍福利| 日本九九久久99播| a男人的天堂久久一级A毛片| 欧美综合站| 91美女视频直播| 国产18精品亚洲精品| 亚洲色悠悠久久88| 中文字幕中文字幕一区二区| 天美传媒Av在线| 手机午夜电影神马久久| 东京热一区二区三区四区五区六区| 免费网色网站| 最新日韩黄片| 天天天堂影视日韩亚洲91| 强奸乱伦亚洲第一页| 九九九久久久久| 成人自拍三级在线观看| 国产乱人妻精品入口| 日本性爱欧美性爱| 嗯,啊。舔我逼| 日韩激情小说一区二区| 欧美国产操逼| 五月天色五月| 日韩极品无码B| 综合 青草 伊久久 影院 综合| 日本一卡二区在线| 国精品一区二区三| 国产成人手机视频激情| 欧美综合亚洲综合| 91嫩草欧美| 秋霞久久亚洲精品成人| 97人妻人人躁人人玩人人| 99操视频| 欧美日韩啪啪电影| 一二区在线观看视频| 婷婷99狠狠| 精品78| 伊人大香蕉在线| 亚洲无无码αⅴ每日更新| 97色色,97综合| 亚洲中文字幕网| 17c嫩草51久久91嫩草| 国产精品肉丝自拍| 日韩乱伦影音先锋| 17c在线成人免费A片观看| 久久久91福利姬| 五月丁香大香蕉| 成人a v在线播放免费| 国产亚洲日本| 五月婷婷色| 亚洲欧洲无码bt精品合集| 国产一| 日韩无码嘿咻黑热久| 国产成年女人免费视频播放a| 色综合一区二区三巨| 日韩无码精品综合久久| 九九九九九九免费视频| 国产久久久9999| 成年人性爱日韩| 懂色Av一区二区三区| 一区二区三区四区姦女| 九九久久99| 男人女人18禁片免费看网站| 成人国产二区三区在线,男女精品。| 人人爱人人操人人性| 一区二区中文| 农村少妇久久久久久久| 91爱做| 亚洲天堂人妻一区二区| 伊人女女资源在线观看| 日韩熟女乱伦中出| 国产精品点击进入在线影院高清| 日韩欧亚太美不卡| 色五月丁香五月| 偷拍亚洲熟女视频播放| 五月丁香激情四射| 麻豆熟妇乱妇熟色A片在线看| 亚洲欧美在线观看2021 | 日本一区二区三区午夜观看| 极品出轨视频网站| 淫穴高潮色图| 国产第二页| 熟女天天干| 青娱乐导航AV| 91N欧美| 亚洲成人久久美女| 99热这里只有精品9| 亚洲精美粉嫩嫩泬在线观看| 亚洲欧美精品国产一区二区| 日韩三级伦理中文字幕| 欧美色女人| 欧美日综合| 四虎影视国产精品| 精品少妇一区二区| 97亚洲色图| 91中出在线| 国产精品69久久久久久久| 无码男人天堂| 五毛骚逼极品美女怕怕| 久久9精品网站| 国产欧洲精品亚洲午夜拍精品| 日本综合久久| 婷婷九月| 粉嫩国产精品久久粉嫩| 热天堂一区二区| 99re3这里只有精品| 欧美综合骚| 日韩一区二区熟女| 福利风月五月天影院| 人妻天天爽夜夜爽爽| 老鸭窝亚洲毛片| 亚洲人成色9999精品久久| 夜夜肏2021| 男人天堂.AB| 欧美曰韩国产精品| 国产精品熟妇一区二区三| 亚洲综合图色在线| 久久中文字幕女同性恋一区| 综合五月天| 亚洲情色综合| 亚洲h片在线免费观看| 999亚洲国产视频| 亚欧无码在线| 久久国产三区| 伊人991| 亚州高清av| 青青草大香蕉视频| 你懂的在线观看区国产| 美国aaaaa一级黄片| 欧美色综合影院| 亚洲天堂色图| 欧美在线视频观看一二三四区高清 | 绯色AV粉色AV蜜臀AV| 亚洲日产专区婷婷| 久久欧美激情| 国产乱伦性爱区| 国产1769在线| 欧洲乱码一区二区| 91插B网站| 亚洲AV无码乱码| 99色热国产视频精品| 久久精品99| 九九夜精品九九在线| 精品二区三四区五电影 | 婷婷超| 激情视屏国产乱伦强奸| 一区二区三区精品黑丝白丝酒店对鸡 | 天天肏夜夜肏| 青青草字幕AV| 韩国免费播放一级毛片| 伦伦成年午夜免费视频| 99re视频在线观看这里只有精品| 黄污污污污| 欧美大战久久久伊人| 亚洲综合嫩| 久久男人精品| 日韩久久超碰色| 久区视频| 日本色色的视频| 色老汉色| 天天射天天| 色播五月丁香| 9九九国产| 欧美区亚洲区偷拍区| 国产激情久久久| 999熟女精品| 美日韩男女操屄视频| a网站免费观看| 欧美日本视频一区| 操逼片国产| 69综合网| Sekablack无码一区| 色五月综合| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 亚洲天堂日本| 天天插夜夜操| 中文字幕精品丝袜| 97香蕉网| 九九九久千久久激情蜜桃在线看 | 国产三级片在线观看| 色官网色综合| 国产第11页| 麻花豆传媒剧国产MV出差| 二区熟妇韩日| 亚洲人成网站7777| 国内黄色精品| 免费一级a毛片久久久久久鸭绿欲 国产精品亚洲天堂网址 | 开心五月婷婷激情| 人妻精品一区二区| 欧美极品少妇交| 国产精品视屏| 不卡码视频| 色综合V| 大香蕉中文aV在线| 日韩欧美成人午夜福利| 都市激情人妻一区二区青青操视频 | 婷婷五月天激情四射| 去干网最新版| 麻豆AV一区二区天美传媒| 五月天色五月| 三久久久四久久久久| 亚洲综合春色| 欧美激情性久久久久久| 激情小说亚洲视频| 婷婷九月| 亚洲成aⅴ人片不卡无码| 1区2区3区中文字幕日韩| 女人被男人桶爽视频网站| 99re在线视频国产| 亚洲午夜AV| 国产精品片| 久久中出在线| 日韩黄色一区二区三区| 97亚洲色图| 内射中出日韩在线观看视频| 青娱乐欧美激情一区二区| 超碰97欧美日韩| 大香蕉久久| 亚洲无码电影久久久| 亚码人妻| 91九久| 丰满人妻一区二区三区四区| 激情婷婷丁香网| 草草影院在线视频| jizzjizz欧美| 女人综合网| 天天内射| 操少妇很爽av| 操B在线观看| 久久久久久久97| 青春草A| 人人操av| 国产熟女完整版中字| 国产麻豆91欧美一区二区久久婷婷国产精品| 精品亚洲一区在线观看| 自拍第一页| 日韩国语字幕| 国产CHASE男男GAYGA 毛多色婷婷| 久久久专区| 伊人亚洲国产一成人久久精品,久久| 亚州精品人妻一二三区| 午夜欧美J进J出白浆流出久久久| 成人精品无码| 亚洲AV色图| 欧美久久人妻少妇一区二区| 后X久久| 国产欧美亚洲精品a第2页| 夜色五月天| 3P乱轮视频| 成人精品在线免费视频| 亚洲小说视频| 99re在线视频| 大香蕉国产中文自拍| 成人情色一区二区| 久久久夜夜嗨免费视频| 在线综合色| 性爱乱伦视频免费| 久久黄片国产一区二区| 国产精品女aA片爽爽视频| 超碰人人干天天射| 色噜噜人妻av中文字幕| 综合网亚洲在线| 国产精品免费日韩| 99视频自拍区| 色色激情五月天| 国产无马视频| 亚洲精品三区在线观看| 欧美黄色手机在线观看| 久久久精品| 夜夜精品视频| 欧美91在线| 97这里只有精品| 凹凸精品熟女在线观看| 亚洲天天操| 蜜臀久久99精品久久久| 超碰九7| 免费视频97| 97超碰中文在线| 超碰美国| 一起草三级AV电影在线观看 | 色一射色一射| 欧美色图天堂在线| 天天综合网~69| 成人情色一区二区| 欧美亚洲激情小说| 久久AV无码1区2区3区| 国产农村妇女精品一| 亚洲最大的黄色电影网站。| 快点操死我| 久插综合| 黄久在线| 91情色在线| 色欧美综合| 日韩兔费看黄片| 两女互慰AV高潮喷水在线观看| 久超碰这里只有精品| 亚洲熟女少妇免费视频| 久久久青青草| 精品无码欧美三级| 99在线无码精品秘 入口黑人| 综合久久99| 无码久久国产| 日韩激情啪啪啪| 中文字幕亚洲在线一区| 午夜免费视频1000| 欧美精品丝袜久久久中文字幕| 成人av免费观看| 欧州色图区| 东京热av男人的天堂| 夜夜操夜夜高潮夜夜爽国产精品区| 日本美女性生活久久久久久久| 欧美精品偷拍| 青青草无码视频| 色香欲综合| 中文字幕五月婷婷免费| 亚洲偷拍自拍在线视频| 青青草日逼视频| 亚洲国产丝袜在线观看| 熟女人妻一区二区三区免费看 | 风流老熟女一区二区三区l| 中文自拍欧美影视| 欧美在线色图| 欧美日韩不卡传媒| 亚洲另类欧美精品| 狠狠狠狠狠狠| 91处女在线视频| 超碰在线人人射| 精品一二三区久久AAA片| 内射中出日韩在线观看视频| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 中文字幕高清精品一区| 日韩精品一区的| 欧亚久久偷拍视频| 四虎免费在线观看| 国产女生在线| 欧美在线l亚洲| 97亚洲精品超碰| 丝袜剧情| 欧美狠狠操| 91精品人妻| 免费在线观看AV无码网站| 97人人爱人人做人人乐| 日夜伊人网| 99精品成人免费看| 欧美亚洲成人在线一区二区三区| 久久亚洲天堂| 岛国大片国产| 红桃视频高潮| 欧美天天| 老女人爆菊| 国产夫妻性生活视频| 操高情无码| 亚洲男人的天堂在线看| 蜜乳视频网站| 午夜欧美J进J出白浆流出久久久 | 精品伊人久久久大香线蕉小说| aaa一级黄片| 麻豆a'v电影| 人人插人人摸人人| 日日噜噜夜夜久久亚洲一区二区| 日韩在线观看AV| 91c色| 中文字幕久久亚州无码| 人人操人人摸人人看人人干| 日本999精品| 高潮毛片无遮挡高清免费| 亚洲精品天天影视综合网 | 国产馆| 婷婷六月色| 精品人妻一区二区三区鲁大师| 精品福利| 91人人看| 国产精品高潮呻吟av久久4虎| 人人操人人摸人| 精品美女久久久久| 少妇与黑人高潮在线| 免费家庭乱伦视频| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 91五十路| 夜夜操老骚逼视频网站| 影音先锋每日最新资源在线观看| 免费精品福利在线观看| 色偷偷综合91久久噜噜| 成人日韩欧美| 日韩无码人妻| 久久人爽| www.久久久久| 成人精品在线免费视频| 久久久久久久久久久999| 艹少妇网站| 久热这里只有精品9| 国产丝袜美女诱惑| 国产精品黄色三级av| 51一区二区三区| 色妺妺在线视频| 手机在线A片| 亚洲色图日韩丝袜制服一区二区五月在线| 日韩欧美午夜一区二区| 老司机午夜福利视频一区二区| 97精品免费视频网站| 黄色小说亚洲| 亚洲第一无码播放立川理惠| 好吊色青靑草| 歐美性天天| 超碰人妻在线| 国内毛片无遮挡国产| 大屁股熟女一区二区三区| 成人AV在线电影| 国内精品嫩模A∨私拍小视频| 蜜臀久久一区二区| 人妻 丝袜美腿 中文字幕| 日韩无码服务区| 久jiu久神马影院| 国产精品久久久久久久黄无码| 97一区二区三区视频| 婷婷激情五月| 亚洲 自拍偷拍 欧美| 欧美色图欧美| 久久久专区| 九九热九九热| 天堂种子在线www网资源| 无遮挡又黄又刺激的视频| 精品人妻一区二区蜜桃视频 | 久久东京热成人| 精品无码一二三四区| 天天插天天射| 超碰在线香蕉| 91网九色蝌蚪操熟女| 亚洲双插| 中文字幕一区二区三四五区日日骚| 黄色一区二区秘书性感| 久久婷婷电影网| 久久风骚城市| 欧美日韩亚洲电影| 天天看特黄的免费网站| 97久精品| 青青草中文-久久青草精品一区二区三| 亚洲同性aV综合| 超碰无码五月97| 男人的天堂欧美| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 久久精品国产亚洲AV高级北京| 一级片在线观看高清无码| 97欧美久久久久久久| 麻豆性爱视频在线播放| 好淫网一二三视区| 人妻少妇一区二区| 婷婷久久五月天| www.色婷婷色综合| 亚洲图片偷拍视频区| 免费A V在线播放| 亚洲最大成人a毛毛片| 久久欲| 国产高清吃奶免费视频网站| 明星性猛交ⅹxxx乱大交| 天天综合网日韩| 大香蕉综合网| 天天综合网网欲色| 欧美色女人| 五月亭亭六月丁香| 免费在线看黄片av| 麻豆三极片| 国产辣妈在线视频福利| 国产精品免费1区2区视频| AV乱伦专区| 岛国福利在线精品播放| 都市久久精品激情亚洲| 色操逼网| 免费观看的黄色的网站| 91在线精品| 岛国精品视频在线观看| 婷婷激情四射| 天美国产三级传媒| 国产农村妇女精品1区二区| 黄色十八禁网站| 午夜AV污污污| 9 1果冻精品视频| 国产高清自拍| 搞中出久久| 日韩黄色一区二区三区| 五月丁香六月激情综合| 宅男91视频在线播放| 怡红院成人av| 色九色久| 又粗又长又大国产不卡| 亚洲免费成人在线高清无码视频| 78久久| 久久精品日韩| 天天插天天射| 91亚洲影院综合| 天天干夜夜| 91性色| 中文字幕aⅴ在线视频| 久久久网站| 白丝AV网站| 激情视频图片| 一区AV| 亚洲天堂 视频你懂的| 五月综合久久| 日韩美女,国产传媒,视频一区| 国产一区二区三区不卡手机在线| 中文字幕精品一区二区精品| 狠狠图片青青草| 97资源站国产精品| 手机看片日韩人妻| 九九内射在线| 97在线资源| 青草综合| 国产超碰| 国产大片精久久久久久| 久久精品噜噜噜成人看免欧美大片| 色踪合AV| 日韩强奸av| 五月婷婷影院| 亚洲偷拍欧美激情| 一区在线精品中文字幕| 午夜黄色免费在线观看| 久久中出在线| 欧美色宗合| 欧美性生活综合| 牛牛久久国产精品视频一二三| 91爱做| 亚洲国产丝袜熟女av| 性爱av在线免费观看| 久久亚洲人妻| V A在线| 婷婷九月| 97欧美日韩精品| 久久美女国产| 97久久久精品| 精品国产三级av韩国在线| 99久久久久| 看看日B真人视频| 嫩草在线视频| 日韩精品熟妇| 91精品无码久久久久久久| 亚洲.欧美.丝袜.中文.综合| 国产精品高朝久久久久久久| 天天操人人操狠狠插| 亚洲城人男人的天堂| 中日韓欧美高清| www99热| 精品国产乱码久久久影院| 东北丰满熟女国产一区| 夜夜騷av、一區二區| 91狠狠| 按摩中文字幕| 思思热国产高清| 嗯嗯嗯啊啊啊在线免费观看| juliaann欧美丝袜办公室| 超碰AV在线| 97 国产精品| 女人爽到高潮潮喷18禁网站 | 欧美97| 黑操B| V A在线| 日韩99神马视频播放| 2024年最新色情网站在线观看| 国产一级不卡在线观看| 欧美 熟女 日韩| 一区二区三区黄片免费观看| 亚洲欧洲第二视频在线观看色图| 日韩本不卡视频在线观看| 熟女突然公开看18禁影片 | 久久香蕉国产线看观看亚洲女人 | 久久艹逼视频| 加勒比aⅴ| 人妻久久久久久久久久久久久久久| 日韩人妻精品中文字幕| 日韩Va亚洲va欧美Ⅴa久久| 欧美97日韩精品| 操逼片中文| 99日视频在线免费| 日本在线一二| 人人爱人人乐人人操| 青青草五月天| 手机看av网站在线看| 国产91美女视频| 蜜臀久久99精品久久综合| 很很干很很操| 亚洲 欧美 精品专区 极品| 大香蕉国产中文自拍| 上海一级黄片| 男人天堂2030| 亚洲欧美日韩有码| 国产精品成人蜜臀AV在线| 啊啊啊啊免费视频| 成人综合网 欧美| 国产色呦呦| 久久精品熟妇丰满人妻99| 99综合自拍| 亚洲第一成人影院色播| 欧美亚洲图片| 久草男人天堂| 五月天婷婷综合网| 久久亚州精品成人Av无| 视频在线97| 91亚洲不卡一区| 午夜电影在线观看无码专区| 日韩熟女精一区二区三区不卡| 亚洲AV永久无码一区仙野| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | Julia在线播放亚洲久久| 久久精品一区二区一8| 亚洲欧美日韩电影网站一区 | 91n美女视频| 啪啪免费| 性色AV网站| 九九九久| 91草草草| 91久久国产综合久久| 欧美日本一区二区a人| 极品色| 后入精品| 91欧美丨精品丨入口| 色av中文字| 天天躁日日躁AAAXX| 日韩激情无码影院| 欧美日韩久久精品爱爱| 天天操美美| 欧中日成人免费影视| 色婷婷六月| 免费av大片| 伊人精品久久网站| 免费A片三p视频| 天躁夜夜躁2021| 精品无码产区一区二| 黄色成品网站| 熟妇熟女亚洲天堂网| 国产精品久久久久综合| 久久直播国产| WWW啪啪的com| 狠狠色伊人亚洲综合网站色| 婷婷色香伊人| av2014 日韩在线中文字幕| 亚州综合AⅤ| 日日AV加勒比| 免費人妻夜夜爽天天爽爽一区| 无码直播久久久| 蜜臀视频网站| aV中文麻| 亚洲色婷婷综合久久一区二区三区| 97人妻色| 久久国产精品一级二级三级| 香蕉久久国产AV一区二区| 大色综合网| 亚欧视频在线| 视频黄色国产一级| 成人无码在线超碰网| a亚洲欧美色欲| 欧美色乱| 探花精品 一区二区| 久久国产精品m码| 欧美激情1区| 蜜臀99久| 欧美亚洲激情| 国产又黄又粗又猛大片| av激情亚洲五月天| 成人一二| 亚洲精品白浆高清久久久久久 | 91人妻Pr| 国产强奸超碰AV| 色爱三区| 欧美国产日韩高清在线| 91精品大奶人妻| 天天拍天天操| 97超级久久强资源| 色九九九| 久久久99999久网站| 91欧美综合在线| 国产精品夜夜夜| 亚洲丝袜少妇在线| V A在线| 国产日韩在线播放av| 丰满岳乱妇一区二区三区| 99热99在线播放激情| 强奸乱伦αv片| 国产精品大香蕉| 久久色激情一区二区三区| 亚洲熟妇熟在线电影视频| 91天天爱| 欲综合网| a片久久久久久久久久久久 | 天天综和| 日韩综合成人免费视频| 1级午夜影院费免区| 欧美顶级黄色大片免费| 超碰91在线| 超碰午夜在线| 任我爽在线视频免费观看| 欧美另类丝袜熟女| 日本性感人妻91| av最新免费中文字幕| 熟女突然公开看18禁影片| 日韩成人色图| 狠狠躁天天躁日日躁97| 欧美碰碰综合色| 一区不卡在线观看av| 日本中文字幕在线视频| 欧美熟妇乱码在线一区| 男人的天堂久久狠| 精品视频一二三中文| 精品人妻一区| 日韩欧美麻豆大片| 欧美第一页| 国产精品爆乳懂色蜜乳| 韩国三级理论在线| 骚乳在线| 强乱老妇中文字幕| 日逼逼免费看| 中亚av| 九色 蝌蚪 熟女自| 男女日B国产| 99这里有精品| 午夜精品久久久久久久| 视频国产成人精品日本亚洲18| 襙一襙| 激情五月婷婷综合| 亚洲综合校园春色| 亚洲网站一区二区在线| 国产成人无码久久精品| 99re8免费高清在线| 久久中文字幕在线观看| 亚洲最新av无码成人精品区| 色一射色一射| 欧美色另类| 思思热免费视频观看| 日韩久久艹| 午夜性生活av免费在线看| 久久老子无码午夜伦不卡| 美国久久一二三四| 啊啊啊好想要| 久久人妻办公室视频| 成人夜夜| 亚洲无码AV九九九| 伊人久久亚洲中文字幕不卡| AVE乱伦| 熟女啪啪视频| 96一区二区| 成人av免费观看| 大香蕉手机在线| 黄色一级视| 大香蕉92| 人人摸人人添人人操| 天美传媒在线一区| 国产AV色黄看到爽| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 国产精品点击进入在线影院| 美女尤物福利视频| 91综合网站| 亚洲av夫妻操穴网| 亚洲在线欧美| 九九热精品免费视频| 综合网 欧美| 69精品少妇一区二区三区蜜桃| 97一区二区蜜臀| 搡老女人老熟女91| 操人妻丝袜高跟| 青春草莓视频在线观看网址| 东京热激情视频一二三区| 精品玖九九久| 精品一区二区三区蜜桃臀赵总 | 亚洲精品中文字幕一区在线视频 | 后入式999| 入口操逼网站| 2020天天色综合| 色婷婷香蕉| 蜜臀99久久国产| 国内91熟女人妻丝袜天天精品视频在线 | 精品视频久久区| 成人福利视频网| 欧美色97| www.91色综合| 久久国产在线一区二区| 欧美中文狠| 91精品伊人久久久大香线蕉91| 91亚州欧美| 能在线播放的国产三级| 欧美极品色| 五月天激情婷婷| 亚洲春色一区二区三区| 鸥美精品一区二区久久婷婷| 精品毛片av一区二区| 欧美性视频二区三区| 91色久| 精品国模无码| 欧美一品道| 91丝袜美女国产| 13小男生GAY自慰脱裤子| 麻豆国产成人精品| 高清在线偷拍自拍视频| 老妇女91| 日韩精品人妻中文字幕久久久| 久久精品国产Aⅴ| 97在线无精品| 99综合免费视频| 四虎午夜影院| 综合色久欲| 91 亚洲 欧洲| 日韩精品在线观看观看| 欧美热图99| 久久久久久久久久久久黄色| 亚洲中文一区二区三区视频| 探花精品 一区二区| 日噜夜夜夜夜夜夜夜夜夜夜爽爽爽爽爽爽爽爽爽爽爽爽 | 中国女人内射6XXXXX| 欧美 亚洲精品首页| 9 7超碰在线免费观看| 久久久久成人亚洲国产| 超碰97人妻在线| 亚洲精品久久一区二区三区蜜桃臀| 2020中文在线一区二区三区| 日本高清一本二本免费不卡| 色区97| 亚洲天堂日本| 亚洲18禁| 女人被添高潮免费视频| 乱伦熟女专区| 五月天伊人网| 99日免费视频中文字幕| 欧美激情亚洲色图| 成人综合久久精品色婷婷| 伊人专区一区二区三区| 亚洲男人的天堂va亚洲男人社| 欧美后进式| 国产亚洲精品av一区| 中文字幕丰满人妻日本| 欧美精品系列| 日本超碰色精品| 国产精品久久久蜜臀| 久久思思热| 最新国产亚洲精品精品国产亚洲综合| 97视频免费播放| 亚洲乱码国产乱码精网站| 久久97| 大香蕉人妻久久| 青青草中日韩在线| 绑缚麻绳人妻寝取完整版| 97亚洲综合电影| 五月婷丁香| 亚洲第一成人影院色播| 岛国大片国产| 99久久精品无码一区二区毛片免费| 久久国产视频专区一二三| 日本黄 R色 成 人网站| 91久久精品中文字幕| 老外又粗又长一晚做五次| 大香蕉78| 超碰97 线线 在现| 九九九九亚洲| 91在线观看,天天综合| 伊人久日| 91熟女视频网| 综合天天。| 亚洲高清在线se| 欧美极品少妇| 激情四射婷婷六月天| 成人精品欧洲亚洲| 国产久久久久影院老熟女| 传媒免费一区二区三区| 一区二区三区无卡视频在线观看| 中国探花熟女| 人人看人人摸人人色| 多乙久久久久久| 国产欧美日韩一区二区三区| 伊人丁香五月婷婷| 国产成人无码a| 欧美激情性久久久久久| 6080YYY午夜理论片在线观看| 欧色网址| 欧美性性性| 日韩一级二级三级在线不卡观看完整| 丰满精品人妻少妇久久字幕| 嗯嗯,好大,好爽,好骚| 麻豆成人av| 日韩精品一区,二区 九九...老司机| 国产精品老熟女一区二区| 又大又黄国产| 九九热五区| 亚洲老司机123专区| 男人成人黄色视频在线观看免费下载|