日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

【STM32】定时器相关函数和类型

發布時間:2024/4/24 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【STM32】定时器相关函数和类型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

00. 目錄

文章目錄

    • 00. 目錄
    • 01. TIM概述
    • 02. 相關類型
    • 03. 相關函數
    • 04. 結構體封裝
    • 05. 附錄
    • 06. 聲明

01. TIM概述

stm32f4xx_tim.h和stm32f4xx_tim.c文件中

02. 相關類型

TIM_TimeBaseInitTypeDef

/** * @brief TIM Time Base Init structure definition * @note This structure is used with all TIMx except for TIM6 and TIM7. */typedef struct {uint16_t TIM_Prescaler; /*!< Specifies the prescaler value used to divide the TIM clock.This parameter can be a number between 0x0000 and 0xFFFF */uint16_t TIM_CounterMode; /*!< Specifies the counter mode.This parameter can be a value of @ref TIM_Counter_Mode */uint32_t TIM_Period; /*!< Specifies the period value to be loaded into the activeAuto-Reload Register at the next update event.This parameter must be a number between 0x0000 and 0xFFFF. */ uint16_t TIM_ClockDivision; /*!< Specifies the clock division.This parameter can be a value of @ref TIM_Clock_Division_CKD */uint8_t TIM_RepetitionCounter; /*!< Specifies the repetition counter value. Each time the RCR downcounterreaches zero, an update event is generated and counting restartsfrom the RCR value (N).This means in PWM mode that (N+1) corresponds to:- the number of PWM periods in edge-aligned mode- the number of half PWM period in center-aligned modeThis parameter must be a number between 0x00 and 0xFF. @note This parameter is valid only for TIM1 and TIM8. */ } TIM_TimeBaseInitTypeDef;

TIM_OCInitTypeDef

/** * @brief TIM Output Compare Init structure definition */typedef struct {uint16_t TIM_OCMode; /*!< Specifies the TIM mode.This parameter can be a value of @ref TIM_Output_Compare_and_PWM_modes */uint16_t TIM_OutputState; /*!< Specifies the TIM Output Compare state.This parameter can be a value of @ref TIM_Output_Compare_State */uint16_t TIM_OutputNState; /*!< Specifies the TIM complementary Output Compare state.This parameter can be a value of @ref TIM_Output_Compare_N_State@note This parameter is valid only for TIM1 and TIM8. */uint32_t TIM_Pulse; /*!< Specifies the pulse value to be loaded into the Capture Compare Register. This parameter can be a number between 0x0000 and 0xFFFF */uint16_t TIM_OCPolarity; /*!< Specifies the output polarity.This parameter can be a value of @ref TIM_Output_Compare_Polarity */uint16_t TIM_OCNPolarity; /*!< Specifies the complementary output polarity.This parameter can be a value of @ref TIM_Output_Compare_N_Polarity@note This parameter is valid only for TIM1 and TIM8. */uint16_t TIM_OCIdleState; /*!< Specifies the TIM Output Compare pin state during Idle state.This parameter can be a value of @ref TIM_Output_Compare_Idle_State@note This parameter is valid only for TIM1 and TIM8. */uint16_t TIM_OCNIdleState; /*!< Specifies the TIM Output Compare pin state during Idle state.This parameter can be a value of @ref TIM_Output_Compare_N_Idle_State@note This parameter is valid only for TIM1 and TIM8. */ } TIM_OCInitTypeDef;

TIM_ICInitTypeDef

/** * @brief TIM Input Capture Init structure definition */typedef struct {uint16_t TIM_Channel; /*!< Specifies the TIM channel.This parameter can be a value of @ref TIM_Channel */uint16_t TIM_ICPolarity; /*!< Specifies the active edge of the input signal.This parameter can be a value of @ref TIM_Input_Capture_Polarity */uint16_t TIM_ICSelection; /*!< Specifies the input.This parameter can be a value of @ref TIM_Input_Capture_Selection */uint16_t TIM_ICPrescaler; /*!< Specifies the Input Capture Prescaler.This parameter can be a value of @ref TIM_Input_Capture_Prescaler */uint16_t TIM_ICFilter; /*!< Specifies the input capture filter.This parameter can be a number between 0x0 and 0xF */ } TIM_ICInitTypeDef;

TIM_BDTRInitTypeDef

/** * @brief BDTR structure definition * @note This structure is used only with TIM1 and TIM8. */typedef struct {uint16_t TIM_OSSRState; /*!< Specifies the Off-State selection used in Run mode.This parameter can be a value of @ref TIM_OSSR_Off_State_Selection_for_Run_mode_state */uint16_t TIM_OSSIState; /*!< Specifies the Off-State used in Idle state.This parameter can be a value of @ref TIM_OSSI_Off_State_Selection_for_Idle_mode_state */uint16_t TIM_LOCKLevel; /*!< Specifies the LOCK level parameters.This parameter can be a value of @ref TIM_Lock_level */ uint16_t TIM_DeadTime; /*!< Specifies the delay time between the switching-off and theswitching-on of the outputs.This parameter can be a number between 0x00 and 0xFF */uint16_t TIM_Break; /*!< Specifies whether the TIM Break input is enabled or not. This parameter can be a value of @ref TIM_Break_Input_enable_disable */uint16_t TIM_BreakPolarity; /*!< Specifies the TIM Break Input pin polarity.This parameter can be a value of @ref TIM_Break_Polarity */uint16_t TIM_AutomaticOutput; /*!< Specifies whether the TIM Automatic Output feature is enabled or not. This parameter can be a value of @ref TIM_AOE_Bit_Set_Reset */ } TIM_BDTRInitTypeDef;

TIM

/** @defgroup TIM_Exported_constants * @{*/#define IS_TIM_ALL_PERIPH(PERIPH) (((PERIPH) == TIM1) || \((PERIPH) == TIM2) || \((PERIPH) == TIM3) || \((PERIPH) == TIM4) || \((PERIPH) == TIM5) || \((PERIPH) == TIM6) || \((PERIPH) == TIM7) || \((PERIPH) == TIM8) || \((PERIPH) == TIM9) || \((PERIPH) == TIM10) || \((PERIPH) == TIM11) || \((PERIPH) == TIM12) || \(((PERIPH) == TIM13) || \((PERIPH) == TIM14))) /* LIST1: TIM1, TIM2, TIM3, TIM4, TIM5, TIM8, TIM9, TIM10, TIM11, TIM12, TIM13 and TIM14 */ #define IS_TIM_LIST1_PERIPH(PERIPH) (((PERIPH) == TIM1) || \((PERIPH) == TIM2) || \((PERIPH) == TIM3) || \((PERIPH) == TIM4) || \((PERIPH) == TIM5) || \((PERIPH) == TIM8) || \((PERIPH) == TIM9) || \((PERIPH) == TIM10) || \((PERIPH) == TIM11) || \((PERIPH) == TIM12) || \((PERIPH) == TIM13) || \((PERIPH) == TIM14))/* LIST2: TIM1, TIM2, TIM3, TIM4, TIM5, TIM8, TIM9 and TIM12 */ #define IS_TIM_LIST2_PERIPH(PERIPH) (((PERIPH) == TIM1) || \((PERIPH) == TIM2) || \((PERIPH) == TIM3) || \((PERIPH) == TIM4) || \((PERIPH) == TIM5) || \((PERIPH) == TIM8) || \((PERIPH) == TIM9) || \((PERIPH) == TIM12)) /* LIST3: TIM1, TIM2, TIM3, TIM4, TIM5 and TIM8 */ #define IS_TIM_LIST3_PERIPH(PERIPH) (((PERIPH) == TIM1) || \((PERIPH) == TIM2) || \((PERIPH) == TIM3) || \((PERIPH) == TIM4) || \((PERIPH) == TIM5) || \((PERIPH) == TIM8)) /* LIST4: TIM1 and TIM8 */ #define IS_TIM_LIST4_PERIPH(PERIPH) (((PERIPH) == TIM1) || \((PERIPH) == TIM8)) /* LIST5: TIM1, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7 and TIM8 */ #define IS_TIM_LIST5_PERIPH(PERIPH) (((PERIPH) == TIM1) || \((PERIPH) == TIM2) || \((PERIPH) == TIM3) || \((PERIPH) == TIM4) || \((PERIPH) == TIM5) || \((PERIPH) == TIM6) || \((PERIPH) == TIM7) || \((PERIPH) == TIM8)) /* LIST6: TIM2, TIM5 and TIM11 */ #define IS_TIM_LIST6_PERIPH(TIMx)(((TIMx) == TIM2) || \((TIMx) == TIM5) || \((TIMx) == TIM11))

TIM_Output_Compare_and_PWM_modes

/** @defgroup TIM_Output_Compare_and_PWM_modes * @{*/#define TIM_OCMode_Timing ((uint16_t)0x0000) #define TIM_OCMode_Active ((uint16_t)0x0010) #define TIM_OCMode_Inactive ((uint16_t)0x0020) #define TIM_OCMode_Toggle ((uint16_t)0x0030) #define TIM_OCMode_PWM1 ((uint16_t)0x0060) #define TIM_OCMode_PWM2 ((uint16_t)0x0070) #define IS_TIM_OC_MODE(MODE) (((MODE) == TIM_OCMode_Timing) || \((MODE) == TIM_OCMode_Active) || \((MODE) == TIM_OCMode_Inactive) || \((MODE) == TIM_OCMode_Toggle)|| \((MODE) == TIM_OCMode_PWM1) || \((MODE) == TIM_OCMode_PWM2)) #define IS_TIM_OCM(MODE) (((MODE) == TIM_OCMode_Timing) || \((MODE) == TIM_OCMode_Active) || \((MODE) == TIM_OCMode_Inactive) || \((MODE) == TIM_OCMode_Toggle)|| \((MODE) == TIM_OCMode_PWM1) || \((MODE) == TIM_OCMode_PWM2) || \((MODE) == TIM_ForcedAction_Active) || \((MODE) == TIM_ForcedAction_InActive))

TIM_One_Pulse_Mode

/** @defgroup TIM_One_Pulse_Mode * @{*/#define TIM_OPMode_Single ((uint16_t)0x0008) #define TIM_OPMode_Repetitive ((uint16_t)0x0000) #define IS_TIM_OPM_MODE(MODE) (((MODE) == TIM_OPMode_Single) || \((MODE) == TIM_OPMode_Repetitive))

TIM_Channel

/** @defgroup TIM_Channel * @{*/#define TIM_Channel_1 ((uint16_t)0x0000) #define TIM_Channel_2 ((uint16_t)0x0004) #define TIM_Channel_3 ((uint16_t)0x0008) #define TIM_Channel_4 ((uint16_t)0x000C)#define IS_TIM_CHANNEL(CHANNEL) (((CHANNEL) == TIM_Channel_1) || \((CHANNEL) == TIM_Channel_2) || \((CHANNEL) == TIM_Channel_3) || \((CHANNEL) == TIM_Channel_4))#define IS_TIM_PWMI_CHANNEL(CHANNEL) (((CHANNEL) == TIM_Channel_1) || \((CHANNEL) == TIM_Channel_2)) #define IS_TIM_COMPLEMENTARY_CHANNEL(CHANNEL) (((CHANNEL) == TIM_Channel_1) || \((CHANNEL) == TIM_Channel_2) || \((CHANNEL) == TIM_Channel_3))

TIM_Clock_Division_CKD

/** @defgroup TIM_Clock_Division_CKD * @{*/#define TIM_CKD_DIV1 ((uint16_t)0x0000) #define TIM_CKD_DIV2 ((uint16_t)0x0100) #define TIM_CKD_DIV4 ((uint16_t)0x0200) #define IS_TIM_CKD_DIV(DIV) (((DIV) == TIM_CKD_DIV1) || \((DIV) == TIM_CKD_DIV2) || \((DIV) == TIM_CKD_DIV4))

TIM_Counter_Mode

/** @defgroup TIM_Counter_Mode * @{*/#define TIM_CounterMode_Up ((uint16_t)0x0000) #define TIM_CounterMode_Down ((uint16_t)0x0010) #define TIM_CounterMode_CenterAligned1 ((uint16_t)0x0020) #define TIM_CounterMode_CenterAligned2 ((uint16_t)0x0040) #define TIM_CounterMode_CenterAligned3 ((uint16_t)0x0060) #define IS_TIM_COUNTER_MODE(MODE) (((MODE) == TIM_CounterMode_Up) || \((MODE) == TIM_CounterMode_Down) || \((MODE) == TIM_CounterMode_CenterAligned1) || \((MODE) == TIM_CounterMode_CenterAligned2) || \((MODE) == TIM_CounterMode_CenterAligned3))

TIM_Output_Compare_Polarity

/** @defgroup TIM_Output_Compare_Polarity * @{*/#define TIM_OCPolarity_High ((uint16_t)0x0000) #define TIM_OCPolarity_Low ((uint16_t)0x0002) #define IS_TIM_OC_POLARITY(POLARITY) (((POLARITY) == TIM_OCPolarity_High) || \((POLARITY) == TIM_OCPolarity_Low))

TIM_Output_Compare_N_Polarity

/** @defgroup TIM_Output_Compare_N_Polarity * @{*/#define TIM_OCNPolarity_High ((uint16_t)0x0000) #define TIM_OCNPolarity_Low ((uint16_t)0x0008) #define IS_TIM_OCN_POLARITY(POLARITY) (((POLARITY) == TIM_OCNPolarity_High) || \((POLARITY) == TIM_OCNPolarity_Low))

TIM_Output_Compare_State

/** @defgroup TIM_Output_Compare_State * @{*/#define TIM_OutputState_Disable ((uint16_t)0x0000) #define TIM_OutputState_Enable ((uint16_t)0x0001) #define IS_TIM_OUTPUT_STATE(STATE) (((STATE) == TIM_OutputState_Disable) || \((STATE) == TIM_OutputState_Enable))

TIM_Output_Compare_N_State

/** @defgroup TIM_Output_Compare_N_State* @{*/#define TIM_OutputNState_Disable ((uint16_t)0x0000) #define TIM_OutputNState_Enable ((uint16_t)0x0004) #define IS_TIM_OUTPUTN_STATE(STATE) (((STATE) == TIM_OutputNState_Disable) || \((STATE) == TIM_OutputNState_Enable))

TIM_Capture_Compare_State

/** @defgroup TIM_Capture_Compare_State* @{*/#define TIM_CCx_Enable ((uint16_t)0x0001) #define TIM_CCx_Disable ((uint16_t)0x0000) #define IS_TIM_CCX(CCX) (((CCX) == TIM_CCx_Enable) || \((CCX) == TIM_CCx_Disable))

TIM_Capture_Compare_N_State

/** @defgroup TIM_Capture_Compare_N_State* @{*/#define TIM_CCxN_Enable ((uint16_t)0x0004) #define TIM_CCxN_Disable ((uint16_t)0x0000) #define IS_TIM_CCXN(CCXN) (((CCXN) == TIM_CCxN_Enable) || \((CCXN) == TIM_CCxN_Disable))

TIM_Break_Input_enable_disable

/** @defgroup TIM_Break_Input_enable_disable * @{*/#define TIM_Break_Enable ((uint16_t)0x1000) #define TIM_Break_Disable ((uint16_t)0x0000) #define IS_TIM_BREAK_STATE(STATE) (((STATE) == TIM_Break_Enable) || \((STATE) == TIM_Break_Disable))

TIM_Break_Polarity

/** @defgroup TIM_Break_Polarity * @{*/#define TIM_BreakPolarity_Low ((uint16_t)0x0000) #define TIM_BreakPolarity_High ((uint16_t)0x2000) #define IS_TIM_BREAK_POLARITY(POLARITY) (((POLARITY) == TIM_BreakPolarity_Low) || \((POLARITY) == TIM_BreakPolarity_High))

TIM_AOE_Bit_Set_Reset

/** @defgroup TIM_AOE_Bit_Set_Reset * @{*/#define TIM_AutomaticOutput_Enable ((uint16_t)0x4000) #define TIM_AutomaticOutput_Disable ((uint16_t)0x0000) #define IS_TIM_AUTOMATIC_OUTPUT_STATE(STATE) (((STATE) == TIM_AutomaticOutput_Enable) || \((STATE) == TIM_AutomaticOutput_Disable))

TIM_Lock_level

/** @defgroup TIM_Lock_level* @{*/#define TIM_LOCKLevel_OFF ((uint16_t)0x0000) #define TIM_LOCKLevel_1 ((uint16_t)0x0100) #define TIM_LOCKLevel_2 ((uint16_t)0x0200) #define TIM_LOCKLevel_3 ((uint16_t)0x0300) #define IS_TIM_LOCK_LEVEL(LEVEL) (((LEVEL) == TIM_LOCKLevel_OFF) || \((LEVEL) == TIM_LOCKLevel_1) || \((LEVEL) == TIM_LOCKLevel_2) || \((LEVEL) == TIM_LOCKLevel_3))

TIM_OSSI_Off_State_Selection_for_Idle_mode_state

/** @defgroup TIM_OSSI_Off_State_Selection_for_Idle_mode_state * @{*/#define TIM_OSSIState_Enable ((uint16_t)0x0400) #define TIM_OSSIState_Disable ((uint16_t)0x0000) #define IS_TIM_OSSI_STATE(STATE) (((STATE) == TIM_OSSIState_Enable) || \((STATE) == TIM_OSSIState_Disable))

TIM_OSSR_Off_State_Selection_for_Run_mode_state

/** @defgroup TIM_OSSR_Off_State_Selection_for_Run_mode_state* @{*/#define TIM_OSSRState_Enable ((uint16_t)0x0800) #define TIM_OSSRState_Disable ((uint16_t)0x0000) #define IS_TIM_OSSR_STATE(STATE) (((STATE) == TIM_OSSRState_Enable) || \((STATE) == TIM_OSSRState_Disable))

TIM_Output_Compare_Idle_State

/** @defgroup TIM_Output_Compare_Idle_State * @{*/#define TIM_OCIdleState_Set ((uint16_t)0x0100) #define TIM_OCIdleState_Reset ((uint16_t)0x0000) #define IS_TIM_OCIDLE_STATE(STATE) (((STATE) == TIM_OCIdleState_Set) || \((STATE) == TIM_OCIdleState_Reset))

TIM_Output_Compare_N_Idle_State

/** @defgroup TIM_Output_Compare_N_Idle_State * @{*/#define TIM_OCNIdleState_Set ((uint16_t)0x0200) #define TIM_OCNIdleState_Reset ((uint16_t)0x0000) #define IS_TIM_OCNIDLE_STATE(STATE) (((STATE) == TIM_OCNIdleState_Set) || \((STATE) == TIM_OCNIdleState_Reset))

TIM_Input_Capture_Polarity

/** @defgroup TIM_Input_Capture_Polarity * @{*/#define TIM_ICPolarity_Rising ((uint16_t)0x0000) #define TIM_ICPolarity_Falling ((uint16_t)0x0002) #define TIM_ICPolarity_BothEdge ((uint16_t)0x000A) #define IS_TIM_IC_POLARITY(POLARITY) (((POLARITY) == TIM_ICPolarity_Rising) || \((POLARITY) == TIM_ICPolarity_Falling)|| \((POLARITY) == TIM_ICPolarity_BothEdge))

TIM_Input_Capture_Selection

/** @defgroup TIM_Input_Capture_Selection * @{*/#define TIM_ICSelection_DirectTI ((uint16_t)0x0001) /*!< TIM Input 1, 2, 3 or 4 is selected to be connected to IC1, IC2, IC3 or IC4, respectively */ #define TIM_ICSelection_IndirectTI ((uint16_t)0x0002) /*!< TIM Input 1, 2, 3 or 4 is selected to beconnected to IC2, IC1, IC4 or IC3, respectively. */ #define TIM_ICSelection_TRC ((uint16_t)0x0003) /*!< TIM Input 1, 2, 3 or 4 is selected to be connected to TRC. */ #define IS_TIM_IC_SELECTION(SELECTION) (((SELECTION) == TIM_ICSelection_DirectTI) || \((SELECTION) == TIM_ICSelection_IndirectTI) || \((SELECTION) == TIM_ICSelection_TRC))

TIM_Input_Capture_Prescaler

/** @defgroup TIM_Input_Capture_Prescaler * @{*/#define TIM_ICPSC_DIV1 ((uint16_t)0x0000) /*!< Capture performed each time an edge is detected on the capture input. */ #define TIM_ICPSC_DIV2 ((uint16_t)0x0004) /*!< Capture performed once every 2 events. */ #define TIM_ICPSC_DIV4 ((uint16_t)0x0008) /*!< Capture performed once every 4 events. */ #define TIM_ICPSC_DIV8 ((uint16_t)0x000C) /*!< Capture performed once every 8 events. */ #define IS_TIM_IC_PRESCALER(PRESCALER) (((PRESCALER) == TIM_ICPSC_DIV1) || \((PRESCALER) == TIM_ICPSC_DIV2) || \((PRESCALER) == TIM_ICPSC_DIV4) || \((PRESCALER) == TIM_ICPSC_DIV8))

TIM_interrupt_sources

/** @defgroup TIM_interrupt_sources * @{*/#define TIM_IT_Update ((uint16_t)0x0001) #define TIM_IT_CC1 ((uint16_t)0x0002) #define TIM_IT_CC2 ((uint16_t)0x0004) #define TIM_IT_CC3 ((uint16_t)0x0008) #define TIM_IT_CC4 ((uint16_t)0x0010) #define TIM_IT_COM ((uint16_t)0x0020) #define TIM_IT_Trigger ((uint16_t)0x0040) #define TIM_IT_Break ((uint16_t)0x0080) #define IS_TIM_IT(IT) ((((IT) & (uint16_t)0xFF00) == 0x0000) && ((IT) != 0x0000))#define IS_TIM_GET_IT(IT) (((IT) == TIM_IT_Update) || \((IT) == TIM_IT_CC1) || \((IT) == TIM_IT_CC2) || \((IT) == TIM_IT_CC3) || \((IT) == TIM_IT_CC4) || \((IT) == TIM_IT_COM) || \((IT) == TIM_IT_Trigger) || \((IT) == TIM_IT_Break))

TIM_DMA_Base_address

/** @defgroup TIM_DMA_Base_address * @{*/#define TIM_DMABase_CR1 ((uint16_t)0x0000) #define TIM_DMABase_CR2 ((uint16_t)0x0001) #define TIM_DMABase_SMCR ((uint16_t)0x0002) #define TIM_DMABase_DIER ((uint16_t)0x0003) #define TIM_DMABase_SR ((uint16_t)0x0004) #define TIM_DMABase_EGR ((uint16_t)0x0005) #define TIM_DMABase_CCMR1 ((uint16_t)0x0006) #define TIM_DMABase_CCMR2 ((uint16_t)0x0007) #define TIM_DMABase_CCER ((uint16_t)0x0008) #define TIM_DMABase_CNT ((uint16_t)0x0009) #define TIM_DMABase_PSC ((uint16_t)0x000A) #define TIM_DMABase_ARR ((uint16_t)0x000B) #define TIM_DMABase_RCR ((uint16_t)0x000C) #define TIM_DMABase_CCR1 ((uint16_t)0x000D) #define TIM_DMABase_CCR2 ((uint16_t)0x000E) #define TIM_DMABase_CCR3 ((uint16_t)0x000F) #define TIM_DMABase_CCR4 ((uint16_t)0x0010) #define TIM_DMABase_BDTR ((uint16_t)0x0011) #define TIM_DMABase_DCR ((uint16_t)0x0012) #define TIM_DMABase_OR ((uint16_t)0x0013) #define IS_TIM_DMA_BASE(BASE) (((BASE) == TIM_DMABase_CR1) || \((BASE) == TIM_DMABase_CR2) || \((BASE) == TIM_DMABase_SMCR) || \((BASE) == TIM_DMABase_DIER) || \((BASE) == TIM_DMABase_SR) || \((BASE) == TIM_DMABase_EGR) || \((BASE) == TIM_DMABase_CCMR1) || \((BASE) == TIM_DMABase_CCMR2) || \((BASE) == TIM_DMABase_CCER) || \((BASE) == TIM_DMABase_CNT) || \((BASE) == TIM_DMABase_PSC) || \((BASE) == TIM_DMABase_ARR) || \((BASE) == TIM_DMABase_RCR) || \((BASE) == TIM_DMABase_CCR1) || \((BASE) == TIM_DMABase_CCR2) || \((BASE) == TIM_DMABase_CCR3) || \((BASE) == TIM_DMABase_CCR4) || \((BASE) == TIM_DMABase_BDTR) || \((BASE) == TIM_DMABase_DCR) || \((BASE) == TIM_DMABase_OR))

TIM_DMA_Burst_Length

/** @defgroup TIM_DMA_Burst_Length * @{*/#define TIM_DMABurstLength_1Transfer ((uint16_t)0x0000) #define TIM_DMABurstLength_2Transfers ((uint16_t)0x0100) #define TIM_DMABurstLength_3Transfers ((uint16_t)0x0200) #define TIM_DMABurstLength_4Transfers ((uint16_t)0x0300) #define TIM_DMABurstLength_5Transfers ((uint16_t)0x0400) #define TIM_DMABurstLength_6Transfers ((uint16_t)0x0500) #define TIM_DMABurstLength_7Transfers ((uint16_t)0x0600) #define TIM_DMABurstLength_8Transfers ((uint16_t)0x0700) #define TIM_DMABurstLength_9Transfers ((uint16_t)0x0800) #define TIM_DMABurstLength_10Transfers ((uint16_t)0x0900) #define TIM_DMABurstLength_11Transfers ((uint16_t)0x0A00) #define TIM_DMABurstLength_12Transfers ((uint16_t)0x0B00) #define TIM_DMABurstLength_13Transfers ((uint16_t)0x0C00) #define TIM_DMABurstLength_14Transfers ((uint16_t)0x0D00) #define TIM_DMABurstLength_15Transfers ((uint16_t)0x0E00) #define TIM_DMABurstLength_16Transfers ((uint16_t)0x0F00) #define TIM_DMABurstLength_17Transfers ((uint16_t)0x1000) #define TIM_DMABurstLength_18Transfers ((uint16_t)0x1100) #define IS_TIM_DMA_LENGTH(LENGTH) (((LENGTH) == TIM_DMABurstLength_1Transfer) || \((LENGTH) == TIM_DMABurstLength_2Transfers) || \((LENGTH) == TIM_DMABurstLength_3Transfers) || \((LENGTH) == TIM_DMABurstLength_4Transfers) || \((LENGTH) == TIM_DMABurstLength_5Transfers) || \((LENGTH) == TIM_DMABurstLength_6Transfers) || \((LENGTH) == TIM_DMABurstLength_7Transfers) || \((LENGTH) == TIM_DMABurstLength_8Transfers) || \((LENGTH) == TIM_DMABurstLength_9Transfers) || \((LENGTH) == TIM_DMABurstLength_10Transfers) || \((LENGTH) == TIM_DMABurstLength_11Transfers) || \((LENGTH) == TIM_DMABurstLength_12Transfers) || \((LENGTH) == TIM_DMABurstLength_13Transfers) || \((LENGTH) == TIM_DMABurstLength_14Transfers) || \((LENGTH) == TIM_DMABurstLength_15Transfers) || \((LENGTH) == TIM_DMABurstLength_16Transfers) || \((LENGTH) == TIM_DMABurstLength_17Transfers) || \((LENGTH) == TIM_DMABurstLength_18Transfers))

TIM_DMA_sources

/** @defgroup TIM_DMA_sources * @{*/#define TIM_DMA_Update ((uint16_t)0x0100) #define TIM_DMA_CC1 ((uint16_t)0x0200) #define TIM_DMA_CC2 ((uint16_t)0x0400) #define TIM_DMA_CC3 ((uint16_t)0x0800) #define TIM_DMA_CC4 ((uint16_t)0x1000) #define TIM_DMA_COM ((uint16_t)0x2000) #define TIM_DMA_Trigger ((uint16_t)0x4000) #define IS_TIM_DMA_SOURCE(SOURCE) ((((SOURCE) & (uint16_t)0x80FF) == 0x0000) && ((SOURCE) != 0x0000))

TIM_External_Trigger_Prescaler

/** @defgroup TIM_External_Trigger_Prescaler * @{*/#define TIM_ExtTRGPSC_OFF ((uint16_t)0x0000) #define TIM_ExtTRGPSC_DIV2 ((uint16_t)0x1000) #define TIM_ExtTRGPSC_DIV4 ((uint16_t)0x2000) #define TIM_ExtTRGPSC_DIV8 ((uint16_t)0x3000) #define IS_TIM_EXT_PRESCALER(PRESCALER) (((PRESCALER) == TIM_ExtTRGPSC_OFF) || \((PRESCALER) == TIM_ExtTRGPSC_DIV2) || \((PRESCALER) == TIM_ExtTRGPSC_DIV4) || \((PRESCALER) == TIM_ExtTRGPSC_DIV8))

TIM_Internal_Trigger_Selection

/** @defgroup TIM_Internal_Trigger_Selection * @{*/#define TIM_TS_ITR0 ((uint16_t)0x0000) #define TIM_TS_ITR1 ((uint16_t)0x0010) #define TIM_TS_ITR2 ((uint16_t)0x0020) #define TIM_TS_ITR3 ((uint16_t)0x0030) #define TIM_TS_TI1F_ED ((uint16_t)0x0040) #define TIM_TS_TI1FP1 ((uint16_t)0x0050) #define TIM_TS_TI2FP2 ((uint16_t)0x0060) #define TIM_TS_ETRF ((uint16_t)0x0070) #define IS_TIM_TRIGGER_SELECTION(SELECTION) (((SELECTION) == TIM_TS_ITR0) || \((SELECTION) == TIM_TS_ITR1) || \((SELECTION) == TIM_TS_ITR2) || \((SELECTION) == TIM_TS_ITR3) || \((SELECTION) == TIM_TS_TI1F_ED) || \((SELECTION) == TIM_TS_TI1FP1) || \((SELECTION) == TIM_TS_TI2FP2) || \((SELECTION) == TIM_TS_ETRF)) #define IS_TIM_INTERNAL_TRIGGER_SELECTION(SELECTION) (((SELECTION) == TIM_TS_ITR0) || \((SELECTION) == TIM_TS_ITR1) || \((SELECTION) == TIM_TS_ITR2) || \((SELECTION) == TIM_TS_ITR3))

TIM_TIx_External_Clock_Source

/** @defgroup TIM_TIx_External_Clock_Source * @{*/#define TIM_TIxExternalCLK1Source_TI1 ((uint16_t)0x0050) #define TIM_TIxExternalCLK1Source_TI2 ((uint16_t)0x0060) #define TIM_TIxExternalCLK1Source_TI1ED ((uint16_t)0x0040)

TIM_External_Trigger_Polarity

/** @defgroup TIM_External_Trigger_Polarity * @{*/ #define TIM_ExtTRGPolarity_Inverted ((uint16_t)0x8000) #define TIM_ExtTRGPolarity_NonInverted ((uint16_t)0x0000) #define IS_TIM_EXT_POLARITY(POLARITY) (((POLARITY) == TIM_ExtTRGPolarity_Inverted) || \((POLARITY) == TIM_ExtTRGPolarity_NonInverted))

TIM_Prescaler_Reload_Mode

/** @defgroup TIM_Prescaler_Reload_Mode * @{*/#define TIM_PSCReloadMode_Update ((uint16_t)0x0000) #define TIM_PSCReloadMode_Immediate ((uint16_t)0x0001) #define IS_TIM_PRESCALER_RELOAD(RELOAD) (((RELOAD) == TIM_PSCReloadMode_Update) || \((RELOAD) == TIM_PSCReloadMode_Immediate))

TIM_Forced_Action

/** @defgroup TIM_Forced_Action * @{*/#define TIM_ForcedAction_Active ((uint16_t)0x0050) #define TIM_ForcedAction_InActive ((uint16_t)0x0040) #define IS_TIM_FORCED_ACTION(ACTION) (((ACTION) == TIM_ForcedAction_Active) || \((ACTION) == TIM_ForcedAction_InActive))

TIM_Encoder_Mode

/** @defgroup TIM_Encoder_Mode * @{*/#define TIM_EncoderMode_TI1 ((uint16_t)0x0001) #define TIM_EncoderMode_TI2 ((uint16_t)0x0002) #define TIM_EncoderMode_TI12 ((uint16_t)0x0003) #define IS_TIM_ENCODER_MODE(MODE) (((MODE) == TIM_EncoderMode_TI1) || \((MODE) == TIM_EncoderMode_TI2) || \((MODE) == TIM_EncoderMode_TI12))

TIM_Event_Source

/** @defgroup TIM_Event_Source * @{*/#define TIM_EventSource_Update ((uint16_t)0x0001) #define TIM_EventSource_CC1 ((uint16_t)0x0002) #define TIM_EventSource_CC2 ((uint16_t)0x0004) #define TIM_EventSource_CC3 ((uint16_t)0x0008) #define TIM_EventSource_CC4 ((uint16_t)0x0010) #define TIM_EventSource_COM ((uint16_t)0x0020) #define TIM_EventSource_Trigger ((uint16_t)0x0040) #define TIM_EventSource_Break ((uint16_t)0x0080) #define IS_TIM_EVENT_SOURCE(SOURCE) ((((SOURCE) & (uint16_t)0xFF00) == 0x0000) && ((SOURCE) != 0x0000))

TIM_Update_Source

/** @defgroup TIM_Update_Source * @{*/#define TIM_UpdateSource_Global ((uint16_t)0x0000) /*!< Source of update is the counter overflow/underflowor the setting of UG bit, or an update generationthrough the slave mode controller. */ #define TIM_UpdateSource_Regular ((uint16_t)0x0001) /*!< Source of update is counter overflow/underflow. */ #define IS_TIM_UPDATE_SOURCE(SOURCE) (((SOURCE) == TIM_UpdateSource_Global) || \((SOURCE) == TIM_UpdateSource_Regular))

TIM_Output_Compare_Preload_State

/** @defgroup TIM_Output_Compare_Preload_State * @{*/#define TIM_OCPreload_Enable ((uint16_t)0x0008) #define TIM_OCPreload_Disable ((uint16_t)0x0000) #define IS_TIM_OCPRELOAD_STATE(STATE) (((STATE) == TIM_OCPreload_Enable) || \((STATE) == TIM_OCPreload_Disable))

TIM_Output_Compare_Fast_State

/** @defgroup TIM_Output_Compare_Fast_State * @{*/#define TIM_OCFast_Enable ((uint16_t)0x0004) #define TIM_OCFast_Disable ((uint16_t)0x0000) #define IS_TIM_OCFAST_STATE(STATE) (((STATE) == TIM_OCFast_Enable) || \((STATE) == TIM_OCFast_Disable))

TIM_Output_Compare_Clear_State

/** @defgroup TIM_Output_Compare_Clear_State * @{*/#define TIM_OCClear_Enable ((uint16_t)0x0080) #define TIM_OCClear_Disable ((uint16_t)0x0000) #define IS_TIM_OCCLEAR_STATE(STATE) (((STATE) == TIM_OCClear_Enable) || \((STATE) == TIM_OCClear_Disable))

TIM_Trigger_Output_Source

/** @defgroup TIM_Trigger_Output_Source * @{*/#define TIM_TRGOSource_Reset ((uint16_t)0x0000) #define TIM_TRGOSource_Enable ((uint16_t)0x0010) #define TIM_TRGOSource_Update ((uint16_t)0x0020) #define TIM_TRGOSource_OC1 ((uint16_t)0x0030) #define TIM_TRGOSource_OC1Ref ((uint16_t)0x0040) #define TIM_TRGOSource_OC2Ref ((uint16_t)0x0050) #define TIM_TRGOSource_OC3Ref ((uint16_t)0x0060) #define TIM_TRGOSource_OC4Ref ((uint16_t)0x0070) #define IS_TIM_TRGO_SOURCE(SOURCE) (((SOURCE) == TIM_TRGOSource_Reset) || \((SOURCE) == TIM_TRGOSource_Enable) || \((SOURCE) == TIM_TRGOSource_Update) || \((SOURCE) == TIM_TRGOSource_OC1) || \((SOURCE) == TIM_TRGOSource_OC1Ref) || \((SOURCE) == TIM_TRGOSource_OC2Ref) || \((SOURCE) == TIM_TRGOSource_OC3Ref) || \((SOURCE) == TIM_TRGOSource_OC4Ref))

TIM_Slave_Mode

/** @defgroup TIM_Slave_Mode * @{*/#define TIM_SlaveMode_Reset ((uint16_t)0x0004) #define TIM_SlaveMode_Gated ((uint16_t)0x0005) #define TIM_SlaveMode_Trigger ((uint16_t)0x0006) #define TIM_SlaveMode_External1 ((uint16_t)0x0007) #define IS_TIM_SLAVE_MODE(MODE) (((MODE) == TIM_SlaveMode_Reset) || \((MODE) == TIM_SlaveMode_Gated) || \((MODE) == TIM_SlaveMode_Trigger) || \((MODE) == TIM_SlaveMode_External1))

TIM_Master_Slave_Mode

/** @defgroup TIM_Master_Slave_Mode * @{*/#define TIM_MasterSlaveMode_Enable ((uint16_t)0x0080) #define TIM_MasterSlaveMode_Disable ((uint16_t)0x0000) #define IS_TIM_MSM_STATE(STATE) (((STATE) == TIM_MasterSlaveMode_Enable) || \((STATE) == TIM_MasterSlaveMode_Disable))

TIM_Remap

/** @defgroup TIM_Remap * @{*/#define TIM2_TIM8_TRGO ((uint16_t)0x0000) #define TIM2_ETH_PTP ((uint16_t)0x0400) #define TIM2_USBFS_SOF ((uint16_t)0x0800) #define TIM2_USBHS_SOF ((uint16_t)0x0C00)#define TIM5_GPIO ((uint16_t)0x0000) #define TIM5_LSI ((uint16_t)0x0040) #define TIM5_LSE ((uint16_t)0x0080) #define TIM5_RTC ((uint16_t)0x00C0)#define TIM11_GPIO ((uint16_t)0x0000) #define TIM11_HSE ((uint16_t)0x0002)#define IS_TIM_REMAP(TIM_REMAP) (((TIM_REMAP) == TIM2_TIM8_TRGO)||\((TIM_REMAP) == TIM2_ETH_PTP)||\((TIM_REMAP) == TIM2_USBFS_SOF)||\((TIM_REMAP) == TIM2_USBHS_SOF)||\((TIM_REMAP) == TIM5_GPIO)||\((TIM_REMAP) == TIM5_LSI)||\((TIM_REMAP) == TIM5_LSE)||\((TIM_REMAP) == TIM5_RTC)||\((TIM_REMAP) == TIM11_GPIO)||\((TIM_REMAP) == TIM11_HSE))

TIM_Flags

/** @defgroup TIM_Flags * @{*/#define TIM_FLAG_Update ((uint16_t)0x0001) #define TIM_FLAG_CC1 ((uint16_t)0x0002) #define TIM_FLAG_CC2 ((uint16_t)0x0004) #define TIM_FLAG_CC3 ((uint16_t)0x0008) #define TIM_FLAG_CC4 ((uint16_t)0x0010) #define TIM_FLAG_COM ((uint16_t)0x0020) #define TIM_FLAG_Trigger ((uint16_t)0x0040) #define TIM_FLAG_Break ((uint16_t)0x0080) #define TIM_FLAG_CC1OF ((uint16_t)0x0200) #define TIM_FLAG_CC2OF ((uint16_t)0x0400) #define TIM_FLAG_CC3OF ((uint16_t)0x0800) #define TIM_FLAG_CC4OF ((uint16_t)0x1000) #define IS_TIM_GET_FLAG(FLAG) (((FLAG) == TIM_FLAG_Update) || \((FLAG) == TIM_FLAG_CC1) || \((FLAG) == TIM_FLAG_CC2) || \((FLAG) == TIM_FLAG_CC3) || \((FLAG) == TIM_FLAG_CC4) || \((FLAG) == TIM_FLAG_COM) || \((FLAG) == TIM_FLAG_Trigger) || \((FLAG) == TIM_FLAG_Break) || \((FLAG) == TIM_FLAG_CC1OF) || \((FLAG) == TIM_FLAG_CC2OF) || \((FLAG) == TIM_FLAG_CC3OF) || \((FLAG) == TIM_FLAG_CC4OF))

其它

/** @defgroup TIM_Input_Capture_Filer_Value * @{*/#define IS_TIM_IC_FILTER(ICFILTER) ((ICFILTER) <= 0xF) /*** @}*/ /** @defgroup TIM_External_Trigger_Filter * @{*/#define IS_TIM_EXT_FILTER(EXTFILTER) ((EXTFILTER) <= 0xF) /*** @}*/ /** @defgroup TIM_Legacy * @{*/#define TIM_DMABurstLength_1Byte TIM_DMABurstLength_1Transfer #define TIM_DMABurstLength_2Bytes TIM_DMABurstLength_2Transfers #define TIM_DMABurstLength_3Bytes TIM_DMABurstLength_3Transfers #define TIM_DMABurstLength_4Bytes TIM_DMABurstLength_4Transfers #define TIM_DMABurstLength_5Bytes TIM_DMABurstLength_5Transfers #define TIM_DMABurstLength_6Bytes TIM_DMABurstLength_6Transfers #define TIM_DMABurstLength_7Bytes TIM_DMABurstLength_7Transfers #define TIM_DMABurstLength_8Bytes TIM_DMABurstLength_8Transfers #define TIM_DMABurstLength_9Bytes TIM_DMABurstLength_9Transfers #define TIM_DMABurstLength_10Bytes TIM_DMABurstLength_10Transfers #define TIM_DMABurstLength_11Bytes TIM_DMABurstLength_11Transfers #define TIM_DMABurstLength_12Bytes TIM_DMABurstLength_12Transfers #define TIM_DMABurstLength_13Bytes TIM_DMABurstLength_13Transfers #define TIM_DMABurstLength_14Bytes TIM_DMABurstLength_14Transfers #define TIM_DMABurstLength_15Bytes TIM_DMABurstLength_15Transfers #define TIM_DMABurstLength_16Bytes TIM_DMABurstLength_16Transfers #define TIM_DMABurstLength_17Bytes TIM_DMABurstLength_17Transfers #define TIM_DMABurstLength_18Bytes TIM_DMABurstLength_18Transfers

03. 相關函數

/* TimeBase management ********************************************************/ void TIM_DeInit(TIM_TypeDef* TIMx); void TIM_TimeBaseInit(TIM_TypeDef* TIMx, TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct); void TIM_TimeBaseStructInit(TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct); void TIM_PrescalerConfig(TIM_TypeDef* TIMx, uint16_t Prescaler, uint16_t TIM_PSCReloadMode); void TIM_CounterModeConfig(TIM_TypeDef* TIMx, uint16_t TIM_CounterMode); void TIM_SetCounter(TIM_TypeDef* TIMx, uint32_t Counter); void TIM_SetAutoreload(TIM_TypeDef* TIMx, uint32_t Autoreload); uint32_t TIM_GetCounter(TIM_TypeDef* TIMx); uint16_t TIM_GetPrescaler(TIM_TypeDef* TIMx); void TIM_UpdateDisableConfig(TIM_TypeDef* TIMx, FunctionalState NewState); void TIM_UpdateRequestConfig(TIM_TypeDef* TIMx, uint16_t TIM_UpdateSource); void TIM_ARRPreloadConfig(TIM_TypeDef* TIMx, FunctionalState NewState); void TIM_SelectOnePulseMode(TIM_TypeDef* TIMx, uint16_t TIM_OPMode); void TIM_SetClockDivision(TIM_TypeDef* TIMx, uint16_t TIM_CKD); void TIM_Cmd(TIM_TypeDef* TIMx, FunctionalState NewState);/* Output Compare management **************************************************/ void TIM_OC1Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct); void TIM_OC2Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct); void TIM_OC3Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct); void TIM_OC4Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct); void TIM_OCStructInit(TIM_OCInitTypeDef* TIM_OCInitStruct); void TIM_SelectOCxM(TIM_TypeDef* TIMx, uint16_t TIM_Channel, uint16_t TIM_OCMode); void TIM_SetCompare1(TIM_TypeDef* TIMx, uint32_t Compare1); void TIM_SetCompare2(TIM_TypeDef* TIMx, uint32_t Compare2); void TIM_SetCompare3(TIM_TypeDef* TIMx, uint32_t Compare3); void TIM_SetCompare4(TIM_TypeDef* TIMx, uint32_t Compare4); void TIM_ForcedOC1Config(TIM_TypeDef* TIMx, uint16_t TIM_ForcedAction); void TIM_ForcedOC2Config(TIM_TypeDef* TIMx, uint16_t TIM_ForcedAction); void TIM_ForcedOC3Config(TIM_TypeDef* TIMx, uint16_t TIM_ForcedAction); void TIM_ForcedOC4Config(TIM_TypeDef* TIMx, uint16_t TIM_ForcedAction); void TIM_OC1PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload); void TIM_OC2PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload); void TIM_OC3PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload); void TIM_OC4PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload); void TIM_OC1FastConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCFast); void TIM_OC2FastConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCFast); void TIM_OC3FastConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCFast); void TIM_OC4FastConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCFast); void TIM_ClearOC1Ref(TIM_TypeDef* TIMx, uint16_t TIM_OCClear); void TIM_ClearOC2Ref(TIM_TypeDef* TIMx, uint16_t TIM_OCClear); void TIM_ClearOC3Ref(TIM_TypeDef* TIMx, uint16_t TIM_OCClear); void TIM_ClearOC4Ref(TIM_TypeDef* TIMx, uint16_t TIM_OCClear); void TIM_OC1PolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPolarity); void TIM_OC1NPolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCNPolarity); void TIM_OC2PolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPolarity); void TIM_OC2NPolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCNPolarity); void TIM_OC3PolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPolarity); void TIM_OC3NPolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCNPolarity); void TIM_OC4PolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPolarity); void TIM_CCxCmd(TIM_TypeDef* TIMx, uint16_t TIM_Channel, uint16_t TIM_CCx); void TIM_CCxNCmd(TIM_TypeDef* TIMx, uint16_t TIM_Channel, uint16_t TIM_CCxN);/* Input Capture management ***************************************************/ void TIM_ICInit(TIM_TypeDef* TIMx, TIM_ICInitTypeDef* TIM_ICInitStruct); void TIM_ICStructInit(TIM_ICInitTypeDef* TIM_ICInitStruct); void TIM_PWMIConfig(TIM_TypeDef* TIMx, TIM_ICInitTypeDef* TIM_ICInitStruct); uint32_t TIM_GetCapture1(TIM_TypeDef* TIMx); uint32_t TIM_GetCapture2(TIM_TypeDef* TIMx); uint32_t TIM_GetCapture3(TIM_TypeDef* TIMx); uint32_t TIM_GetCapture4(TIM_TypeDef* TIMx); void TIM_SetIC1Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC); void TIM_SetIC2Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC); void TIM_SetIC3Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC); void TIM_SetIC4Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC);/* Advanced-control timers (TIM1 and TIM8) specific features ******************/ void TIM_BDTRConfig(TIM_TypeDef* TIMx, TIM_BDTRInitTypeDef *TIM_BDTRInitStruct); void TIM_BDTRStructInit(TIM_BDTRInitTypeDef* TIM_BDTRInitStruct); void TIM_CtrlPWMOutputs(TIM_TypeDef* TIMx, FunctionalState NewState); void TIM_SelectCOM(TIM_TypeDef* TIMx, FunctionalState NewState); void TIM_CCPreloadControl(TIM_TypeDef* TIMx, FunctionalState NewState);/* Interrupts, DMA and flags management ***************************************/ void TIM_ITConfig(TIM_TypeDef* TIMx, uint16_t TIM_IT, FunctionalState NewState); void TIM_GenerateEvent(TIM_TypeDef* TIMx, uint16_t TIM_EventSource); FlagStatus TIM_GetFlagStatus(TIM_TypeDef* TIMx, uint16_t TIM_FLAG); void TIM_ClearFlag(TIM_TypeDef* TIMx, uint16_t TIM_FLAG); ITStatus TIM_GetITStatus(TIM_TypeDef* TIMx, uint16_t TIM_IT); void TIM_ClearITPendingBit(TIM_TypeDef* TIMx, uint16_t TIM_IT); void TIM_DMAConfig(TIM_TypeDef* TIMx, uint16_t TIM_DMABase, uint16_t TIM_DMABurstLength); void TIM_DMACmd(TIM_TypeDef* TIMx, uint16_t TIM_DMASource, FunctionalState NewState); void TIM_SelectCCDMA(TIM_TypeDef* TIMx, FunctionalState NewState);/* Clocks management **********************************************************/ void TIM_InternalClockConfig(TIM_TypeDef* TIMx); void TIM_ITRxExternalClockConfig(TIM_TypeDef* TIMx, uint16_t TIM_InputTriggerSource); void TIM_TIxExternalClockConfig(TIM_TypeDef* TIMx, uint16_t TIM_TIxExternalCLKSource,uint16_t TIM_ICPolarity, uint16_t ICFilter); void TIM_ETRClockMode1Config(TIM_TypeDef* TIMx, uint16_t TIM_ExtTRGPrescaler, uint16_t TIM_ExtTRGPolarity,uint16_t ExtTRGFilter); void TIM_ETRClockMode2Config(TIM_TypeDef* TIMx, uint16_t TIM_ExtTRGPrescaler, uint16_t TIM_ExtTRGPolarity, uint16_t ExtTRGFilter);/* Synchronization management *************************************************/ void TIM_SelectInputTrigger(TIM_TypeDef* TIMx, uint16_t TIM_InputTriggerSource); void TIM_SelectOutputTrigger(TIM_TypeDef* TIMx, uint16_t TIM_TRGOSource); void TIM_SelectSlaveMode(TIM_TypeDef* TIMx, uint16_t TIM_SlaveMode); void TIM_SelectMasterSlaveMode(TIM_TypeDef* TIMx, uint16_t TIM_MasterSlaveMode); void TIM_ETRConfig(TIM_TypeDef* TIMx, uint16_t TIM_ExtTRGPrescaler, uint16_t TIM_ExtTRGPolarity,uint16_t ExtTRGFilter);/* Specific interface management **********************************************/ void TIM_EncoderInterfaceConfig(TIM_TypeDef* TIMx, uint16_t TIM_EncoderMode,uint16_t TIM_IC1Polarity, uint16_t TIM_IC2Polarity); void TIM_SelectHallSensor(TIM_TypeDef* TIMx, FunctionalState NewState);/* Specific remapping management **********************************************/ void TIM_RemapConfig(TIM_TypeDef* TIMx, uint16_t TIM_Remap);

04. 結構體封裝

/** * @brief TIM*/typedef struct {__IO uint16_t CR1; /*!< TIM control register 1, Address offset: 0x00 */uint16_t RESERVED0; /*!< Reserved, 0x02 */__IO uint16_t CR2; /*!< TIM control register 2, Address offset: 0x04 */uint16_t RESERVED1; /*!< Reserved, 0x06 */__IO uint16_t SMCR; /*!< TIM slave mode control register, Address offset: 0x08 */uint16_t RESERVED2; /*!< Reserved, 0x0A */__IO uint16_t DIER; /*!< TIM DMA/interrupt enable register, Address offset: 0x0C */uint16_t RESERVED3; /*!< Reserved, 0x0E */__IO uint16_t SR; /*!< TIM status register, Address offset: 0x10 */uint16_t RESERVED4; /*!< Reserved, 0x12 */__IO uint16_t EGR; /*!< TIM event generation register, Address offset: 0x14 */uint16_t RESERVED5; /*!< Reserved, 0x16 */__IO uint16_t CCMR1; /*!< TIM capture/compare mode register 1, Address offset: 0x18 */uint16_t RESERVED6; /*!< Reserved, 0x1A */__IO uint16_t CCMR2; /*!< TIM capture/compare mode register 2, Address offset: 0x1C */uint16_t RESERVED7; /*!< Reserved, 0x1E */__IO uint16_t CCER; /*!< TIM capture/compare enable register, Address offset: 0x20 */uint16_t RESERVED8; /*!< Reserved, 0x22 */__IO uint32_t CNT; /*!< TIM counter register, Address offset: 0x24 */__IO uint16_t PSC; /*!< TIM prescaler, Address offset: 0x28 */uint16_t RESERVED9; /*!< Reserved, 0x2A */__IO uint32_t ARR; /*!< TIM auto-reload register, Address offset: 0x2C */__IO uint16_t RCR; /*!< TIM repetition counter register, Address offset: 0x30 */uint16_t RESERVED10; /*!< Reserved, 0x32 */__IO uint32_t CCR1; /*!< TIM capture/compare register 1, Address offset: 0x34 */__IO uint32_t CCR2; /*!< TIM capture/compare register 2, Address offset: 0x38 */__IO uint32_t CCR3; /*!< TIM capture/compare register 3, Address offset: 0x3C */__IO uint32_t CCR4; /*!< TIM capture/compare register 4, Address offset: 0x40 */__IO uint16_t BDTR; /*!< TIM break and dead-time register, Address offset: 0x44 */uint16_t RESERVED11; /*!< Reserved, 0x46 */__IO uint16_t DCR; /*!< TIM DMA control register, Address offset: 0x48 */uint16_t RESERVED12; /*!< Reserved, 0x4A */__IO uint16_t DMAR; /*!< TIM DMA address for full transfer, Address offset: 0x4C */uint16_t RESERVED13; /*!< Reserved, 0x4E */__IO uint16_t OR; /*!< TIM option register, Address offset: 0x50 */uint16_t RESERVED14; /*!< Reserved, 0x52 */ } TIM_TypeDef;

05. 附錄

5.1 【STM32】STM32系列教程匯總

網址:【STM32】STM32系列教程匯總

06. 聲明

該教程參考了固件庫

總結

以上是生活随笔為你收集整理的【STM32】定时器相关函数和类型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

狠狠色丁香婷婷综合久小说久 | 国产一区 在线播放 | 99精品国产在热久久下载 | 国产粉嫩在线 | 96超碰在线| 97成人精品视频在线观看 | 成人电影毛片 | 在线看一区 | 日韩一区二区三区高清免费看看 | 中文字幕字幕中文 | 蜜臀av在线一区二区三区 | 久久视精品 | 91麻豆精品国产91久久久无需广告 | 国产成人精品一区在线 | 久久视频国产精品免费视频在线 | 免费午夜网站 | 91刺激视频 | 国产高清视频在线观看 | 一区二区三区在线观看 | 91资源在线视频 | 精品中文字幕在线 | 欧美激情在线网站 | 国产打女人屁股调教97 | 热久久免费视频 | 天天色官网 | 成人毛片网 | 久久久久久久免费观看 | 精品色综合| 成人网大片 | 首页中文字幕 | 久久久精品电影 | 91爱爱视频| 婷婷色中文网 | 婷婷综合影院 | 午夜在线观看影院 | 久久国产剧场电影 | 香蕉手机在线 | 国产精品美女 | 在线观看视频黄色 | 在线电影中文字幕 | 国产精品一区二区三区视频免费 | 日韩欧美一区二区三区在线观看 | 婷婷色综合色 | 日韩动漫免费观看高清完整版在线观看 | 欧美成人理伦片 | 日本狠狠干 | 天天操欧美| 免费在线国产精品 | 99热在线观看 | 成人一级 | 国产小视频免费在线观看 | 久久综合五月天婷婷伊人 | 欧美一区二区免费在线观看 | 狠狠天天 | www.av免费观看 | 狠狠狠狠狠狠狠 | 欧美看片 | 国产免费xvideos视频入口 | 天天射天天干天天插 | 色com| 久久老司机精品视频 | 99超碰在线观看 | 日韩免费视频在线观看 | 国产成人精品久久二区二区 | 久久无码精品一区二区三区 | 精品国产福利在线 | 91污视频在线 | 在线观看国产v片 | 中国美女一级看片 | 四虎在线免费观看 | 久久这里只精品 | 久久一区二区三区超碰国产精品 | 欧美日韩超碰 | 精品视频免费播放 | 国产亚洲精品美女 | 欧美激情精品久久久久久变态 | 日韩欧美在线高清 | 永久免费视频国产 | 精品国产视频在线观看 | 中文字幕久久精品亚洲乱码 | 亚洲日韩精品欧美一区二区 | 在线视频一二区 | 国产黄色片网站 | 草久热 | 狠狠天天 | japanesefreesex中国少妇 | 天天射综合网视频 | 日韩在线观看中文 | 五月激情片 | 亚洲视频久久久 | 日韩在线免费视频观看 | 五月天婷婷在线播放 | av免费线看 | 在线看小早川怜子av | 精品在线视频一区 | 国产美腿白丝袜足在线av | 国产一区二区在线精品 | 国产视频一二区 | 精品久久久久亚洲 | 首页中文字幕 | 九九色网 | 国产精品黄色 | 国产成人99久久亚洲综合精品 | 亚洲精品午夜久久久久久久久久久 | 成人黄色电影在线观看 | 亚洲国产网站 | 国模视频一区二区 | 91成人破解版 | 99福利片 | 国产视频在线播放 | 亚洲97在线 | 99精品久久只有精品 | 四虎小视频 | 国产免费xvideos视频入口 | 日韩免费成人 | 瑞典xxxx性hd极品 | 97免费在线观看视频 | 欧美日韩中文另类 | 一区二区三区在线免费观看 | 日韩黄色在线电影 | 久久精品久久久精品美女 | 在线看片日韩 | 日韩特级黄色片 | 日韩69av | 日韩天天干| 国产色在线,com | 亚洲全部视频 | 一区二区三区中文字幕在线观看 | 国产免费观看久久黄 | 国产成人在线看 | 欧美色图p| 少妇18xxxx性xxxx片 | 亚洲午夜久久久综合37日本 | 国产麻豆精品在线观看 | 久久在线免费 | 婷婷视频 | 国产亚洲亚洲 | 久久99在线观看 | 97超碰免费在线观看 | 国产精品视频内 | 2024av| 久草在线视频国产 | 夜夜婷婷 | 色婷婷一 | 丁香婷婷综合激情五月色 | 九色在线 | 91色九色| 午夜国产福利在线观看 | 亚洲精品1234区 | 国产精品免费高清 | 亚洲天堂精品视频 | 99久久日韩精品免费热麻豆美女 | 99精品亚洲| 中文字幕免费高清 | 黄色精品久久 | 久草香蕉在线视频 | 爱爱一区 | 免费国产在线视频 | 色多多污污在线观看 | 欧美精品久久久久久久久久丰满 | 亚洲免费av一区二区 | 日韩高清av在线 | 大荫蒂欧美视频另类xxxx | 日韩a级黄色片 | 天天插天天爱 | 97视频免费| 国产黄色av影视 | 一级黄色电影网站 | 成人黄色片在线播放 | 国内精品久久久精品电影院 | 美女网站久久 | 欧美日韩高清国产 | 美女中文字幕 | 欧美亚洲久久 | 免费看国产曰批40分钟 | 在线视频99 | 久精品在线 | 97国产超碰 | 欧美 亚洲 另类 激情 另类 | 国产精品一区电影 | 国产一二三四在线观看视频 | 在线观看aa| 五月激情亚洲 | 免费观看的黄色片 | 国产亚洲片 | 91看片淫黄大片一级在线观看 | 亚洲永久精品视频 | 丁香综合网 | 日本午夜免费福利视频 | 少妇视频一区 | 99精品免费在线观看 | 一级一级一片免费 | 日韩精品aaa | 久久无码av一区二区三区电影网 | 国产亚洲精品久久久久久久久久久久 | 成人毛片a | 欧美激情第28页 | 国产精品久久久久婷婷二区次 | 久久久久久久久免费视频 | av一区二区在线观看中文字幕 | 免费能看的黄色片 | av大全免费在线观看 | av一区二区三区在线 | 亚洲第五色综合网 | 国产区网址 | 毛片在线播放网址 | 日本精品久久久久久 | 青青色影院| 久久99精品久久久久久清纯直播 | 国产成人三级在线播放 | 久久国产欧美日韩 | 日韩精品免费一区二区 | 在线免费观看av网站 | 国产一区二区三区免费在线 | 成人免费共享视频 | 在线高清av | 综合久久久久久 | 免费a网站 | 天天看天天操 | 亚洲精品久久久久999中文字幕 | 91视频久久久久 | 欧美日韩视频免费看 | 欧美性生活小视频 | 亚洲狠狠婷婷 | 国产在线观看av | 欧美日韩三级 | 色99视频| 久久大片 | 九九热久久久 | 久久怡红院 | 日韩激情av在线 | 女人高潮一级片 | 91麻豆精品国产91久久久久 | 亚洲欧美在线观看视频 | 在线播放视频一区 | 97超碰人人澡人人爱学生 | 在线观看黄色小视频 | 亚洲春色奇米影视 | 免费国产在线观看 | 天天干天天拍天天操天天拍 | 国产午夜精品一区二区三区 | 国产精品成人一区二区 | 在线观看视频免费播放 | 国产高清视频在线播放一区 | 五月天婷婷综合 | 国产一区高清在线观看 | 日韩欧美在线视频一区二区三区 | 日韩中午字幕 | 久草在线官网 | 亚洲免费视频在线观看 | 中文字幕亚洲欧美日韩 | av电影在线免费观看 | 国产99中文字幕 | 久久精品国产免费观看 | 国产片网站 | 懂色av懂色av粉嫩av分享吧 | 91超级碰碰 | 碰超在线观看 | 色播激情五月 | 久久精彩免费视频 | 色五月色开心色婷婷色丁香 | 最新av在线播放 | 激情视频在线观看网址 | 亚洲国产免费av | 啪啪动态视频 | 国产成人精品午夜在线播放 | 日韩中文字幕免费电影 | 国产精品久久久久久久免费大片 | 日韩欧美在线综合网 | 五月婷在线播放 | 免费看的黄色的网站 | 97色se| 黄色www免费| 成人午夜在线电影 | 在线综合 亚洲 欧美在线视频 | 91福利视频一区 | 九九热在线播放 | 天天操狠狠操网站 | 超碰免费公开 | 免费视频区| 国产精品18久久久久白浆 | 国产亚洲精品久久久久久网站 | 亚洲视频专区在线 | 精品久久久久久久久亚洲 | 久久人人插 | 一区 二区 精品 | 最近2019年日本中文免费字幕 | 精品一区二区在线观看 | 亚洲午夜激情网 | 久久久免费精品国产一区二区 | 国产精品久久久久久模特 | 91成人天堂久久成人 | 九九热在线精品 | 精品国偷自产国产一区 | 最近高清中文字幕在线国语5 | 免费网站在线观看成人 | 欧美另类v | 精品久久毛片 | 国产成人亚洲精品自产在线 | 夜添久久精品亚洲国产精品 | 亚洲最大免费成人网 | 人人爽人人片 | 久久精品一区二区三区国产主播 | 2019av在线视频 | 手机在线黄色网址 | 国产精品久久久久久久久久免费看 | 丁香网婷婷 | 天天射综合网视频 | 91大神dom调教在线观看 | 欧洲精品久久久久毛片完整版 | 国产欧美综合视频 | 一区二区三区高清在线 | 干天天 | 91传媒在线观看 | 国产精品theporn | 国产视频1区2区 | 天天搞天天干 | 91成人久久| 成人影视片 | 亚洲天堂网在线视频 | 精品一区二区三区在线播放 | 久久人91精品久久久久久不卡 | 欧美日韩在线精品一区二区 | 欧美性色网站 | 久草在线欧美 | 精品美女在线视频 | 亚洲精品视频在线 | 麻豆成人在线观看 | 日韩在线播放视频 | 欧美激情视频免费看 | 国产91精品欧美 | 日p在线观看 | 久久九九国产精品 | 久久视频这里有久久精品视频11 | 亚洲一区视频在线播放 | 日韩久久精品一区二区三区 | 成人a视频片观看免费 | 狠狠狠狠狠狠天天爱 | 天天色欧美 | 亚洲免费av电影 | av久久久久久 | 免费看的黄色 | 999视频在线播放 | 日日草av| 久久a级片 | 久久精品综合一区 | 奇米影视777四色米奇影院 | 蜜臀91丨九色丨蝌蚪老版 | 久久精品系列 | 色综合婷婷久久 | 日韩色区| 免费男女羞羞的视频网站中文字幕 | 久久免费国产电影 | 国产va在线 | 亚洲精品女| 国产一区免费视频 | 久久免费中文视频 | 丁香婷婷激情国产高清秒播 | 98福利在线 | 缴情综合网五月天 | 97超碰资源网 | 国产美女精品视频 | 欧美日本不卡视频 | 久久久久女人精品毛片 | 中文视频一区二区 | 欧美日韩二区在线 | 国产手机在线精品 | 一区二区日韩av | 91九色视频国产 | 久久永久免费 | 中文字幕乱码视频 | 在线成人性视频 | 天天射天天干天天 | 午夜精品99久久免费 | 亚洲欧美日本国产 | 国产一级三级 | 91精品久久久久久久99蜜桃 | 久二影院 | 国产视频一级 | 亚洲成人麻豆 | 人人爱人人做人人爽 | 精品高清视频 | 免费观看成年人视频 | 全久久久久久久久久久电影 | 91中文字幕视频 | 麻豆精品传媒视频 | 午夜久久| 伊人成人激情 | 东方av在线免费观看 | 日韩高清激情 | 97精品国产97久久久久久粉红 | 欧洲激情综合 | 国产精品福利无圣光在线一区 | 91九色最新地址 | 日批在线观看 | 国产精品久久久久久久久久久久午夜 | 日本中文字幕一二区观 | 99久久久国产精品免费99 | 色资源二区在线视频 | 最近2019年日本中文免费字幕 | 久久久久久久久综合 | 国产亚洲成人网 | 丁香午夜婷婷 | 日韩精品在线看 | 中文字幕 91 | 大胆欧美gogo免费视频一二区 | 免费在线播放av电影 | 亚洲综合网| 欧美乱码精品一区 | 一级全黄毛片 | 婷婷六月丁香激情 | 免费91在线观看 | 欧美在线1| 国产精品久久久久久久久久久久久久 | 免费影视大全推荐 | 五月天激情电影 | 欧美国产91 | 亚洲综合视频在线 | 精品在线视频一区 | 久免费视频 | 免费观看福利视频 | 欧美精品久久久久久久 | 亚洲天天在线日亚洲洲精 | 五月激情站 | 久久久精品电影 | 国产一区二区不卡视频 | 国产免费观看久久黄 | 亚洲视频一区二区三区在线观看 | 久久久久久久久久久久国产精品 | 四虎成人av | 四虎国产免费 | 久久精品最新 | 五月婷婷视频在线 | 日韩精品免费一线在线观看 | 97在线视频网站 | 免费视频区 | 国产一区二区三区高清播放 | 黄网站app在线观看免费视频 | 精品亚洲欧美无人区乱码 | 亚洲va在线va天堂va偷拍 | 久久热亚洲 | 日日躁夜夜躁aaaaxxxx | 在线观看国产福利片 | 久草在线视频在线 | 久操伊人| 97视频免费观看2区 亚洲视屏 | 婷婷干五月 | 婷婷精品国产欧美精品亚洲人人爽 | 偷拍视频一区 | a级国产毛片 | 欧美-第1页-屁屁影院 | 日韩亚洲欧美中文字幕 | 日韩电影一区二区在线观看 | 国产精品国产毛片 | 日韩在线观看一区二区 | 蜜桃视频日韩 | 国内视频在线 | 波多野结衣电影一区二区三区 | 亚洲婷婷丁香 | 在线观看中文字幕 | 97视频在线免费 | 欧美综合干 | 色婷婷丁香 | 人人盈棋牌 | 亚洲精品色视频 | 久久夜色网 | 欧美日韩免费看 | 狠狠的操你 | 欧美一二三在线 | 在线精品亚洲一区二区 | 国产一卡在线 | 日韩中文字幕免费 | 日本黄色免费看 | av在线播放中文字幕 | 免费一级日韩欧美性大片 | 成人黄色在线 | 9i看片成人免费看片 | www.久久久久 | 久操视频在线播放 | 93久久精品日日躁夜夜躁欧美 | 91精品国产成 | 久久国产美女视频 | 欧美韩日视频 | 日韩在线观看视频网站 | 中文在线中文a | 成人午夜网址 | 成人av一区二区兰花在线播放 | 色姑娘综合 | 91香蕉视频好色先生 | 亚洲日本va在线观看 | 国产成人久久av977小说 | 综合网天天射 | 欧美亚洲一级片 | 狠狠的操狠狠的干 | 国产激情免费 | 四虎国产精品成人免费影视 | 激情综合站 | 欧美最猛性xxx | a午夜电影 | 日韩欧美精品一区二区三区经典 | av电影一区二区三区 | 精品成人a区在线观看 | 午夜日b视频 | 1024手机基地在线观看 | 国产精品久久av | 97超碰影视 | 91精品推荐 | 免费观看黄色12片一级视频 | 大胆欧美gogo免费视频一二区 | 日韩欧美在线免费观看 | 国产在线精品一区二区 | 在线a亚洲视频播放在线观看 | 天天综合网 天天综合色 | 在线免费黄色 | 九九热免费在线视频 | 色噜噜色噜噜 | 天天综合网在线 | 天天操夜夜操 | 婷婷五月在线视频 | 91精选在线观看 | 韩日精品在线 | 久久人人爽爽人人爽人人片av | 久久免费观看视频 | 探花视频在线观看+在线播放 | 日本久久久久久科技有限公司 | 最新超碰在线 | 日本激情动作片免费看 | av免费电影在线观看 | 玖玖精品视频 | 久久精品国产亚洲精品 | 国产自在线 | 超碰在线公开 | 日本二区三区在线 | 久久国产精品成人免费浪潮 | 国产视频中文字幕在线观看 | 99精品在线 | 国产v在线观看 | 亚洲第一中文字幕 | 婷婷丁香狠狠爱 | 久久亚洲综合色 | 美女视频黄是免费的 | av 在线观看 | 国产五月色婷婷六月丁香视频 | 中文字幕在线色 | www.日韩免费 | 天堂av免费观看 | 超碰午夜| 韩国av在线播放 | 成人在线免费观看网站 | 色福利网 | 在线观看的av网站 | 久久久免费精品 | 999久久久久久久久久久 | 免费看污在线观看 | 国产精品永久 | 国产精彩在线视频 | 丁香六月婷婷综合 | 国产精品 欧美 日韩 | 成人av高清在线 | 五月天久久婷婷 | 欧美 亚洲 另类 激情 另类 | 精品久久久久久久久久国产 | 亚洲在线视频播放 | 久久在现视频 | 久久激情小视频 | av高清免费 | 麻豆免费视频网站 | 日韩欧美视频在线观看免费 | 天天爱天天色 | 国产日产精品一区二区三区四区的观看方式 | 亚洲免费色 | 国产原创在线视频 | 精品夜夜嗨av一区二区三区 | 国产精品久久久久久久久婷婷 | www.com.日本一级 | 日韩一区二区三区视频在线 | 久久精品99国产精品酒店日本 | 欧美福利片在线观看 | 久久不射电影网 | 免费在线观看的av网站 | 国产日产亚洲精华av | 国产精品99久久免费黑人 | 人人插人人舔 | 91av在线看| 国产成人一区二区啪在线观看 | 国产精品久久嫩一区二区免费 | 国产精品久久久久久久久久久久午 | 中文字幕久久亚洲 | 国产精品免费视频网站 | 免费在线看成人av | 国产精品久久久电影 | 玖玖在线播放 | 国产在线日本 | 国产精品99久久免费观看 | 波多野结衣视频一区二区三区 | 久久精品直播 | 国产在线观看高清视频 | 在线免费观看国产黄色 | 爱干视频| 国产精品久久精品 | 日本黄色大片免费看 | 国产精品18久久久久久久久 | 久久中文字幕在线视频 | 91.精品高清在线观看 | 久久1区| 亚洲爱视频 | 国产va饥渴难耐女保洁员在线观看 | 午夜av在线电影 | 亚洲每日更新 | 国产在线观看免费观看 | 亚洲男男gaygay无套同网址 | 天天狠狠干| 中文字幕在线网址 | 国产精品久久久视频 | 国产xxxxx在线观看 | 99re8这里有精品热视频免费 | 久久新 | 欧美日韩国产精品一区二区 | 免费毛片一区二区三区久久久 | 97视频久久久| 欧美日韩在线视频免费 | 日韩成片 | 日b黄色片 | 久久99久久99精品免费看小说 | 精品国产亚洲一区二区麻豆 | 中文字幕在线免费播放 | 一区二区男女 | 六月久久婷婷 | 超碰在线个人 | 欧美精品乱码久久久久久按摩 | 久久久国产在线视频 | 成人免费xxxxxx视频 | 欧美一区二区三区四区夜夜大片 | 日本大片免费观看在线 | 免费看高清毛片 | 久久99精品国产麻豆婷婷 | 丁香六月婷 | 国产精品高潮久久av | 毛片基地黄久久久久久天堂 | 久久网页 | 最近日本字幕mv免费观看在线 | 色欧美成人精品a∨在线观看 | 精品乱码一区二区三四区 | 免费看三级 | 婷婷六月中文字幕 | 激情五月亚洲 | 亚洲在线日韩 | 丁香九月激情 | 麻花豆传媒mv在线观看网站 | 婷婷激情综合 | 麻豆免费视频 | 国产三级国产精品国产专区50 | 日韩专区在线 | 国产在线精品二区 | 欧美日韩国产色综合一二三四 | 国产福利资源 | 青草草在线视频 | 久草在线资源观看 | 国产色婷婷 | 成片免费观看视频大全 | 91av视频观看 | 麻豆免费精品视频 | 欧美国产在线看 | 免费国产在线视频 | 黄色一区二区在线观看 | 人人澡人人模 | 欧美 日韩精品 | 色中色亚洲 | 色99网| 国产福利小视频在线 | 午夜色影院| 黄色av网站在线观看免费 | 久久免费一级片 | 久草在线一免费新视频 | 中文字幕一区二区三区精华液 | 欧日韩在线视频 | 国产91成人 | 久久综合操| 成人黄色电影视频 | 91香蕉视频好色先生 | 一本一道波多野毛片中文在线 | 日韩欧美中文 | av免费线看 | 国产欧美综合视频 | 麻豆首页 | 国产精品久久一卡二卡 | 国产不卡免费av | 国产伦理一区 | 青青河边草免费观看完整版高清 | 中文字幕精品一区二区精品 | 成人在线播放网站 | 在线观看av黄色 | 日韩av有码在线 | 9i看片成人免费看片 | 2023亚洲精品国偷拍自产在线 | 深爱激情开心 | 国产高清精 | 精品一二| 中文字幕av一区二区三区四区 | 在线视频一二三 | 免费看污的网站 | 日本激情中文字幕 | 久久综合久色欧美综合狠狠 | 久久精彩 | 久久免费观看视频 | 亚洲国产精品va在线看黑人动漫 | 97伊人网| 婷婷六月丁香激情 | 久久天天躁夜夜躁狠狠85麻豆 | 狠狠色丁香婷综合久久 | 伊人黄 | 精品国产资源 | 免费看的黄色的网站 | 亚洲国产福利视频 | 亚洲精品一区二区精华 | 久久成年人网站 | 国产成人av网址 | av黄免费看 | 亚洲综合成人专区片 | 亚洲精品小区久久久久久 | 西西444www大胆高清视频 | 成人资源在线 | 日本精品中文字幕在线观看 | 国内丰满少妇猛烈精品播放 | 色综合在| av中文字幕第一页 | 久久精品波多野结衣 | 精品国产91亚洲一区二区三区www | 亚洲最新视频在线 | 福利一区二区三区四区 | 精久久久久 | 久久久久久久影院 | 在线观看91精品视频 | 一级片黄色片网站 | 中文字幕在线网 | 亚洲视频999 | 看污网站| 中文字幕免费不卡视频 | 欧美一级性生活片 | 成人四虎影院 | 免费国产黄线在线观看视频 | 中文字幕资源站 | 毛片1000部免费看 | 亚洲三级在线免费观看 | 8x成人免费视频 | 超碰在线官网 | 中文字幕精品一区二区三区电影 | 五月天激情婷婷 | 2022中文字幕在线观看 | 中文字幕美女免费在线 | 91视频在线播放视频 | 成人国产精品电影 | 在线视频观看亚洲 | 免费av网址大全 | 丁香av| 日韩.com| 九九久久免费视频 | 丁五月婷婷 | 日韩精品一区二区不卡 | 久久久国产高清 | 91久久久久久久一区二区 | 久久不射影院 | 超碰在线人人草 | 天天操天天艹 | 狠狠操91| 成人a级免费视频 | 免费观看www7722午夜电影 | 日韩天天综合 | 日韩电影在线观看一区 | 国产手机视频在线播放 | 国产婷婷精品av在线 | 91精品国产综合久久福利不卡 | 久久精品一区二区三区视频 | 国产午夜精品理论片在线 | 亚洲精品在线电影 | 久久久久久久久久久福利 | 天天天天色射综合 | 91久久国产精品 | 亚洲成a人片在线观看网站口工 | 亚洲免费观看视频 | 看黄色91 | 国产成人一区二区精品非洲 | 国产精在线| 日产av在线播放 | 久久精品视频免费观看 | 亚洲一区视频免费观看 | 久久精品直播 | 亚洲视频免费 | 成 人 黄 色 视频播放1 | 色噜噜在线观看视频 | 久草资源免费 | 日韩精品久久久久 | 亚洲精品在线国产 | 国内精品视频一区二区三区八戒 | 免费毛片一区二区三区久久久 | 超碰在线1 | 一区二区三区免费在线播放 | 中文字幕一区2区3区 | 狠狠干婷婷 | 亚洲美女免费精品视频在线观看 | 狠狠干夜夜 | 超碰在线网 | 亚洲综合色视频 | 在线国产日本 | 精品美女视频 | 久久黄网站 | 国产精品第二页 | 亚洲 欧美 91 | 亚洲精品自拍 | 青草视频在线免费 | 激情电影在线观看 | 日日夜夜精品免费视频 | 狠狠色丁香婷婷综合视频 | 蜜臀久久99精品久久久无需会员 | 中文字幕制服丝袜av久久 | 99r在线视频| 婷婷丁香九月 | 久久露脸国产精品 | 久久国产精品99国产精 | 九色91av| 91麻豆精品国产91久久久更新时间 | 99 精品 在线 | 国产一卡在线 | 久草在线 | 日本韩国精品一区二区在线观看 | va视频在线观看 | 国产91精品一区二区麻豆亚洲 | 久久99国产精品久久99 | 成人在线观看免费视频 | 黄色小说18 | 国产成人亚洲在线观看 | 国产成人一区三区 | 91av在线看| 久草久草视频 | 成年人看片网站 | 国产精品女同一区二区三区久久夜 | 日韩激情视频在线 | 97在线观 | 91九色porny在线 | 亚洲成人av一区二区 | 久久在线看 | 婷婷夜夜 | 国内精品久久影院 | 成人av一区二区兰花在线播放 | 国产在线欧美日韩 | 狠狠色伊人亚洲综合网站野外 | 国产精品 欧美 日韩 | 亚洲精品国内 | 玖玖在线播放 | 国产91全国探花系列在线播放 | 国产精品12 | 九九亚洲精品 | 最近中文字幕大全中文字幕免费 | 91亚洲精品久久久 | 高潮久久久久久久久 | 免费看黄的视频 | 日本黄网站 | 超碰人人做| 人人爽人人乐 | 国产精品成人av在线 | 免费在线观看av网站 | 国产精品一区二区在线免费观看 | 永久免费毛片 | 黄网站色成年免费观看 | 日韩深夜在线观看 | 色吊丝在线永久观看最新版本 | 色黄www小说| 国产韩国精品一区二区三区 | 黄色成人91 | 香蕉影院在线播放 | 丁香五月缴情综合网 | 在线 欧美 日韩 | 亚洲精品自拍 | 激情婷婷在线观看 | 国产精品日韩久久久久 | 国产精品久久一区二区三区, | 欧美精品乱码久久久久久按摩 | 天天色宗合 | 精品国产中文字幕 | 国产糖心vlog在线观看 | 国产在线久久久 | 99国产情侣在线播放 | 国产成人黄色网址 | 免费高清av在线看 | 久久精品香蕉 | 日韩精品短视频 | 激情婷婷色 | 一 级 黄 色 片免费看的 | 国产中文字幕视频在线观看 | 国产成人精品综合久久久 | 欧美成人在线免费 | 国产黑丝一区二区 | 欧美精品久久久久久久久免 | 超碰在线98| 国产视频一区二区在线播放 | 亚洲第一久久久 | 精品国产精品久久 | a久久免费视频 | 久久久久亚洲国产精品 | 成年人免费电影 | av大全在线看 | 黄色字幕网 | 国产精品剧情 | 久久免费精品国产 | 国产精品96久久久久久吹潮 | 国产91精品看黄网站在线观看动漫 | 久久伊人国产精品 | 久久久精品综合 | 亚洲国产成人在线播放 | 天天插天天爱 | 福利视频在线看 | 一二三精品视频 | 91九色丨porny丨丰满6 | 日本久久电影网 | 久久亚洲成人网 | 精品高清美女精品国产区 | 国产免费久久精品 | 亚一亚二国产专区 | 国产亚洲精品久久网站 | 日日干日日| 日韩在线视频线视频免费网站 | 在线香蕉视频 | 久久天天躁狠狠躁夜夜不卡公司 | 中文在线www | 国内精品久久久久久中文字幕 | 久久草网| 久久午夜国产精品 | 九九精品无码 | 在线观看a视频 | 波多野结衣精品视频 | www.777奇米| 久久久久久久久亚洲精品 | 在线免费观看一区二区三区 | 激情综合站 | 日韩毛片久久久 | 91视频大全| 99久久久久久久久久 | 98福利在线 | 伊人婷婷在线 | 欧美性一级观看 | 国产高清精 | 欧美一级黄色网 | 免费在线观看av网址 | 亚洲精品久久久久久中文传媒 | 日日干激情五月 | 五月天婷亚洲天综合网鲁鲁鲁 | 91九色视频国产 | 久久久久久久久久伊人 | 欧美日韩免费看 | 欧美性生交大片免网 | 国产在线视频不卡 | av免费片| 亚洲国产一区在线观看 | 三级黄色片子 | 日韩成人av在线 | 在线视频黄| 中文字幕亚洲精品在线观看 | 久久在线一区 | 国精产品满18岁在线 | 国内精品久久久久久久久久久久 | 欧美日韩亚洲国产一区 | 日韩精品一区二区三区免费视频观看 | 中文字幕日本在线 | 免费的国产精品 | 免费观看91 | 午夜丁香网 | 中文字幕久久亚洲 | 手机av电影在线 | 在线观看一区二区精品 | 五月天综合网站 | 国产剧情一区 | 国产精品嫩草影院99网站 | 国产不卡av在线 | 婷婷四房综合激情五月 | 成人黄色大片网站 | 久久亚洲专区 | 成人黄色在线观看视频 | 99久免费精品视频在线观看 | 国产午夜精品一区 | 亚洲六月丁香色婷婷综合久久 | 又黄又爽又湿又无遮挡的在线视频 | 久久深夜 | 亚洲精品黄 | 亚洲精品国精品久久99热 | 久久精品中文字幕一区二区三区 | 四虎在线影视 | 500部大龄熟乱视频 欧美日本三级 | 91黄色小网站 | 免费无遮挡动漫网站 | 高清视频一区二区三区 | 手机成人av在线 | 欧美日韩国产欧美 | 久青草国产在线 | 日韩高清www | 久久精品亚洲国产 | 欧美最猛性xxx | 一级黄色片在线播放 | 玖玖玖国产精品 |