|
STM32G474xx HAL 用户手册
|
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