STM32L443xx HAL User Manual
|
00001 /** 00002 ****************************************************************************** 00003 * @file stm32l4xx_hal_lptim.h 00004 * @author MCD Application Team 00005 * @brief Header file of LPTIM HAL module. 00006 ****************************************************************************** 00007 * @attention 00008 * 00009 * Copyright (c) 2017 STMicroelectronics. 00010 * All rights reserved. 00011 * 00012 * This software is licensed under terms that can be found in the LICENSE file 00013 * in the root directory of this software component. 00014 * If no LICENSE file comes with this software, it is provided AS-IS. 00015 * 00016 ****************************************************************************** 00017 */ 00018 00019 /* Define to prevent recursive inclusion -------------------------------------*/ 00020 #ifndef STM32L4xx_HAL_LPTIM_H 00021 #define STM32L4xx_HAL_LPTIM_H 00022 00023 #ifdef __cplusplus 00024 extern "C" { 00025 #endif 00026 00027 /* Includes ------------------------------------------------------------------*/ 00028 #include "stm32l4xx_hal_def.h" 00029 00030 /** @addtogroup STM32L4xx_HAL_Driver 00031 * @{ 00032 */ 00033 00034 #if defined (LPTIM1) || defined (LPTIM2) 00035 00036 /** @addtogroup LPTIM 00037 * @{ 00038 */ 00039 00040 /* Exported types ------------------------------------------------------------*/ 00041 /** @defgroup LPTIM_Exported_Types LPTIM Exported Types 00042 * @{ 00043 */ 00044 #define LPTIM_EXTI_LINE_LPTIM1 EXTI_IMR2_IM32 /*!< External interrupt line 32 Connected to the LPTIM1 EXTI Line */ 00045 #define LPTIM_EXTI_LINE_LPTIM2 EXTI_IMR2_IM33 /*!< External interrupt line 33 Connected to the LPTIM2 EXTI Line */ 00046 00047 /** 00048 * @brief LPTIM Clock configuration definition 00049 */ 00050 typedef struct 00051 { 00052 uint32_t Source; /*!< Selects the clock source. 00053 This parameter can be a value of @ref LPTIM_Clock_Source */ 00054 00055 uint32_t Prescaler; /*!< Specifies the counter clock Prescaler. 00056 This parameter can be a value of @ref LPTIM_Clock_Prescaler */ 00057 00058 } LPTIM_ClockConfigTypeDef; 00059 00060 /** 00061 * @brief LPTIM Clock configuration definition 00062 */ 00063 typedef struct 00064 { 00065 uint32_t Polarity; /*!< Selects the polarity of the active edge for the counter unit 00066 if the ULPTIM input is selected. 00067 Note: This parameter is used only when Ultra low power clock source is used. 00068 Note: If the polarity is configured on 'both edges', an auxiliary clock 00069 (one of the Low power oscillator) must be active. 00070 This parameter can be a value of @ref LPTIM_Clock_Polarity */ 00071 00072 uint32_t SampleTime; /*!< Selects the clock sampling time to configure the clock glitch filter. 00073 Note: This parameter is used only when Ultra low power clock source is used. 00074 This parameter can be a value of @ref LPTIM_Clock_Sample_Time */ 00075 00076 } LPTIM_ULPClockConfigTypeDef; 00077 00078 /** 00079 * @brief LPTIM Trigger configuration definition 00080 */ 00081 typedef struct 00082 { 00083 uint32_t Source; /*!< Selects the Trigger source. 00084 This parameter can be a value of @ref LPTIM_Trigger_Source */ 00085 00086 uint32_t ActiveEdge; /*!< Selects the Trigger active edge. 00087 Note: This parameter is used only when an external trigger is used. 00088 This parameter can be a value of @ref LPTIM_External_Trigger_Polarity */ 00089 00090 uint32_t SampleTime; /*!< Selects the trigger sampling time to configure the clock glitch filter. 00091 Note: This parameter is used only when an external trigger is used. 00092 This parameter can be a value of @ref LPTIM_Trigger_Sample_Time */ 00093 } LPTIM_TriggerConfigTypeDef; 00094 00095 /** 00096 * @brief LPTIM Initialization Structure definition 00097 */ 00098 typedef struct 00099 { 00100 LPTIM_ClockConfigTypeDef Clock; /*!< Specifies the clock parameters */ 00101 00102 LPTIM_ULPClockConfigTypeDef UltraLowPowerClock;/*!< Specifies the Ultra Low Power clock parameters */ 00103 00104 LPTIM_TriggerConfigTypeDef Trigger; /*!< Specifies the Trigger parameters */ 00105 00106 uint32_t OutputPolarity; /*!< Specifies the Output polarity. 00107 This parameter can be a value of @ref LPTIM_Output_Polarity */ 00108 00109 uint32_t UpdateMode; /*!< Specifies whether the update of the autoreload and the compare 00110 values is done immediately or after the end of current period. 00111 This parameter can be a value of @ref LPTIM_Updating_Mode */ 00112 00113 uint32_t CounterSource; /*!< Specifies whether the counter is incremented each internal event 00114 or each external event. 00115 This parameter can be a value of @ref LPTIM_Counter_Source */ 00116 00117 uint32_t Input1Source; /*!< Specifies source selected for input1 (GPIO or comparator output). 00118 This parameter can be a value of @ref LPTIM_Input1_Source */ 00119 00120 uint32_t Input2Source; /*!< Specifies source selected for input2 (GPIO or comparator output). 00121 Note: This parameter is used only for encoder feature so is used only 00122 for LPTIM1 instance. 00123 This parameter can be a value of @ref LPTIM_Input2_Source */ 00124 00125 #if defined(LPTIM_RCR_REP) 00126 uint32_t RepetitionCounter;/*!< Specifies the repetition counter value. 00127 Each time the RCR downcounter reaches zero, an update event is 00128 generated and counting restarts from the RCR value (N). 00129 Note: When using repetition counter the UpdateMode field must be 00130 set to LPTIM_UPDATE_ENDOFPERIOD otherwise unpredictable 00131 behavior may occur. 00132 This parameter must be a number between Min_Data = 0x00 and 00133 Max_Data = 0xFF. */ 00134 #endif 00135 } LPTIM_InitTypeDef; 00136 00137 /** 00138 * @brief HAL LPTIM State structure definition 00139 */ 00140 typedef enum 00141 { 00142 HAL_LPTIM_STATE_RESET = 0x00U, /*!< Peripheral not yet initialized or disabled */ 00143 HAL_LPTIM_STATE_READY = 0x01U, /*!< Peripheral Initialized and ready for use */ 00144 HAL_LPTIM_STATE_BUSY = 0x02U, /*!< An internal process is ongoing */ 00145 HAL_LPTIM_STATE_TIMEOUT = 0x03U, /*!< Timeout state */ 00146 HAL_LPTIM_STATE_ERROR = 0x04U /*!< Internal Process is ongoing */ 00147 } HAL_LPTIM_StateTypeDef; 00148 00149 /** 00150 * @brief LPTIM handle Structure definition 00151 */ 00152 #if (USE_HAL_LPTIM_REGISTER_CALLBACKS == 1) 00153 typedef struct __LPTIM_HandleTypeDef 00154 #else 00155 typedef struct 00156 #endif /* USE_HAL_LPTIM_REGISTER_CALLBACKS */ 00157 { 00158 LPTIM_TypeDef *Instance; /*!< Register base address */ 00159 00160 LPTIM_InitTypeDef Init; /*!< LPTIM required parameters */ 00161 00162 HAL_StatusTypeDef Status; /*!< LPTIM peripheral status */ 00163 00164 HAL_LockTypeDef Lock; /*!< LPTIM locking object */ 00165 00166 __IO HAL_LPTIM_StateTypeDef State; /*!< LPTIM peripheral state */ 00167 00168 #if (USE_HAL_LPTIM_REGISTER_CALLBACKS == 1) 00169 void (* MspInitCallback)(struct __LPTIM_HandleTypeDef *hlptim); /*!< LPTIM Base Msp Init Callback */ 00170 void (* MspDeInitCallback)(struct __LPTIM_HandleTypeDef *hlptim); /*!< LPTIM Base Msp DeInit Callback */ 00171 void (* CompareMatchCallback)(struct __LPTIM_HandleTypeDef *hlptim); /*!< Compare match Callback */ 00172 void (* AutoReloadMatchCallback)(struct __LPTIM_HandleTypeDef *hlptim); /*!< Auto-reload match Callback */ 00173 void (* TriggerCallback)(struct __LPTIM_HandleTypeDef *hlptim); /*!< External trigger event detection Callback */ 00174 void (* CompareWriteCallback)(struct __LPTIM_HandleTypeDef *hlptim); /*!< Compare register write complete Callback */ 00175 void (* AutoReloadWriteCallback)(struct __LPTIM_HandleTypeDef *hlptim); /*!< Auto-reload register write complete Callback */ 00176 void (* DirectionUpCallback)(struct __LPTIM_HandleTypeDef *hlptim); /*!< Up-counting direction change Callback */ 00177 void (* DirectionDownCallback)(struct __LPTIM_HandleTypeDef *hlptim); /*!< Down-counting direction change Callback */ 00178 #if defined(LPTIM_RCR_REP) 00179 void (* UpdateEventCallback)(struct __LPTIM_HandleTypeDef *hlptim); /*!< Update event detection Callback */ 00180 void (* RepCounterWriteCallback)(struct __LPTIM_HandleTypeDef *hlptim); /*!< Repetition counter register write complete Callback */ 00181 #endif 00182 #endif /* USE_HAL_LPTIM_REGISTER_CALLBACKS */ 00183 } LPTIM_HandleTypeDef; 00184 00185 #if (USE_HAL_LPTIM_REGISTER_CALLBACKS == 1) 00186 /** 00187 * @brief HAL LPTIM Callback ID enumeration definition 00188 */ 00189 typedef enum 00190 { 00191 HAL_LPTIM_MSPINIT_CB_ID = 0x00U, /*!< LPTIM Base Msp Init Callback ID */ 00192 HAL_LPTIM_MSPDEINIT_CB_ID = 0x01U, /*!< LPTIM Base Msp DeInit Callback ID */ 00193 HAL_LPTIM_COMPARE_MATCH_CB_ID = 0x02U, /*!< Compare match Callback ID */ 00194 HAL_LPTIM_AUTORELOAD_MATCH_CB_ID = 0x03U, /*!< Auto-reload match Callback ID */ 00195 HAL_LPTIM_TRIGGER_CB_ID = 0x04U, /*!< External trigger event detection Callback ID */ 00196 HAL_LPTIM_COMPARE_WRITE_CB_ID = 0x05U, /*!< Compare register write complete Callback ID */ 00197 HAL_LPTIM_AUTORELOAD_WRITE_CB_ID = 0x06U, /*!< Auto-reload register write complete Callback ID */ 00198 HAL_LPTIM_DIRECTION_UP_CB_ID = 0x07U, /*!< Up-counting direction change Callback ID */ 00199 HAL_LPTIM_DIRECTION_DOWN_CB_ID = 0x08U, /*!< Down-counting direction change Callback ID */ 00200 #if defined(LPTIM_RCR_REP) 00201 HAL_LPTIM_UPDATE_EVENT_CB_ID = 0x09U, /*!< Update event detection Callback ID */ 00202 HAL_LPTIM_REP_COUNTER_WRITE_CB_ID = 0x0AU, /*!< Repetition counter register write complete Callback ID */ 00203 #endif 00204 } HAL_LPTIM_CallbackIDTypeDef; 00205 00206 /** 00207 * @brief HAL TIM Callback pointer definition 00208 */ 00209 typedef void (*pLPTIM_CallbackTypeDef)(LPTIM_HandleTypeDef *hlptim); /*!< pointer to the LPTIM callback function */ 00210 00211 #endif /* USE_HAL_LPTIM_REGISTER_CALLBACKS */ 00212 /** 00213 * @} 00214 */ 00215 00216 /* Exported constants --------------------------------------------------------*/ 00217 /** @defgroup LPTIM_Exported_Constants LPTIM Exported Constants 00218 * @{ 00219 */ 00220 00221 /** @defgroup LPTIM_Clock_Source LPTIM Clock Source 00222 * @{ 00223 */ 00224 #define LPTIM_CLOCKSOURCE_APBCLOCK_LPOSC 0x00000000U 00225 #define LPTIM_CLOCKSOURCE_ULPTIM LPTIM_CFGR_CKSEL 00226 /** 00227 * @} 00228 */ 00229 00230 /** @defgroup LPTIM_Clock_Prescaler LPTIM Clock Prescaler 00231 * @{ 00232 */ 00233 #define LPTIM_PRESCALER_DIV1 0x00000000U 00234 #define LPTIM_PRESCALER_DIV2 LPTIM_CFGR_PRESC_0 00235 #define LPTIM_PRESCALER_DIV4 LPTIM_CFGR_PRESC_1 00236 #define LPTIM_PRESCALER_DIV8 (LPTIM_CFGR_PRESC_0 | LPTIM_CFGR_PRESC_1) 00237 #define LPTIM_PRESCALER_DIV16 LPTIM_CFGR_PRESC_2 00238 #define LPTIM_PRESCALER_DIV32 (LPTIM_CFGR_PRESC_0 | LPTIM_CFGR_PRESC_2) 00239 #define LPTIM_PRESCALER_DIV64 (LPTIM_CFGR_PRESC_1 | LPTIM_CFGR_PRESC_2) 00240 #define LPTIM_PRESCALER_DIV128 LPTIM_CFGR_PRESC 00241 /** 00242 * @} 00243 */ 00244 00245 /** @defgroup LPTIM_Output_Polarity LPTIM Output Polarity 00246 * @{ 00247 */ 00248 00249 #define LPTIM_OUTPUTPOLARITY_HIGH 0x00000000U 00250 #define LPTIM_OUTPUTPOLARITY_LOW LPTIM_CFGR_WAVPOL 00251 /** 00252 * @} 00253 */ 00254 00255 /** @defgroup LPTIM_Clock_Sample_Time LPTIM Clock Sample Time 00256 * @{ 00257 */ 00258 #define LPTIM_CLOCKSAMPLETIME_DIRECTTRANSITION 0x00000000U 00259 #define LPTIM_CLOCKSAMPLETIME_2TRANSITIONS LPTIM_CFGR_CKFLT_0 00260 #define LPTIM_CLOCKSAMPLETIME_4TRANSITIONS LPTIM_CFGR_CKFLT_1 00261 #define LPTIM_CLOCKSAMPLETIME_8TRANSITIONS LPTIM_CFGR_CKFLT 00262 /** 00263 * @} 00264 */ 00265 00266 /** @defgroup LPTIM_Clock_Polarity LPTIM Clock Polarity 00267 * @{ 00268 */ 00269 #define LPTIM_CLOCKPOLARITY_RISING 0x00000000U 00270 #define LPTIM_CLOCKPOLARITY_FALLING LPTIM_CFGR_CKPOL_0 00271 #define LPTIM_CLOCKPOLARITY_RISING_FALLING LPTIM_CFGR_CKPOL_1 00272 /** 00273 * @} 00274 */ 00275 00276 /** @defgroup LPTIM_Trigger_Source LPTIM Trigger Source 00277 * @{ 00278 */ 00279 #define LPTIM_TRIGSOURCE_SOFTWARE 0x0000FFFFU 00280 #define LPTIM_TRIGSOURCE_0 0x00000000U 00281 #define LPTIM_TRIGSOURCE_1 LPTIM_CFGR_TRIGSEL_0 00282 #define LPTIM_TRIGSOURCE_2 LPTIM_CFGR_TRIGSEL_1 00283 #define LPTIM_TRIGSOURCE_3 (LPTIM_CFGR_TRIGSEL_0 | LPTIM_CFGR_TRIGSEL_1) 00284 #define LPTIM_TRIGSOURCE_4 LPTIM_CFGR_TRIGSEL_2 00285 #define LPTIM_TRIGSOURCE_5 (LPTIM_CFGR_TRIGSEL_0 | LPTIM_CFGR_TRIGSEL_2) 00286 #define LPTIM_TRIGSOURCE_6 (LPTIM_CFGR_TRIGSEL_1 | LPTIM_CFGR_TRIGSEL_2) 00287 #define LPTIM_TRIGSOURCE_7 LPTIM_CFGR_TRIGSEL 00288 /** 00289 * @} 00290 */ 00291 00292 /** @defgroup LPTIM_External_Trigger_Polarity LPTIM External Trigger Polarity 00293 * @{ 00294 */ 00295 #define LPTIM_ACTIVEEDGE_RISING LPTIM_CFGR_TRIGEN_0 00296 #define LPTIM_ACTIVEEDGE_FALLING LPTIM_CFGR_TRIGEN_1 00297 #define LPTIM_ACTIVEEDGE_RISING_FALLING LPTIM_CFGR_TRIGEN 00298 /** 00299 * @} 00300 */ 00301 00302 /** @defgroup LPTIM_Trigger_Sample_Time LPTIM Trigger Sample Time 00303 * @{ 00304 */ 00305 #define LPTIM_TRIGSAMPLETIME_DIRECTTRANSITION 0x00000000U 00306 #define LPTIM_TRIGSAMPLETIME_2TRANSITIONS LPTIM_CFGR_TRGFLT_0 00307 #define LPTIM_TRIGSAMPLETIME_4TRANSITIONS LPTIM_CFGR_TRGFLT_1 00308 #define LPTIM_TRIGSAMPLETIME_8TRANSITIONS LPTIM_CFGR_TRGFLT 00309 /** 00310 * @} 00311 */ 00312 00313 /** @defgroup LPTIM_Updating_Mode LPTIM Updating Mode 00314 * @{ 00315 */ 00316 00317 #define LPTIM_UPDATE_IMMEDIATE 0x00000000U 00318 #define LPTIM_UPDATE_ENDOFPERIOD LPTIM_CFGR_PRELOAD 00319 /** 00320 * @} 00321 */ 00322 00323 /** @defgroup LPTIM_Counter_Source LPTIM Counter Source 00324 * @{ 00325 */ 00326 00327 #define LPTIM_COUNTERSOURCE_INTERNAL 0x00000000U 00328 #define LPTIM_COUNTERSOURCE_EXTERNAL LPTIM_CFGR_COUNTMODE 00329 /** 00330 * @} 00331 */ 00332 00333 /** @defgroup LPTIM_Input1_Source LPTIM Input1 Source 00334 * @{ 00335 */ 00336 00337 #define LPTIM_INPUT1SOURCE_GPIO 0x00000000U /*!< For LPTIM1 and LPTIM2 */ 00338 #define LPTIM_INPUT1SOURCE_COMP1 LPTIM_OR_OR_0 /*!< For LPTIM1 and LPTIM2 */ 00339 #define LPTIM_INPUT1SOURCE_COMP2 LPTIM_OR_OR_1 /*!< For LPTIM2 */ 00340 #define LPTIM_INPUT1SOURCE_COMP1_COMP2 LPTIM_OR_OR /*!< For LPTIM2 */ 00341 /** 00342 * @} 00343 */ 00344 00345 /** @defgroup LPTIM_Input2_Source LPTIM Input2 Source 00346 * @{ 00347 */ 00348 00349 #define LPTIM_INPUT2SOURCE_GPIO 0x00000000U /*!< For LPTIM1 */ 00350 #define LPTIM_INPUT2SOURCE_COMP2 LPTIM_OR_OR_1 /*!< For LPTIM1 */ 00351 /** 00352 * @} 00353 */ 00354 00355 /** @defgroup LPTIM_Flag_Definition LPTIM Flags Definition 00356 * @{ 00357 */ 00358 00359 #if defined(LPTIM_RCR_REP) 00360 #define LPTIM_FLAG_REPOK LPTIM_ISR_REPOK 00361 #define LPTIM_FLAG_UPDATE LPTIM_ISR_UE 00362 #endif 00363 #define LPTIM_FLAG_DOWN LPTIM_ISR_DOWN 00364 #define LPTIM_FLAG_UP LPTIM_ISR_UP 00365 #define LPTIM_FLAG_ARROK LPTIM_ISR_ARROK 00366 #define LPTIM_FLAG_CMPOK LPTIM_ISR_CMPOK 00367 #define LPTIM_FLAG_EXTTRIG LPTIM_ISR_EXTTRIG 00368 #define LPTIM_FLAG_ARRM LPTIM_ISR_ARRM 00369 #define LPTIM_FLAG_CMPM LPTIM_ISR_CMPM 00370 /** 00371 * @} 00372 */ 00373 00374 /** @defgroup LPTIM_Interrupts_Definition LPTIM Interrupts Definition 00375 * @{ 00376 */ 00377 #if defined(LPTIM_RCR_REP) 00378 #define LPTIM_IT_REPOK LPTIM_IER_REPOKIE 00379 #define LPTIM_IT_UPDATE LPTIM_IER_UEIE 00380 #endif 00381 #define LPTIM_IT_DOWN LPTIM_IER_DOWNIE 00382 #define LPTIM_IT_UP LPTIM_IER_UPIE 00383 #define LPTIM_IT_ARROK LPTIM_IER_ARROKIE 00384 #define LPTIM_IT_CMPOK LPTIM_IER_CMPOKIE 00385 #define LPTIM_IT_EXTTRIG LPTIM_IER_EXTTRIGIE 00386 #define LPTIM_IT_ARRM LPTIM_IER_ARRMIE 00387 #define LPTIM_IT_CMPM LPTIM_IER_CMPMIE 00388 /** 00389 * @} 00390 */ 00391 00392 /** 00393 * @} 00394 */ 00395 00396 /* Exported macros -----------------------------------------------------------*/ 00397 /** @defgroup LPTIM_Exported_Macros LPTIM Exported Macros 00398 * @{ 00399 */ 00400 00401 /** @brief Reset LPTIM handle state. 00402 * @param __HANDLE__ LPTIM handle 00403 * @retval None 00404 */ 00405 #if (USE_HAL_LPTIM_REGISTER_CALLBACKS == 1) 00406 #define __HAL_LPTIM_RESET_HANDLE_STATE(__HANDLE__) do { \ 00407 (__HANDLE__)->State = HAL_LPTIM_STATE_RESET; \ 00408 (__HANDLE__)->MspInitCallback = NULL; \ 00409 (__HANDLE__)->MspDeInitCallback = NULL; \ 00410 } while(0) 00411 #else 00412 #define __HAL_LPTIM_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_LPTIM_STATE_RESET) 00413 #endif /* USE_HAL_LPTIM_REGISTER_CALLBACKS */ 00414 00415 /** 00416 * @brief Enable the LPTIM peripheral. 00417 * @param __HANDLE__ LPTIM handle 00418 * @retval None 00419 */ 00420 #define __HAL_LPTIM_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= (LPTIM_CR_ENABLE)) 00421 00422 /** 00423 * @brief Disable the LPTIM peripheral. 00424 * @param __HANDLE__ LPTIM handle 00425 * @note The following sequence is required to solve LPTIM disable HW limitation. 00426 * Please check Errata Sheet ES0335 for more details under "MCU may remain 00427 * stuck in LPTIM interrupt when entering Stop mode" section. 00428 * @note Please call @ref HAL_LPTIM_GetState() after a call to __HAL_LPTIM_DISABLE to 00429 * check for TIMEOUT. 00430 * @retval None 00431 */ 00432 #define __HAL_LPTIM_DISABLE(__HANDLE__) LPTIM_Disable(__HANDLE__) 00433 00434 /** 00435 * @brief Start the LPTIM peripheral in Continuous mode. 00436 * @param __HANDLE__ LPTIM handle 00437 * @retval None 00438 */ 00439 #define __HAL_LPTIM_START_CONTINUOUS(__HANDLE__) ((__HANDLE__)->Instance->CR |= LPTIM_CR_CNTSTRT) 00440 /** 00441 * @brief Start the LPTIM peripheral in single mode. 00442 * @param __HANDLE__ LPTIM handle 00443 * @retval None 00444 */ 00445 #define __HAL_LPTIM_START_SINGLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= LPTIM_CR_SNGSTRT) 00446 00447 #if defined(LPTIM_CR_COUNTRST) 00448 /** 00449 * @brief Reset the LPTIM Counter register in synchronous mode. 00450 * @param __HANDLE__ LPTIM handle 00451 * @retval None 00452 */ 00453 #define __HAL_LPTIM_RESET_COUNTER(__HANDLE__) ((__HANDLE__)->Instance->CR |= LPTIM_CR_COUNTRST) 00454 #endif /* LPTIM_CR_COUNTRST */ 00455 00456 #if defined(LPTIM_CR_RSTARE) 00457 /** 00458 * @brief Reset after read of the LPTIM Counter register in asynchronous mode. 00459 * @param __HANDLE__ LPTIM handle 00460 * @retval None 00461 */ 00462 #define __HAL_LPTIM_RESET_COUNTER_AFTERREAD(__HANDLE__) ((__HANDLE__)->Instance->CR |= LPTIM_CR_RSTARE) 00463 #endif /* LPTIM_CR_RSTARE */ 00464 00465 /** 00466 * @brief Write the passed parameter in the Autoreload register. 00467 * @param __HANDLE__ LPTIM handle 00468 * @param __VALUE__ Autoreload value 00469 * @retval None 00470 * @note The ARR register can only be modified when the LPTIM instance is enabled. 00471 */ 00472 #define __HAL_LPTIM_AUTORELOAD_SET(__HANDLE__ , __VALUE__) ((__HANDLE__)->Instance->ARR = (__VALUE__)) 00473 00474 /** 00475 * @brief Write the passed parameter in the Compare register. 00476 * @param __HANDLE__ LPTIM handle 00477 * @param __VALUE__ Compare value 00478 * @retval None 00479 * @note The CMP register can only be modified when the LPTIM instance is enabled. 00480 */ 00481 #define __HAL_LPTIM_COMPARE_SET(__HANDLE__ , __VALUE__) ((__HANDLE__)->Instance->CMP = (__VALUE__)) 00482 00483 #if defined(LPTIM_RCR_REP) 00484 /** 00485 * @brief Write the passed parameter in the Repetition register. 00486 * @param __HANDLE__ LPTIM handle 00487 * @param __VALUE__ Repetition value 00488 * @retval None 00489 */ 00490 #define __HAL_LPTIM_REPETITIONCOUNTER_SET(__HANDLE__ , __VALUE__) ((__HANDLE__)->Instance->RCR = (__VALUE__)) 00491 00492 /** 00493 * @brief Return the current Repetition value. 00494 * @param __HANDLE__ LPTIM handle 00495 * @retval Repetition register value 00496 * @note The RCR register can only be modified when the LPTIM instance is enabled. 00497 */ 00498 #define __HAL_LPTIM_REPETITIONCOUNTER_GET(__HANDLE__) ((__HANDLE__)->Instance->RCR) 00499 #endif 00500 00501 /** 00502 * @brief Check whether the specified LPTIM flag is set or not. 00503 * @param __HANDLE__ LPTIM handle 00504 * @param __FLAG__ LPTIM flag to check 00505 * This parameter can be a value of: 00506 * @arg LPTIM_FLAG_REPOK : Repetition register update OK Flag (when available). 00507 * @arg LPTIM_FLAG_UPDATE : Update event Flag (when available). 00508 * @arg LPTIM_FLAG_DOWN : Counter direction change up Flag. 00509 * @arg LPTIM_FLAG_UP : Counter direction change down to up Flag. 00510 * @arg LPTIM_FLAG_ARROK : Autoreload register update OK Flag. 00511 * @arg LPTIM_FLAG_CMPOK : Compare register update OK Flag. 00512 * @arg LPTIM_FLAG_EXTTRIG : External trigger edge event Flag. 00513 * @arg LPTIM_FLAG_ARRM : Autoreload match Flag. 00514 * @arg LPTIM_FLAG_CMPM : Compare match Flag. 00515 * @retval The state of the specified flag (SET or RESET). 00516 */ 00517 #define __HAL_LPTIM_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->ISR &(__FLAG__)) == (__FLAG__)) 00518 00519 /** 00520 * @brief Clear the specified LPTIM flag. 00521 * @param __HANDLE__ LPTIM handle. 00522 * @param __FLAG__ LPTIM flag to clear. 00523 * This parameter can be a value of: 00524 * @arg LPTIM_FLAG_REPOK : Repetition register update OK Flag (when available). 00525 * @arg LPTIM_FLAG_UPDATE : Update event Flag (when available). 00526 * @arg LPTIM_FLAG_DOWN : Counter direction change up Flag. 00527 * @arg LPTIM_FLAG_UP : Counter direction change down to up Flag. 00528 * @arg LPTIM_FLAG_ARROK : Autoreload register update OK Flag. 00529 * @arg LPTIM_FLAG_CMPOK : Compare register update OK Flag. 00530 * @arg LPTIM_FLAG_EXTTRIG : External trigger edge event Flag. 00531 * @arg LPTIM_FLAG_ARRM : Autoreload match Flag. 00532 * @arg LPTIM_FLAG_CMPM : Compare match Flag. 00533 * @retval None. 00534 */ 00535 #define __HAL_LPTIM_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ICR = (__FLAG__)) 00536 00537 /** 00538 * @brief Enable the specified LPTIM interrupt. 00539 * @param __HANDLE__ LPTIM handle. 00540 * @param __INTERRUPT__ LPTIM interrupt to set. 00541 * This parameter can be a value of: 00542 * @arg LPTIM_IT_REPOK : Repetition register update OK Interrupt (when available). 00543 * @arg LPTIM_IT_UPDATE : Update event register Interrupt (when available). 00544 * @arg LPTIM_IT_DOWN : Counter direction change up Interrupt. 00545 * @arg LPTIM_IT_UP : Counter direction change down to up Interrupt. 00546 * @arg LPTIM_IT_ARROK : Autoreload register update OK Interrupt. 00547 * @arg LPTIM_IT_CMPOK : Compare register update OK Interrupt. 00548 * @arg LPTIM_IT_EXTTRIG : External trigger edge event Interrupt. 00549 * @arg LPTIM_IT_ARRM : Autoreload match Interrupt. 00550 * @arg LPTIM_IT_CMPM : Compare match Interrupt. 00551 * @retval None. 00552 * @note The LPTIM interrupts can only be enabled when the LPTIM instance is disabled. 00553 */ 00554 #define __HAL_LPTIM_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->IER |= (__INTERRUPT__)) 00555 00556 /** 00557 * @brief Disable the specified LPTIM interrupt. 00558 * @param __HANDLE__ LPTIM handle. 00559 * @param __INTERRUPT__ LPTIM interrupt to set. 00560 * This parameter can be a value of: 00561 * @arg LPTIM_IT_REPOK : Repetition register update OK Interrupt (when available). 00562 * @arg LPTIM_IT_UPDATE : Update event register Interrupt (when available). 00563 * @arg LPTIM_IT_DOWN : Counter direction change up Interrupt. 00564 * @arg LPTIM_IT_UP : Counter direction change down to up Interrupt. 00565 * @arg LPTIM_IT_ARROK : Autoreload register update OK Interrupt. 00566 * @arg LPTIM_IT_CMPOK : Compare register update OK Interrupt. 00567 * @arg LPTIM_IT_EXTTRIG : External trigger edge event Interrupt. 00568 * @arg LPTIM_IT_ARRM : Autoreload match Interrupt. 00569 * @arg LPTIM_IT_CMPM : Compare match Interrupt. 00570 * @retval None. 00571 * @note The LPTIM interrupts can only be disabled when the LPTIM instance is disabled. 00572 */ 00573 #define __HAL_LPTIM_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->IER &= (~(__INTERRUPT__))) 00574 00575 /** 00576 * @brief Check whether the specified LPTIM interrupt source is enabled or not. 00577 * @param __HANDLE__ LPTIM handle. 00578 * @param __INTERRUPT__ LPTIM interrupt to check. 00579 * This parameter can be a value of: 00580 * @arg LPTIM_IT_REPOK : Repetition register update OK Interrupt (when available). 00581 * @arg LPTIM_IT_UPDATE : Update event register Interrupt (when available). 00582 * @arg LPTIM_IT_DOWN : Counter direction change up Interrupt. 00583 * @arg LPTIM_IT_UP : Counter direction change down to up Interrupt. 00584 * @arg LPTIM_IT_ARROK : Autoreload register update OK Interrupt. 00585 * @arg LPTIM_IT_CMPOK : Compare register update OK Interrupt. 00586 * @arg LPTIM_IT_EXTTRIG : External trigger edge event Interrupt. 00587 * @arg LPTIM_IT_ARRM : Autoreload match Interrupt. 00588 * @arg LPTIM_IT_CMPM : Compare match Interrupt. 00589 * @retval Interrupt status. 00590 */ 00591 00592 #define __HAL_LPTIM_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((((__HANDLE__)->Instance->IER\ 00593 & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET) 00594 00595 /** 00596 * @brief Enable the LPTIM1 EXTI line in interrupt mode. 00597 * @retval None 00598 */ 00599 #define __HAL_LPTIM_LPTIM1_EXTI_ENABLE_IT() (EXTI->IMR2 |= LPTIM_EXTI_LINE_LPTIM1) 00600 00601 /** 00602 * @brief Disable the LPTIM1 EXTI line in interrupt mode. 00603 * @retval None 00604 */ 00605 #define __HAL_LPTIM_LPTIM1_EXTI_DISABLE_IT() (EXTI->IMR2\ 00606 &= ~(LPTIM_EXTI_LINE_LPTIM1)) 00607 00608 00609 /** 00610 * @brief Enable the LPTIM1 EXTI line in event mode. 00611 * @retval None 00612 */ 00613 #define __HAL_LPTIM_LPTIM1_EXTI_ENABLE_EVENT() (EXTI->EMR2 |= LPTIM_EXTI_LINE_LPTIM1) 00614 00615 /** 00616 * @brief Disable the LPTIM1 EXTI line in event mode. 00617 * @retval None 00618 */ 00619 #define __HAL_LPTIM_LPTIM1_EXTI_DISABLE_EVENT() (EXTI->EMR2\ 00620 &= ~(LPTIM_EXTI_LINE_LPTIM1)) 00621 00622 /** 00623 * @brief Enable the LPTIM2 EXTI line in interrupt mode. 00624 * @retval None 00625 */ 00626 #define __HAL_LPTIM_LPTIM2_EXTI_ENABLE_IT() (EXTI->IMR2 |= LPTIM_EXTI_LINE_LPTIM2) 00627 00628 /** 00629 * @brief Disable the LPTIM2 EXTI line in interrupt mode. 00630 * @retval None 00631 */ 00632 #define __HAL_LPTIM_LPTIM2_EXTI_DISABLE_IT() (EXTI->IMR2\ 00633 &= ~(LPTIM_EXTI_LINE_LPTIM2)) 00634 00635 00636 /** 00637 * @brief Enable the LPTIM2 EXTI line in event mode. 00638 * @retval None 00639 */ 00640 #define __HAL_LPTIM_LPTIM2_EXTI_ENABLE_EVENT() (EXTI->EMR2 |= LPTIM_EXTI_LINE_LPTIM2) 00641 00642 /** 00643 * @brief Disable the LPTIM2 EXTI line in event mode. 00644 * @retval None 00645 */ 00646 #define __HAL_LPTIM_LPTIM2_EXTI_DISABLE_EVENT() (EXTI->EMR2\ 00647 &= ~(LPTIM_EXTI_LINE_LPTIM2)) 00648 00649 /** 00650 * @} 00651 */ 00652 00653 /* Exported functions --------------------------------------------------------*/ 00654 /** @defgroup LPTIM_Exported_Functions LPTIM Exported Functions 00655 * @{ 00656 */ 00657 00658 /** @addtogroup LPTIM_Exported_Functions_Group1 00659 * @brief Initialization and Configuration functions. 00660 * @{ 00661 */ 00662 /* Initialization/de-initialization functions ********************************/ 00663 HAL_StatusTypeDef HAL_LPTIM_Init(LPTIM_HandleTypeDef *hlptim); 00664 HAL_StatusTypeDef HAL_LPTIM_DeInit(LPTIM_HandleTypeDef *hlptim); 00665 00666 /* MSP functions *************************************************************/ 00667 void HAL_LPTIM_MspInit(LPTIM_HandleTypeDef *hlptim); 00668 void HAL_LPTIM_MspDeInit(LPTIM_HandleTypeDef *hlptim); 00669 /** 00670 * @} 00671 */ 00672 00673 /** @addtogroup LPTIM_Exported_Functions_Group2 00674 * @brief Start-Stop operation functions. 00675 * @{ 00676 */ 00677 /* Start/Stop operation functions *********************************************/ 00678 /* ################################# PWM Mode ################################*/ 00679 /* Blocking mode: Polling */ 00680 HAL_StatusTypeDef HAL_LPTIM_PWM_Start(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Pulse); 00681 HAL_StatusTypeDef HAL_LPTIM_PWM_Stop(LPTIM_HandleTypeDef *hlptim); 00682 /* Non-Blocking mode: Interrupt */ 00683 HAL_StatusTypeDef HAL_LPTIM_PWM_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Pulse); 00684 HAL_StatusTypeDef HAL_LPTIM_PWM_Stop_IT(LPTIM_HandleTypeDef *hlptim); 00685 00686 /* ############################# One Pulse Mode ##############################*/ 00687 /* Blocking mode: Polling */ 00688 HAL_StatusTypeDef HAL_LPTIM_OnePulse_Start(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Pulse); 00689 HAL_StatusTypeDef HAL_LPTIM_OnePulse_Stop(LPTIM_HandleTypeDef *hlptim); 00690 /* Non-Blocking mode: Interrupt */ 00691 HAL_StatusTypeDef HAL_LPTIM_OnePulse_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Pulse); 00692 HAL_StatusTypeDef HAL_LPTIM_OnePulse_Stop_IT(LPTIM_HandleTypeDef *hlptim); 00693 00694 /* ############################## Set once Mode ##############################*/ 00695 /* Blocking mode: Polling */ 00696 HAL_StatusTypeDef HAL_LPTIM_SetOnce_Start(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Pulse); 00697 HAL_StatusTypeDef HAL_LPTIM_SetOnce_Stop(LPTIM_HandleTypeDef *hlptim); 00698 /* Non-Blocking mode: Interrupt */ 00699 HAL_StatusTypeDef HAL_LPTIM_SetOnce_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Pulse); 00700 HAL_StatusTypeDef HAL_LPTIM_SetOnce_Stop_IT(LPTIM_HandleTypeDef *hlptim); 00701 00702 /* ############################### Encoder Mode ##############################*/ 00703 /* Blocking mode: Polling */ 00704 HAL_StatusTypeDef HAL_LPTIM_Encoder_Start(LPTIM_HandleTypeDef *hlptim, uint32_t Period); 00705 HAL_StatusTypeDef HAL_LPTIM_Encoder_Stop(LPTIM_HandleTypeDef *hlptim); 00706 /* Non-Blocking mode: Interrupt */ 00707 HAL_StatusTypeDef HAL_LPTIM_Encoder_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period); 00708 HAL_StatusTypeDef HAL_LPTIM_Encoder_Stop_IT(LPTIM_HandleTypeDef *hlptim); 00709 00710 /* ############################# Time out Mode ##############################*/ 00711 /* Blocking mode: Polling */ 00712 HAL_StatusTypeDef HAL_LPTIM_TimeOut_Start(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Timeout); 00713 HAL_StatusTypeDef HAL_LPTIM_TimeOut_Stop(LPTIM_HandleTypeDef *hlptim); 00714 /* Non-Blocking mode: Interrupt */ 00715 HAL_StatusTypeDef HAL_LPTIM_TimeOut_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Timeout); 00716 HAL_StatusTypeDef HAL_LPTIM_TimeOut_Stop_IT(LPTIM_HandleTypeDef *hlptim); 00717 00718 /* ############################## Counter Mode ###############################*/ 00719 /* Blocking mode: Polling */ 00720 HAL_StatusTypeDef HAL_LPTIM_Counter_Start(LPTIM_HandleTypeDef *hlptim, uint32_t Period); 00721 HAL_StatusTypeDef HAL_LPTIM_Counter_Stop(LPTIM_HandleTypeDef *hlptim); 00722 /* Non-Blocking mode: Interrupt */ 00723 HAL_StatusTypeDef HAL_LPTIM_Counter_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period); 00724 HAL_StatusTypeDef HAL_LPTIM_Counter_Stop_IT(LPTIM_HandleTypeDef *hlptim); 00725 /** 00726 * @} 00727 */ 00728 00729 /** @addtogroup LPTIM_Exported_Functions_Group3 00730 * @brief Read operation functions. 00731 * @{ 00732 */ 00733 /* Reading operation functions ************************************************/ 00734 uint32_t HAL_LPTIM_ReadCounter(LPTIM_HandleTypeDef *hlptim); 00735 uint32_t HAL_LPTIM_ReadAutoReload(LPTIM_HandleTypeDef *hlptim); 00736 uint32_t HAL_LPTIM_ReadCompare(LPTIM_HandleTypeDef *hlptim); 00737 /** 00738 * @} 00739 */ 00740 00741 /** @addtogroup LPTIM_Exported_Functions_Group4 00742 * @brief LPTIM IRQ handler and callback functions. 00743 * @{ 00744 */ 00745 /* LPTIM IRQ functions *******************************************************/ 00746 void HAL_LPTIM_IRQHandler(LPTIM_HandleTypeDef *hlptim); 00747 00748 /* CallBack functions ********************************************************/ 00749 void HAL_LPTIM_CompareMatchCallback(LPTIM_HandleTypeDef *hlptim); 00750 void HAL_LPTIM_AutoReloadMatchCallback(LPTIM_HandleTypeDef *hlptim); 00751 void HAL_LPTIM_TriggerCallback(LPTIM_HandleTypeDef *hlptim); 00752 void HAL_LPTIM_CompareWriteCallback(LPTIM_HandleTypeDef *hlptim); 00753 void HAL_LPTIM_AutoReloadWriteCallback(LPTIM_HandleTypeDef *hlptim); 00754 void HAL_LPTIM_DirectionUpCallback(LPTIM_HandleTypeDef *hlptim); 00755 void HAL_LPTIM_DirectionDownCallback(LPTIM_HandleTypeDef *hlptim); 00756 #if defined(LPTIM_RCR_REP) 00757 void HAL_LPTIM_UpdateEventCallback(LPTIM_HandleTypeDef *hlptim); 00758 void HAL_LPTIM_RepCounterWriteCallback(LPTIM_HandleTypeDef *hlptim); 00759 #endif 00760 00761 /* Callbacks Register/UnRegister functions ***********************************/ 00762 #if (USE_HAL_LPTIM_REGISTER_CALLBACKS == 1) 00763 HAL_StatusTypeDef HAL_LPTIM_RegisterCallback(LPTIM_HandleTypeDef *lphtim, HAL_LPTIM_CallbackIDTypeDef CallbackID, 00764 pLPTIM_CallbackTypeDef pCallback); 00765 HAL_StatusTypeDef HAL_LPTIM_UnRegisterCallback(LPTIM_HandleTypeDef *lphtim, HAL_LPTIM_CallbackIDTypeDef CallbackID); 00766 #endif /* USE_HAL_LPTIM_REGISTER_CALLBACKS */ 00767 /** 00768 * @} 00769 */ 00770 00771 /** @addtogroup LPTIM_Group5 00772 * @brief Peripheral State functions. 00773 * @{ 00774 */ 00775 /* Peripheral State functions ************************************************/ 00776 HAL_LPTIM_StateTypeDef HAL_LPTIM_GetState(LPTIM_HandleTypeDef *hlptim); 00777 /** 00778 * @} 00779 */ 00780 00781 /** 00782 * @} 00783 */ 00784 00785 /* Private types -------------------------------------------------------------*/ 00786 /** @defgroup LPTIM_Private_Types LPTIM Private Types 00787 * @{ 00788 */ 00789 00790 /** 00791 * @} 00792 */ 00793 00794 /* Private variables ---------------------------------------------------------*/ 00795 /** @defgroup LPTIM_Private_Variables LPTIM Private Variables 00796 * @{ 00797 */ 00798 00799 /** 00800 * @} 00801 */ 00802 00803 /* Private constants ---------------------------------------------------------*/ 00804 /** @defgroup LPTIM_Private_Constants LPTIM Private Constants 00805 * @{ 00806 */ 00807 00808 /** 00809 * @} 00810 */ 00811 00812 /* Private macros ------------------------------------------------------------*/ 00813 /** @defgroup LPTIM_Private_Macros LPTIM Private Macros 00814 * @{ 00815 */ 00816 00817 #define IS_LPTIM_CLOCK_SOURCE(__SOURCE__) (((__SOURCE__) == LPTIM_CLOCKSOURCE_ULPTIM) || \ 00818 ((__SOURCE__) == LPTIM_CLOCKSOURCE_APBCLOCK_LPOSC)) 00819 00820 00821 #define IS_LPTIM_CLOCK_PRESCALER(__PRESCALER__) (((__PRESCALER__) == LPTIM_PRESCALER_DIV1 ) || \ 00822 ((__PRESCALER__) == LPTIM_PRESCALER_DIV2 ) || \ 00823 ((__PRESCALER__) == LPTIM_PRESCALER_DIV4 ) || \ 00824 ((__PRESCALER__) == LPTIM_PRESCALER_DIV8 ) || \ 00825 ((__PRESCALER__) == LPTIM_PRESCALER_DIV16 ) || \ 00826 ((__PRESCALER__) == LPTIM_PRESCALER_DIV32 ) || \ 00827 ((__PRESCALER__) == LPTIM_PRESCALER_DIV64 ) || \ 00828 ((__PRESCALER__) == LPTIM_PRESCALER_DIV128)) 00829 00830 #define IS_LPTIM_CLOCK_PRESCALERDIV1(__PRESCALER__) ((__PRESCALER__) == LPTIM_PRESCALER_DIV1) 00831 00832 #define IS_LPTIM_OUTPUT_POLARITY(__POLARITY__) (((__POLARITY__) == LPTIM_OUTPUTPOLARITY_LOW ) || \ 00833 ((__POLARITY__) == LPTIM_OUTPUTPOLARITY_HIGH)) 00834 00835 #define IS_LPTIM_CLOCK_SAMPLE_TIME(__SAMPLETIME__) (((__SAMPLETIME__) == LPTIM_CLOCKSAMPLETIME_DIRECTTRANSITION) || \ 00836 ((__SAMPLETIME__) == LPTIM_CLOCKSAMPLETIME_2TRANSITIONS) || \ 00837 ((__SAMPLETIME__) == LPTIM_CLOCKSAMPLETIME_4TRANSITIONS) || \ 00838 ((__SAMPLETIME__) == LPTIM_CLOCKSAMPLETIME_8TRANSITIONS)) 00839 00840 #define IS_LPTIM_CLOCK_POLARITY(__POLARITY__) (((__POLARITY__) == LPTIM_CLOCKPOLARITY_RISING) || \ 00841 ((__POLARITY__) == LPTIM_CLOCKPOLARITY_FALLING) || \ 00842 ((__POLARITY__) == LPTIM_CLOCKPOLARITY_RISING_FALLING)) 00843 00844 #define IS_LPTIM_TRG_SOURCE(__TRIG__) (((__TRIG__) == LPTIM_TRIGSOURCE_SOFTWARE) || \ 00845 ((__TRIG__) == LPTIM_TRIGSOURCE_0) || \ 00846 ((__TRIG__) == LPTIM_TRIGSOURCE_1) || \ 00847 ((__TRIG__) == LPTIM_TRIGSOURCE_2) || \ 00848 ((__TRIG__) == LPTIM_TRIGSOURCE_3) || \ 00849 ((__TRIG__) == LPTIM_TRIGSOURCE_4) || \ 00850 ((__TRIG__) == LPTIM_TRIGSOURCE_5) || \ 00851 ((__TRIG__) == LPTIM_TRIGSOURCE_6) || \ 00852 ((__TRIG__) == LPTIM_TRIGSOURCE_7)) 00853 00854 #define IS_LPTIM_EXT_TRG_POLARITY(__POLARITY__) (((__POLARITY__) == LPTIM_ACTIVEEDGE_RISING ) || \ 00855 ((__POLARITY__) == LPTIM_ACTIVEEDGE_FALLING ) || \ 00856 ((__POLARITY__) == LPTIM_ACTIVEEDGE_RISING_FALLING )) 00857 00858 #define IS_LPTIM_TRIG_SAMPLE_TIME(__SAMPLETIME__) (((__SAMPLETIME__) == LPTIM_TRIGSAMPLETIME_DIRECTTRANSITION) || \ 00859 ((__SAMPLETIME__) == LPTIM_TRIGSAMPLETIME_2TRANSITIONS ) || \ 00860 ((__SAMPLETIME__) == LPTIM_TRIGSAMPLETIME_4TRANSITIONS ) || \ 00861 ((__SAMPLETIME__) == LPTIM_TRIGSAMPLETIME_8TRANSITIONS )) 00862 00863 #define IS_LPTIM_UPDATE_MODE(__MODE__) (((__MODE__) == LPTIM_UPDATE_IMMEDIATE) || \ 00864 ((__MODE__) == LPTIM_UPDATE_ENDOFPERIOD)) 00865 00866 #define IS_LPTIM_COUNTER_SOURCE(__SOURCE__) (((__SOURCE__) == LPTIM_COUNTERSOURCE_INTERNAL) || \ 00867 ((__SOURCE__) == LPTIM_COUNTERSOURCE_EXTERNAL)) 00868 00869 #define IS_LPTIM_AUTORELOAD(__AUTORELOAD__) ((__AUTORELOAD__) <= 0x0000FFFFUL) 00870 00871 #define IS_LPTIM_COMPARE(__COMPARE__) ((__COMPARE__) <= 0x0000FFFFUL) 00872 00873 #define IS_LPTIM_PERIOD(__PERIOD__) ((__PERIOD__) <= 0x0000FFFFUL) 00874 00875 #define IS_LPTIM_PULSE(__PULSE__) ((__PULSE__) <= 0x0000FFFFUL) 00876 00877 #if defined(LPTIM_RCR_REP) 00878 #define IS_LPTIM_REPETITION(__REPETITION__) ((__REPETITION__) <= 0x000000FFUL) 00879 #endif 00880 00881 #define IS_LPTIM_INPUT1_SOURCE(__INSTANCE__, __SOURCE__) \ 00882 ((((__INSTANCE__) == LPTIM1) && \ 00883 (((__SOURCE__) == LPTIM_INPUT1SOURCE_GPIO) || \ 00884 ((__SOURCE__) == LPTIM_INPUT1SOURCE_COMP1))) \ 00885 || \ 00886 (((__INSTANCE__) == LPTIM2) && \ 00887 (((__SOURCE__) == LPTIM_INPUT1SOURCE_GPIO) || \ 00888 ((__SOURCE__) == LPTIM_INPUT1SOURCE_COMP1) || \ 00889 ((__SOURCE__) == LPTIM_INPUT1SOURCE_COMP2) || \ 00890 ((__SOURCE__) == LPTIM_INPUT1SOURCE_COMP1_COMP2)))) 00891 00892 #define IS_LPTIM_INPUT2_SOURCE(__INSTANCE__, __SOURCE__) \ 00893 (((__INSTANCE__) == LPTIM1) && \ 00894 (((__SOURCE__) == LPTIM_INPUT2SOURCE_GPIO) || \ 00895 ((__SOURCE__) == LPTIM_INPUT2SOURCE_COMP2))) 00896 00897 /** 00898 * @} 00899 */ 00900 00901 /* Private functions ---------------------------------------------------------*/ 00902 /** @defgroup LPTIM_Private_Functions LPTIM Private Functions 00903 * @{ 00904 */ 00905 void LPTIM_Disable(LPTIM_HandleTypeDef *hlptim); 00906 /** 00907 * @} 00908 */ 00909 00910 /** 00911 * @} 00912 */ 00913 00914 #endif /* LPTIM1 || LPTIM2 */ 00915 /** 00916 * @} 00917 */ 00918 00919 #ifdef __cplusplus 00920 } 00921 #endif 00922 00923 #endif /* STM32L4xx_HAL_LPTIM_H */