STM32G474xx HAL 用户手册
stm32g4xx_ll_tim.c
转到此文件的文档。
00001 /**
00002   ******************************************************************************
00003   * @file    stm32g4xx_ll_tim.c
00004   * @author  MCD Application Team
00005   * @brief   TIM LL模块驱动程序。
00006   ******************************************************************************
00007   * @attention
00008   *
00009   * Copyright (c) 2019 STMicroelectronics.
00010   * 保留所有权利。
00011   *
00012   * 本软件受可在本软件组件根目录中找到的LICENSE文件中条款的约束。
00013   * 如果本软件未附带LICENSE文件,则按原样提供。
00014   *
00015   ******************************************************************************
00016   */
00017 
00018 #if defined(USE_FULL_LL_DRIVER)
00019 
00020 /* 包含 ------------------------------------------------------------------*/
00021 #include "stm32g4xx_ll_tim.h"
00022 #include "stm32g4xx_ll_bus.h"
00023 
00024 #ifdef  USE_FULL_ASSERT
00025 #include "stm32_assert.h"
00026 #else
00027 #define assert_param(expr) ((void)0U)
00028 #endif /* USE_FULL_ASSERT */
00029 
00030 /** @addtogroup STM32G4xx_LL_Driver
00031   * @{
00032   */
00033 
00034 #if defined (TIM1) || defined (TIM2) || defined (TIM3) || defined (TIM4) || defined (TIM5) || defined (TIM6) || defined (TIM7) || defined (TIM8) || defined (TIM15) || defined (TIM16) || defined (TIM17) || defined (TIM20)
00035 
00036 /** @addtogroup TIM_LL
00037   * @{
00038   */
00039 
00040 /* 私有类型 -------------------------------------------------------------*/
00041 /* 私有变量 ---------------------------------------------------------*/
00042 /* 私有常量 ---------------------------------------------------------*/
00043 /* 私有宏 ------------------------------------------------------------*/
00044 /** @addtogroup TIM_LL_Private_Macros
00045   * @{
00046   */
00047 #define IS_LL_TIM_COUNTERMODE(__VALUE__) (((__VALUE__) == LL_TIM_COUNTERMODE_UP) \
00048                                           || ((__VALUE__) == LL_TIM_COUNTERMODE_DOWN) \
00049                                           || ((__VALUE__) == LL_TIM_COUNTERMODE_CENTER_UP) \
00050                                           || ((__VALUE__) == LL_TIM_COUNTERMODE_CENTER_DOWN) \
00051                                           || ((__VALUE__) == LL_TIM_COUNTERMODE_CENTER_UP_DOWN))
00052 
00053 #define IS_LL_TIM_CLOCKDIVISION(__VALUE__) (((__VALUE__) == LL_TIM_CLOCKDIVISION_DIV1) \
00054                                             || ((__VALUE__) == LL_TIM_CLOCKDIVISION_DIV2) \
00055                                             || ((__VALUE__) == LL_TIM_CLOCKDIVISION_DIV4))
00056 
00057 #define IS_LL_TIM_OCMODE(__VALUE__) (((__VALUE__) == LL_TIM_OCMODE_FROZEN) \
00058                                      || ((__VALUE__) == LL_TIM_OCMODE_ACTIVE) \
00059                                      || ((__VALUE__) == LL_TIM_OCMODE_INACTIVE) \
00060                                      || ((__VALUE__) == LL_TIM_OCMODE_TOGGLE) \
00061                                      || ((__VALUE__) == LL_TIM_OCMODE_FORCED_INACTIVE) \
00062                                      || ((__VALUE__) == LL_TIM_OCMODE_FORCED_ACTIVE) \
00063                                      || ((__VALUE__) == LL_TIM_OCMODE_PWM1) \
00064                                      || ((__VALUE__) == LL_TIM_OCMODE_PWM2) \
00065                                      || ((__VALUE__) == LL_TIM_OCMODE_RETRIG_OPM1) \
00066                                      || ((__VALUE__) == LL_TIM_OCMODE_RETRIG_OPM2) \
00067                                      || ((__VALUE__) == LL_TIM_OCMODE_COMBINED_PWM1) \
00068                                      || ((__VALUE__) == LL_TIM_OCMODE_COMBINED_PWM2) \
00069                                      || ((__VALUE__) == LL_TIM_OCMODE_ASYMMETRIC_PWM1) \
00070                                      || ((__VALUE__) == LL_TIM_OCMODE_ASYMMETRIC_PWM2) \
00071                                      || ((__VALUE__) == LL_TIM_OCMODE_PULSE_ON_COMPARE) \
00072                                      || ((__VALUE__) == LL_TIM_OCMODE_DIRECTION_OUTPUT))
00073 
00074 #define IS_LL_TIM_OCSTATE(__VALUE__) (((__VALUE__) == LL_TIM_OCSTATE_DISABLE) \
00075                                       || ((__VALUE__) == LL_TIM_OCSTATE_ENABLE))
00076 
00077 #define IS_LL_TIM_OCPOLARITY(__VALUE__) (((__VALUE__) == LL_TIM_OCPOLARITY_HIGH) \
00078                                          || ((__VALUE__) == LL_TIM_OCPOLARITY_LOW))
00079 
00080 #define IS_LL_TIM_OCIDLESTATE(__VALUE__) (((__VALUE__) == LL_TIM_OCIDLESTATE_LOW) \
00081                                           || ((__VALUE__) == LL_TIM_OCIDLESTATE_HIGH))
00082 
00083 #define IS_LL_TIM_ACTIVEINPUT(__VALUE__) (((__VALUE__) == LL_TIM_ACTIVEINPUT_DIRECTTI) \
00084                                           || ((__VALUE__) == LL_TIM_ACTIVEINPUT_INDIRECTTI) \
00085                                           || ((__VALUE__) == LL_TIM_ACTIVEINPUT_TRC))
00086 
00087 #define IS_LL_TIM_ICPSC(__VALUE__) (((__VALUE__) == LL_TIM_ICPSC_DIV1) \
00088                                     || ((__VALUE__) == LL_TIM_ICPSC_DIV2) \
00089                                     || ((__VALUE__) == LL_TIM_ICPSC_DIV4) \
00090                                     || ((__VALUE__) == LL_TIM_ICPSC_DIV8))
00091 
00092 #define IS_LL_TIM_IC_FILTER(__VALUE__) (((__VALUE__) == LL_TIM_IC_FILTER_FDIV1) \
00093                                         || ((__VALUE__) == LL_TIM_IC_FILTER_FDIV1_N2) \
00094                                         || ((__VALUE__) == LL_TIM_IC_FILTER_FDIV1_N4) \
00095                                         || ((__VALUE__) == LL_TIM_IC_FILTER_FDIV1_N8) \
00096                                         || ((__VALUE__) == LL_TIM_IC_FILTER_FDIV2_N6) \
00097                                         || ((__VALUE__) == LL_TIM_IC_FILTER_FDIV2_N8) \
00098                                         || ((__VALUE__) == LL_TIM_IC_FILTER_FDIV4_N6) \
00099                                         || ((__VALUE__) == LL_TIM_IC_FILTER_FDIV4_N8) \
00100                                         || ((__VALUE__) == LL_TIM_IC_FILTER_FDIV8_N6) \
00101                                         || ((__VALUE__) == LL_TIM_IC_FILTER_FDIV8_N8) \
00102                                         || ((__VALUE__) == LL_TIM_IC_FILTER_FDIV16_N5) \
00103                                         || ((__VALUE__) == LL_TIM_IC_FILTER_FDIV16_N6) \
00104                                         || ((__VALUE__) == LL_TIM_IC_FILTER_FDIV16_N8) \
00105                                         || ((__VALUE__) == LL_TIM_IC_FILTER_FDIV32_N5) \
00106                                         || ((__VALUE__) == LL_TIM_IC_FILTER_FDIV32_N6) \
00107                                         || ((__VALUE__) == LL_TIM_IC_FILTER_FDIV32_N8))
00108 
00109 #define IS_LL_TIM_IC_POLARITY(__VALUE__) (((__VALUE__) == LL_TIM_IC_POLARITY_RISING) \
00110                                           || ((__VALUE__) == LL_TIM_IC_POLARITY_FALLING) \
00111                                           || ((__VALUE__) == LL_TIM_IC_POLARITY_BOTHEDGE))
00112 
00113 #define IS_LL_TIM_ENCODERMODE(__VALUE__) (((__VALUE__) == LL_TIM_ENCODERMODE_X2_TI1) \
00114                                           || ((__VALUE__) == LL_TIM_ENCODERMODE_X2_TI2) \
00115                                           || ((__VALUE__) == LL_TIM_ENCODERMODE_X4_TI12) \
00116                                           || ((__VALUE__) == LL_TIM_ENCODERMODE_CLOCKPLUSDIRECTION_X2) \
00117                                           || ((__VALUE__) == LL_TIM_ENCODERMODE_CLOCKPLUSDIRECTION_X1) \
00118                                           || ((__VALUE__) == LL_TIM_ENCODERMODE_DIRECTIONALCLOCK_X2) \
00119                                           || ((__VALUE__) == LL_TIM_ENCODERMODE_DIRECTIONALCLOCK_X1_TI12) \
00120                                           || ((__VALUE__) == LL_TIM_ENCODERMODE_X1_TI1) \
00121                                           || ((__VALUE__) == LL_TIM_ENCODERMODE_X1_TI2))
00122 
00123 #define IS_LL_TIM_IC_POLARITY_ENCODER(__VALUE__) (((__VALUE__) == LL_TIM_IC_POLARITY_RISING) \
00124                                                   || ((__VALUE__) == LL_TIM_IC_POLARITY_FALLING))
00125 
00126 #define IS_LL_TIM_OSSR_STATE(__VALUE__) (((__VALUE__) == LL_TIM_OSSR_DISABLE) \
00127                                          || ((__VALUE__) == LL_TIM_OSSR_ENABLE))
00128 
00129 #define IS_LL_TIM_OSSI_STATE(__VALUE__) (((__VALUE__) == LL_TIM_OSSI_DISABLE) \
00130                                          || ((__VALUE__) == LL_TIM_OSSI_ENABLE))
00131 
00132 #define IS_LL_TIM_LOCK_LEVEL(__VALUE__) (((__VALUE__) == LL_TIM_LOCKLEVEL_OFF) \
00133                                          || ((__VALUE__) == LL_TIM_LOCKLEVEL_1)   \
00134                                          || ((__VALUE__) == LL_TIM_LOCKLEVEL_2)   \
00135                                          || ((__VALUE__) == LL_TIM_LOCKLEVEL_3))
00136 
00137 #define IS_LL_TIM_BREAK_STATE(__VALUE__) (((__VALUE__) == LL_TIM_BREAK_DISABLE) \
00138                                           || ((__VALUE__) == LL_TIM_BREAK_ENABLE))
00139 
00140 #define IS_LL_TIM_BREAK_POLARITY(__VALUE__) (((__VALUE__) == LL_TIM_BREAK_POLARITY_LOW) \
00141                                              || ((__VALUE__) == LL_TIM_BREAK_POLARITY_HIGH))
00142