1 /** 2 ****************************************************************************** 3 * @file stm32l4xx_hal_lptim.h 4 * @author MCD Application Team 5 * @brief Header file of LPTIM HAL module. 6 ****************************************************************************** 7 * @attention 8 * 9 * <h2><center>© Copyright (c) 2017 STMicroelectronics. 10 * All rights reserved.</center></h2> 11 * 12 * This software component is licensed by ST under BSD 3-Clause license, 13 * the "License"; You may not use this file except in compliance with the 14 * License. You may obtain a copy of the License at: 15 * opensource.org/licenses/BSD-3-Clause 16 * 17 ****************************************************************************** 18 */ 19 20 /* Define to prevent recursive inclusion -------------------------------------*/ 21 #ifndef STM32L4xx_HAL_LPTIM_H 22 #define STM32L4xx_HAL_LPTIM_H 23 24 #ifdef __cplusplus 25 extern "C" { 26 #endif 27 28 /* Includes ------------------------------------------------------------------*/ 29 #include "stm32l4xx_hal_def.h" 30 31 /** @addtogroup STM32L4xx_HAL_Driver 32 * @{ 33 */ 34 35 #if defined (LPTIM1) || defined (LPTIM2) 36 37 /** @addtogroup LPTIM 38 * @{ 39 */ 40 41 /* Exported types ------------------------------------------------------------*/ 42 /** @defgroup LPTIM_Exported_Types LPTIM Exported Types 43 * @{ 44 */ 45 #define LPTIM_EXTI_LINE_LPTIM1 EXTI_IMR2_IM32 /*!< External interrupt line 32 Connected to the LPTIM1 EXTI Line */ 46 #define LPTIM_EXTI_LINE_LPTIM2 EXTI_IMR2_IM33 /*!< External interrupt line 33 Connected to the LPTIM2 EXTI Line */ 47 48 /** 49 * @brief LPTIM Clock configuration definition 50 */ 51 typedef struct 52 { 53 uint32_t Source; /*!< Selects the clock source. 54 This parameter can be a value of @ref LPTIM_Clock_Source */ 55 56 uint32_t Prescaler; /*!< Specifies the counter clock Prescaler. 57 This parameter can be a value of @ref LPTIM_Clock_Prescaler */ 58 59 } LPTIM_ClockConfigTypeDef; 60 61 /** 62 * @brief LPTIM Clock configuration definition 63 */ 64 typedef struct 65 { 66 uint32_t Polarity; /*!< Selects the polarity of the active edge for the counter unit 67 if the ULPTIM input is selected. 68 Note: This parameter is used only when Ultra low power clock source is used. 69 Note: If the polarity is configured on 'both edges', an auxiliary clock 70 (one of the Low power oscillator) must be active. 71 This parameter can be a value of @ref LPTIM_Clock_Polarity */ 72 73 uint32_t SampleTime; /*!< Selects the clock sampling time to configure the clock glitch filter. 74 Note: This parameter is used only when Ultra low power clock source is used. 75 This parameter can be a value of @ref LPTIM_Clock_Sample_Time */ 76 77 } LPTIM_ULPClockConfigTypeDef; 78 79 /** 80 * @brief LPTIM Trigger configuration definition 81 */ 82 typedef struct 83 { 84 uint32_t Source; /*!< Selects the Trigger source. 85 This parameter can be a value of @ref LPTIM_Trigger_Source */ 86 87 uint32_t ActiveEdge; /*!< Selects the Trigger active edge. 88 Note: This parameter is used only when an external trigger is used. 89 This parameter can be a value of @ref LPTIM_External_Trigger_Polarity */ 90 91 uint32_t SampleTime; /*!< Selects the trigger sampling time to configure the clock glitch filter. 92 Note: This parameter is used only when an external trigger is used. 93 This parameter can be a value of @ref LPTIM_Trigger_Sample_Time */ 94 } LPTIM_TriggerConfigTypeDef; 95 96 /** 97 * @brief LPTIM Initialization Structure definition 98 */ 99 typedef struct 100 { 101 LPTIM_ClockConfigTypeDef Clock; /*!< Specifies the clock parameters */ 102 103 LPTIM_ULPClockConfigTypeDef UltraLowPowerClock; /*!< Specifies the Ultra Low Power clock parameters */ 104 105 LPTIM_TriggerConfigTypeDef Trigger; /*!< Specifies the Trigger parameters */ 106 107 uint32_t OutputPolarity; /*!< Specifies the Output polarity. 108 This parameter can be a value of @ref LPTIM_Output_Polarity */ 109 110 uint32_t UpdateMode; /*!< Specifies whether the update of the autoreload and the compare 111 values is done immediately or after the end of current period. 112 This parameter can be a value of @ref LPTIM_Updating_Mode */ 113 114 uint32_t CounterSource; /*!< Specifies whether the counter is incremented each internal event 115 or each external event. 116 This parameter can be a value of @ref LPTIM_Counter_Source */ 117 118 uint32_t Input1Source; /*!< Specifies source selected for input1 (GPIO or comparator output). 119 This parameter can be a value of @ref LPTIM_Input1_Source */ 120 121 uint32_t Input2Source; /*!< Specifies source selected for input2 (GPIO or comparator output). 122 Note: This parameter is used only for encoder feature so is used only 123 for LPTIM1 instance. 124 This parameter can be a value of @ref LPTIM_Input2_Source */ 125 126 #if defined(LPTIM_RCR_REP) 127 uint32_t RepetitionCounter; /*!< Specifies the repetition counter value. Each time the RCR downcounter 128 reaches zero, an update event is generated and counting restarts 129 from the RCR value (N). 130 Note: When using repetition counter the UpdateMode field must be set to 131 LPTIM_UPDATE_ENDOFPERIOD otherwise unpredictable bahavior may occur. 132 This parameter must be a number between Min_Data = 0x00 and Max_Data = 0xFF. */ 133 #endif 134 } LPTIM_InitTypeDef; 135 136 /** 137 * @brief HAL LPTIM State structure definition 138 */ 139 typedef enum 140 { 141 HAL_LPTIM_STATE_RESET = 0x00U, /*!< Peripheral not yet initialized or disabled */ 142 HAL_LPTIM_STATE_READY = 0x01U, /*!< Peripheral Initialized and ready for use */ 143 HAL_LPTIM_STATE_BUSY = 0x02U, /*!< An internal process is ongoing */ 144 HAL_LPTIM_STATE_TIMEOUT = 0x03U, /*!< Timeout state */ 145 HAL_LPTIM_STATE_ERROR = 0x04U /*!< Internal Process is ongoing */ 146 } HAL_LPTIM_StateTypeDef; 147 148 /** 149 * @brief LPTIM handle Structure definition 150 */ 151 #if (USE_HAL_LPTIM_REGISTER_CALLBACKS == 1) 152 typedef struct __LPTIM_HandleTypeDef 153 #else 154 typedef struct 155 #endif /* USE_HAL_LPTIM_REGISTER_CALLBACKS */ 156 { 157 LPTIM_TypeDef *Instance; /*!< Register base address */ 158 159 LPTIM_InitTypeDef Init; /*!< LPTIM required parameters */ 160 161 HAL_StatusTypeDef Status; /*!< LPTIM peripheral status */ 162 163 HAL_LockTypeDef Lock; /*!< LPTIM locking object */ 164 165 __IO HAL_LPTIM_StateTypeDef State; /*!< LPTIM peripheral state */ 166 167 #if (USE_HAL_LPTIM_REGISTER_CALLBACKS == 1) 168 void (* MspInitCallback)(struct __LPTIM_HandleTypeDef *hlptim); /*!< LPTIM Base Msp Init Callback */ 169 void (* MspDeInitCallback)(struct __LPTIM_HandleTypeDef *hlptim); /*!< LPTIM Base Msp DeInit Callback */ 170 void (* CompareMatchCallback)(struct __LPTIM_HandleTypeDef *hlptim); /*!< Compare match Callback */ 171 void (* AutoReloadMatchCallback)(struct __LPTIM_HandleTypeDef *hlptim); /*!< Auto-reload match Callback */ 172 void (* TriggerCallback)(struct __LPTIM_HandleTypeDef *hlptim); /*!< External trigger event detection Callback */ 173 void (* CompareWriteCallback)(struct __LPTIM_HandleTypeDef *hlptim); /*!< Compare register write complete Callback */ 174 void (* AutoReloadWriteCallback)(struct __LPTIM_HandleTypeDef *hlptim); /*!< Auto-reload register write complete Callback */ 175 void (* DirectionUpCallback)(struct __LPTIM_HandleTypeDef *hlptim); /*!< Up-counting direction change Callback */ 176 void (* DirectionDownCallback)(struct __LPTIM_HandleTypeDef *hlptim); /*!< Down-counting direction change Callback */ 177 #if defined(LPTIM_RCR_REP) 178 void (* UpdateEventCallback)(struct __LPTIM_HandleTypeDef *hlptim); /*!< Update event detection Callback */ 179 void (* RepCounterWriteCallback)(struct __LPTIM_HandleTypeDef *hlptim); /*!< Repetition counter register write complete Callback */ 180 #endif 181 #endif /* USE_HAL_LPTIM_REGISTER_CALLBACKS */ 182 } LPTIM_HandleTypeDef; 183 184 #if (USE_HAL_LPTIM_REGISTER_CALLBACKS == 1) 185 /** 186 * @brief HAL LPTIM Callback ID enumeration definition 187 */ 188 typedef enum 189 { 190 HAL_LPTIM_MSPINIT_CB_ID = 0x00U, /*!< LPTIM Base Msp Init Callback ID */ 191 HAL_LPTIM_MSPDEINIT_CB_ID = 0x01U, /*!< LPTIM Base Msp DeInit Callback ID */ 192 HAL_LPTIM_COMPARE_MATCH_CB_ID = 0x02U, /*!< Compare match Callback ID */ 193 HAL_LPTIM_AUTORELOAD_MATCH_CB_ID = 0x03U, /*!< Auto-reload match Callback ID */ 194 HAL_LPTIM_TRIGGER_CB_ID = 0x04U, /*!< External trigger event detection Callback ID */ 195 HAL_LPTIM_COMPARE_WRITE_CB_ID = 0x05U, /*!< Compare register write complete Callback ID */ 196 HAL_LPTIM_AUTORELOAD_WRITE_CB_ID = 0x06U, /*!< Auto-reload register write complete Callback ID */ 197 HAL_LPTIM_DIRECTION_UP_CB_ID = 0x07U, /*!< Up-counting direction change Callback ID */ 198 HAL_LPTIM_DIRECTION_DOWN_CB_ID = 0x08U, /*!< Down-counting direction change Callback ID */ 199 #if defined(LPTIM_RCR_REP) 200 HAL_LPTIM_UPDATE_EVENT_CB_ID = 0x09U, /*!< Update event detection Callback ID */ 201 HAL_LPTIM_REP_COUNTER_WRITE_CB_ID = 0x0AU, /*!< Repetition counter register write complete Callback ID */ 202 #endif 203 } HAL_LPTIM_CallbackIDTypeDef; 204 205 /** 206 * @brief HAL TIM Callback pointer definition 207 */ 208 typedef void (*pLPTIM_CallbackTypeDef)(LPTIM_HandleTypeDef *hlptim); /*!< pointer to the LPTIM callback function */ 209 210 #endif /* USE_HAL_LPTIM_REGISTER_CALLBACKS */ 211 /** 212 * @} 213 */ 214 215 /* Exported constants --------------------------------------------------------*/ 216 /** @defgroup LPTIM_Exported_Constants LPTIM Exported Constants 217 * @{ 218 */ 219 220 /** @defgroup LPTIM_Clock_Source LPTIM Clock Source 221 * @{ 222 */ 223 #define LPTIM_CLOCKSOURCE_APBCLOCK_LPOSC 0x00000000U 224 #define LPTIM_CLOCKSOURCE_ULPTIM LPTIM_CFGR_CKSEL 225 /** 226 * @} 227 */ 228 229 /** @defgroup LPTIM_Clock_Prescaler LPTIM Clock Prescaler 230 * @{ 231 */ 232 #define LPTIM_PRESCALER_DIV1 0x00000000U 233 #define LPTIM_PRESCALER_DIV2 LPTIM_CFGR_PRESC_0 234 #define LPTIM_PRESCALER_DIV4 LPTIM_CFGR_PRESC_1 235 #define LPTIM_PRESCALER_DIV8 (LPTIM_CFGR_PRESC_0 | LPTIM_CFGR_PRESC_1) 236 #define LPTIM_PRESCALER_DIV16 LPTIM_CFGR_PRESC_2 237 #define LPTIM_PRESCALER_DIV32 (LPTIM_CFGR_PRESC_0 | LPTIM_CFGR_PRESC_2) 238 #define LPTIM_PRESCALER_DIV64 (LPTIM_CFGR_PRESC_1 | LPTIM_CFGR_PRESC_2) 239 #define LPTIM_PRESCALER_DIV128 LPTIM_CFGR_PRESC 240 /** 241 * @} 242 */ 243 244 /** @defgroup LPTIM_Output_Polarity LPTIM Output Polarity 245 * @{ 246 */ 247 248 #define LPTIM_OUTPUTPOLARITY_HIGH 0x00000000U 249 #define LPTIM_OUTPUTPOLARITY_LOW LPTIM_CFGR_WAVPOL 250 /** 251 * @} 252 */ 253 254 /** @defgroup LPTIM_Clock_Sample_Time LPTIM Clock Sample Time 255 * @{ 256 */ 257 #define LPTIM_CLOCKSAMPLETIME_DIRECTTRANSITION 0x00000000U 258 #define LPTIM_CLOCKSAMPLETIME_2TRANSITIONS LPTIM_CFGR_CKFLT_0 259 #define LPTIM_CLOCKSAMPLETIME_4TRANSITIONS LPTIM_CFGR_CKFLT_1 260 #define LPTIM_CLOCKSAMPLETIME_8TRANSITIONS LPTIM_CFGR_CKFLT 261 /** 262 * @} 263 */ 264 265 /** @defgroup LPTIM_Clock_Polarity LPTIM Clock Polarity 266 * @{ 267 */ 268 #define LPTIM_CLOCKPOLARITY_RISING 0x00000000U 269 #define LPTIM_CLOCKPOLARITY_FALLING LPTIM_CFGR_CKPOL_0 270 #define LPTIM_CLOCKPOLARITY_RISING_FALLING LPTIM_CFGR_CKPOL_1 271 /** 272 * @} 273 */ 274 275 /** @defgroup LPTIM_Trigger_Source LPTIM Trigger Source 276 * @{ 277 */ 278 #define LPTIM_TRIGSOURCE_SOFTWARE 0x0000FFFFU 279 #define LPTIM_TRIGSOURCE_0 0x00000000U 280 #define LPTIM_TRIGSOURCE_1 LPTIM_CFGR_TRIGSEL_0 281 #define LPTIM_TRIGSOURCE_2 LPTIM_CFGR_TRIGSEL_1 282 #define LPTIM_TRIGSOURCE_3 (LPTIM_CFGR_TRIGSEL_0 | LPTIM_CFGR_TRIGSEL_1) 283 #define LPTIM_TRIGSOURCE_4 LPTIM_CFGR_TRIGSEL_2 284 #define LPTIM_TRIGSOURCE_5 (LPTIM_CFGR_TRIGSEL_0 | LPTIM_CFGR_TRIGSEL_2) 285 #define LPTIM_TRIGSOURCE_6 (LPTIM_CFGR_TRIGSEL_1 | LPTIM_CFGR_TRIGSEL_2) 286 #define LPTIM_TRIGSOURCE_7 LPTIM_CFGR_TRIGSEL 287 /** 288 * @} 289 */ 290 291 /** @defgroup LPTIM_External_Trigger_Polarity LPTIM External Trigger Polarity 292 * @{ 293 */ 294 #define LPTIM_ACTIVEEDGE_RISING LPTIM_CFGR_TRIGEN_0 295 #define LPTIM_ACTIVEEDGE_FALLING LPTIM_CFGR_TRIGEN_1 296 #define LPTIM_ACTIVEEDGE_RISING_FALLING LPTIM_CFGR_TRIGEN 297 /** 298 * @} 299 */ 300 301 /** @defgroup LPTIM_Trigger_Sample_Time LPTIM Trigger Sample Time 302 * @{ 303 */ 304 #define LPTIM_TRIGSAMPLETIME_DIRECTTRANSITION 0x00000000U 305 #define LPTIM_TRIGSAMPLETIME_2TRANSITIONS LPTIM_CFGR_TRGFLT_0 306 #define LPTIM_TRIGSAMPLETIME_4TRANSITIONS LPTIM_CFGR_TRGFLT_1 307 #define LPTIM_TRIGSAMPLETIME_8TRANSITIONS LPTIM_CFGR_TRGFLT 308 /** 309 * @} 310 */ 311 312 /** @defgroup LPTIM_Updating_Mode LPTIM Updating Mode 313 * @{ 314 */ 315 316 #define LPTIM_UPDATE_IMMEDIATE 0x00000000U 317 #define LPTIM_UPDATE_ENDOFPERIOD LPTIM_CFGR_PRELOAD 318 /** 319 * @} 320 */ 321 322 /** @defgroup LPTIM_Counter_Source LPTIM Counter Source 323 * @{ 324 */ 325 326 #define LPTIM_COUNTERSOURCE_INTERNAL 0x00000000U 327 #define LPTIM_COUNTERSOURCE_EXTERNAL LPTIM_CFGR_COUNTMODE 328 /** 329 * @} 330 */ 331 332 /** @defgroup LPTIM_Input1_Source LPTIM Input1 Source 333 * @{ 334 */ 335 336 #define LPTIM_INPUT1SOURCE_GPIO 0x00000000U /*!< For LPTIM1 and LPTIM2 */ 337 #define LPTIM_INPUT1SOURCE_COMP1 LPTIM_OR_OR_0 /*!< For LPTIM1 and LPTIM2 */ 338 #define LPTIM_INPUT1SOURCE_COMP2 LPTIM_OR_OR_1 /*!< For LPTIM2 */ 339 #define LPTIM_INPUT1SOURCE_COMP1_COMP2 LPTIM_OR_OR /*!< For LPTIM2 */ 340 /** 341 * @} 342 */ 343 344 /** @defgroup LPTIM_Input2_Source LPTIM Input2 Source 345 * @{ 346 */ 347 348 #define LPTIM_INPUT2SOURCE_GPIO 0x00000000U /*!< For LPTIM1 */ 349 #define LPTIM_INPUT2SOURCE_COMP2 LPTIM_OR_OR_1 /*!< For LPTIM1 */ 350 /** 351 * @} 352 */ 353 354 /** @defgroup LPTIM_Flag_Definition LPTIM Flags Definition 355 * @{ 356 */ 357 358 #if defined(LPTIM_RCR_REP) 359 #define LPTIM_FLAG_REPOK LPTIM_ISR_REPOK 360 #define LPTIM_FLAG_UPDATE LPTIM_ISR_UE 361 #endif 362 #define LPTIM_FLAG_DOWN LPTIM_ISR_DOWN 363 #define LPTIM_FLAG_UP LPTIM_ISR_UP 364 #define LPTIM_FLAG_ARROK LPTIM_ISR_ARROK 365 #define LPTIM_FLAG_CMPOK LPTIM_ISR_CMPOK 366 #define LPTIM_FLAG_EXTTRIG LPTIM_ISR_EXTTRIG 367 #define LPTIM_FLAG_ARRM LPTIM_ISR_ARRM 368 #define LPTIM_FLAG_CMPM LPTIM_ISR_CMPM 369 /** 370 * @} 371 */ 372 373 /** @defgroup LPTIM_Interrupts_Definition LPTIM Interrupts Definition 374 * @{ 375 */ 376 #if defined(LPTIM_RCR_REP) 377 #define LPTIM_IT_REPOK LPTIM_IER_REPOKIE 378 #define LPTIM_IT_UPDATE LPTIM_IER_UEIE 379 #endif 380 #define LPTIM_IT_DOWN LPTIM_IER_DOWNIE 381 #define LPTIM_IT_UP LPTIM_IER_UPIE 382 #define LPTIM_IT_ARROK LPTIM_IER_ARROKIE 383 #define LPTIM_IT_CMPOK LPTIM_IER_CMPOKIE 384 #define LPTIM_IT_EXTTRIG LPTIM_IER_EXTTRIGIE 385 #define LPTIM_IT_ARRM LPTIM_IER_ARRMIE 386 #define LPTIM_IT_CMPM LPTIM_IER_CMPMIE 387 /** 388 * @} 389 */ 390 391 /** 392 * @} 393 */ 394 395 /* Exported macros -----------------------------------------------------------*/ 396 /** @defgroup LPTIM_Exported_Macros LPTIM Exported Macros 397 * @{ 398 */ 399 400 /** @brief Reset LPTIM handle state. 401 * @param __HANDLE__ LPTIM handle 402 * @retval None 403 */ 404 #if (USE_HAL_LPTIM_REGISTER_CALLBACKS == 1) 405 #define __HAL_LPTIM_RESET_HANDLE_STATE(__HANDLE__) do { \ 406 (__HANDLE__)->State = HAL_LPTIM_STATE_RESET; \ 407 (__HANDLE__)->MspInitCallback = NULL; \ 408 (__HANDLE__)->MspDeInitCallback = NULL; \ 409 } while(0) 410 #else 411 #define __HAL_LPTIM_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_LPTIM_STATE_RESET) 412 #endif /* USE_HAL_LPTIM_REGISTER_CALLBACKS */ 413 414 /** 415 * @brief Enable the LPTIM peripheral. 416 * @param __HANDLE__ LPTIM handle 417 * @retval None 418 */ 419 #define __HAL_LPTIM_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= (LPTIM_CR_ENABLE)) 420 421 /** 422 * @brief Disable the LPTIM peripheral. 423 * @param __HANDLE__ LPTIM handle 424 * @note The following sequence is required to solve LPTIM disable HW limitation. 425 * Please check Errata Sheet ES0335 for more details under "MCU may remain 426 * stuck in LPTIM interrupt when entering Stop mode" section. 427 * @note Please call @ref HAL_LPTIM_GetState() after a call to __HAL_LPTIM_DISABLE to 428 * check for TIMEOUT. 429 * @retval None 430 */ 431 #define __HAL_LPTIM_DISABLE(__HANDLE__) LPTIM_Disable(__HANDLE__) 432 433 /** 434 * @brief Start the LPTIM peripheral in Continuous mode. 435 * @param __HANDLE__ LPTIM handle 436 * @retval None 437 */ 438 #define __HAL_LPTIM_START_CONTINUOUS(__HANDLE__) ((__HANDLE__)->Instance->CR |= LPTIM_CR_CNTSTRT) 439 /** 440 * @brief Start the LPTIM peripheral in single mode. 441 * @param __HANDLE__ LPTIM handle 442 * @retval None 443 */ 444 #define __HAL_LPTIM_START_SINGLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= LPTIM_CR_SNGSTRT) 445 446 /** 447 * @brief Write the passed parameter in the Autoreload register. 448 * @param __HANDLE__ LPTIM handle 449 * @param __VALUE__ Autoreload value 450 * @retval None 451 * @note The ARR register can only be modified when the LPTIM instance is enabled. 452 */ 453 #define __HAL_LPTIM_AUTORELOAD_SET(__HANDLE__ , __VALUE__) ((__HANDLE__)->Instance->ARR = (__VALUE__)) 454 455 /** 456 * @brief Write the passed parameter in the Compare register. 457 * @param __HANDLE__ LPTIM handle 458 * @param __VALUE__ Compare value 459 * @retval None 460 * @note The CMP register can only be modified when the LPTIM instance is enabled. 461 */ 462 #define __HAL_LPTIM_COMPARE_SET(__HANDLE__ , __VALUE__) ((__HANDLE__)->Instance->CMP = (__VALUE__)) 463 464 #if defined(LPTIM_RCR_REP) 465 /** 466 * @brief Write the passed parameter in the Repetition register. 467 * @param __HANDLE__ LPTIM handle 468 * @param __VALUE__ Repetition value 469 * @retval None 470 */ 471 #define __HAL_LPTIM_REPETITIONCOUNTER_SET(__HANDLE__ , __VALUE__) ((__HANDLE__)->Instance->RCR = (__VALUE__)) 472 473 /** 474 * @brief Return the current Repetition value. 475 * @param __HANDLE__ LPTIM handle 476 * @retval Repetition register value 477 * @note The RCR register can only be modified when the LPTIM instance is enabled. 478 */ 479 #define __HAL_LPTIM_REPETITIONCOUNTER_GET(__HANDLE__) ((__HANDLE__)->Instance->RCR) 480 #endif 481 482 /** 483 * @brief Check whether the specified LPTIM flag is set or not. 484 * @param __HANDLE__ LPTIM handle 485 * @param __FLAG__ LPTIM flag to check 486 * This parameter can be a value of: 487 * @arg LPTIM_FLAG_REPOK : Repetition register update OK Flag (when available). 488 * @arg LPTIM_FLAG_UPDATE : Update event Flag (when available). 489 * @arg LPTIM_FLAG_DOWN : Counter direction change up Flag. 490 * @arg LPTIM_FLAG_UP : Counter direction change down to up Flag. 491 * @arg LPTIM_FLAG_ARROK : Autoreload register update OK Flag. 492 * @arg LPTIM_FLAG_CMPOK : Compare register update OK Flag. 493 * @arg LPTIM_FLAG_EXTTRIG : External trigger edge event Flag. 494 * @arg LPTIM_FLAG_ARRM : Autoreload match Flag. 495 * @arg LPTIM_FLAG_CMPM : Compare match Flag. 496 * @retval The state of the specified flag (SET or RESET). 497 */ 498 #define __HAL_LPTIM_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->ISR &(__FLAG__)) == (__FLAG__)) 499 500 /** 501 * @brief Clear the specified LPTIM flag. 502 * @param __HANDLE__ LPTIM handle. 503 * @param __FLAG__ LPTIM flag to clear. 504 * This parameter can be a value of: 505 * @arg LPTIM_FLAG_REPOK : Repetition register update OK Flag (when available). 506 * @arg LPTIM_FLAG_UPDATE : Update event Flag (when available). 507 * @arg LPTIM_FLAG_DOWN : Counter direction change up Flag. 508 * @arg LPTIM_FLAG_UP : Counter direction change down to up Flag. 509 * @arg LPTIM_FLAG_ARROK : Autoreload register update OK Flag. 510 * @arg LPTIM_FLAG_CMPOK : Compare register update OK Flag. 511 * @arg LPTIM_FLAG_EXTTRIG : External trigger edge event Flag. 512 * @arg LPTIM_FLAG_ARRM : Autoreload match Flag. 513 * @arg LPTIM_FLAG_CMPM : Compare match Flag. 514 * @retval None. 515 */ 516 #define __HAL_LPTIM_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ICR = (__FLAG__)) 517 518 /** 519 * @brief Enable the specified LPTIM interrupt. 520 * @param __HANDLE__ LPTIM handle. 521 * @param __INTERRUPT__ LPTIM interrupt to set. 522 * This parameter can be a value of: 523 * @arg LPTIM_IT_REPOK : Repetition register update OK Interrupt (when available). 524 * @arg LPTIM_IT_UPDATE : Update event register Interrupt (when available). 525 * @arg LPTIM_IT_DOWN : Counter direction change up Interrupt. 526 * @arg LPTIM_IT_UP : Counter direction change down to up Interrupt. 527 * @arg LPTIM_IT_ARROK : Autoreload register update OK Interrupt. 528 * @arg LPTIM_IT_CMPOK : Compare register update OK Interrupt. 529 * @arg LPTIM_IT_EXTTRIG : External trigger edge event Interrupt. 530 * @arg LPTIM_IT_ARRM : Autoreload match Interrupt. 531 * @arg LPTIM_IT_CMPM : Compare match Interrupt. 532 * @retval None. 533 * @note The LPTIM interrupts can only be enabled when the LPTIM instance is disabled. 534 */ 535 #define __HAL_LPTIM_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->IER |= (__INTERRUPT__)) 536 537 /** 538 * @brief Disable the specified LPTIM interrupt. 539 * @param __HANDLE__ LPTIM handle. 540 * @param __INTERRUPT__ LPTIM interrupt to set. 541 * This parameter can be a value of: 542 * @arg LPTIM_IT_REPOK : Repetition register update OK Interrupt (when available). 543 * @arg LPTIM_IT_UPDATE : Update event register Interrupt (when available). 544 * @arg LPTIM_IT_DOWN : Counter direction change up Interrupt. 545 * @arg LPTIM_IT_UP : Counter direction change down to up Interrupt. 546 * @arg LPTIM_IT_ARROK : Autoreload register update OK Interrupt. 547 * @arg LPTIM_IT_CMPOK : Compare register update OK Interrupt. 548 * @arg LPTIM_IT_EXTTRIG : External trigger edge event Interrupt. 549 * @arg LPTIM_IT_ARRM : Autoreload match Interrupt. 550 * @arg LPTIM_IT_CMPM : Compare match Interrupt. 551 * @retval None. 552 * @note The LPTIM interrupts can only be disabled when the LPTIM instance is disabled. 553 */ 554 #define __HAL_LPTIM_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->IER &= (~(__INTERRUPT__))) 555 556 /** 557 * @brief Check whether the specified LPTIM interrupt source is enabled or not. 558 * @param __HANDLE__ LPTIM handle. 559 * @param __INTERRUPT__ LPTIM interrupt to check. 560 * This parameter can be a value of: 561 * @arg LPTIM_IT_REPOK : Repetition register update OK Interrupt (when available). 562 * @arg LPTIM_IT_UPDATE : Update event register Interrupt (when available). 563 * @arg LPTIM_IT_DOWN : Counter direction change up Interrupt. 564 * @arg LPTIM_IT_UP : Counter direction change down to up Interrupt. 565 * @arg LPTIM_IT_ARROK : Autoreload register update OK Interrupt. 566 * @arg LPTIM_IT_CMPOK : Compare register update OK Interrupt. 567 * @arg LPTIM_IT_EXTTRIG : External trigger edge event Interrupt. 568 * @arg LPTIM_IT_ARRM : Autoreload match Interrupt. 569 * @arg LPTIM_IT_CMPM : Compare match Interrupt. 570 * @retval Interrupt status. 571 */ 572 573 #define __HAL_LPTIM_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((((__HANDLE__)->Instance->IER & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET) 574 575 /** 576 * @brief Enable the LPTIM1 EXTI line in interrupt mode. 577 * @retval None 578 */ 579 #define __HAL_LPTIM_LPTIM1_EXTI_ENABLE_IT() (EXTI->IMR2 |= LPTIM_EXTI_LINE_LPTIM1) 580 581 /** 582 * @brief Disable the LPTIM1 EXTI line in interrupt mode. 583 * @retval None 584 */ 585 #define __HAL_LPTIM_LPTIM1_EXTI_DISABLE_IT() (EXTI->IMR2 &= ~(LPTIM_EXTI_LINE_LPTIM1)) 586 587 588 /** 589 * @brief Enable the LPTIM1 EXTI line in event mode. 590 * @retval None 591 */ 592 #define __HAL_LPTIM_LPTIM1_EXTI_ENABLE_EVENT() (EXTI->EMR2 |= LPTIM_EXTI_LINE_LPTIM1) 593 594 /** 595 * @brief Disable the LPTIM1 EXTI line in event mode. 596 * @retval None 597 */ 598 #define __HAL_LPTIM_LPTIM1_EXTI_DISABLE_EVENT() (EXTI->EMR2 &= ~(LPTIM_EXTI_LINE_LPTIM1)) 599 600 /** 601 * @brief Enable the LPTIM2 EXTI line in interrupt mode. 602 * @retval None 603 */ 604 #define __HAL_LPTIM_LPTIM2_EXTI_ENABLE_IT() (EXTI->IMR2 |= LPTIM_EXTI_LINE_LPTIM2) 605 606 /** 607 * @brief Disable the LPTIM2 EXTI line in interrupt mode. 608 * @retval None 609 */ 610 #define __HAL_LPTIM_LPTIM2_EXTI_DISABLE_IT() (EXTI->IMR2 &= ~(LPTIM_EXTI_LINE_LPTIM2)) 611 612 613 /** 614 * @brief Enable the LPTIM2 EXTI line in event mode. 615 * @retval None 616 */ 617 #define __HAL_LPTIM_LPTIM2_EXTI_ENABLE_EVENT() (EXTI->EMR2 |= LPTIM_EXTI_LINE_LPTIM2) 618 619 /** 620 * @brief Disable the LPTIM2 EXTI line in event mode. 621 * @retval None 622 */ 623 #define __HAL_LPTIM_LPTIM2_EXTI_DISABLE_EVENT() (EXTI->EMR2 &= ~(LPTIM_EXTI_LINE_LPTIM2)) 624 625 /** 626 * @} 627 */ 628 629 /* Exported functions --------------------------------------------------------*/ 630 /** @defgroup LPTIM_Exported_Functions LPTIM Exported Functions 631 * @{ 632 */ 633 634 /** @addtogroup LPTIM_Exported_Functions_Group1 635 * @brief Initialization and Configuration functions. 636 * @{ 637 */ 638 /* Initialization/de-initialization functions ********************************/ 639 HAL_StatusTypeDef HAL_LPTIM_Init(LPTIM_HandleTypeDef *hlptim); 640 HAL_StatusTypeDef HAL_LPTIM_DeInit(LPTIM_HandleTypeDef *hlptim); 641 642 /* MSP functions *************************************************************/ 643 void HAL_LPTIM_MspInit(LPTIM_HandleTypeDef *hlptim); 644 void HAL_LPTIM_MspDeInit(LPTIM_HandleTypeDef *hlptim); 645 /** 646 * @} 647 */ 648 649 /** @addtogroup LPTIM_Exported_Functions_Group2 650 * @brief Start-Stop operation functions. 651 * @{ 652 */ 653 /* Start/Stop operation functions *********************************************/ 654 /* ################################# PWM Mode ################################*/ 655 /* Blocking mode: Polling */ 656 HAL_StatusTypeDef HAL_LPTIM_PWM_Start(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Pulse); 657 HAL_StatusTypeDef HAL_LPTIM_PWM_Stop(LPTIM_HandleTypeDef *hlptim); 658 /* Non-Blocking mode: Interrupt */ 659 HAL_StatusTypeDef HAL_LPTIM_PWM_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Pulse); 660 HAL_StatusTypeDef HAL_LPTIM_PWM_Stop_IT(LPTIM_HandleTypeDef *hlptim); 661 662 /* ############################# One Pulse Mode ##############################*/ 663 /* Blocking mode: Polling */ 664 HAL_StatusTypeDef HAL_LPTIM_OnePulse_Start(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Pulse); 665 HAL_StatusTypeDef HAL_LPTIM_OnePulse_Stop(LPTIM_HandleTypeDef *hlptim); 666 /* Non-Blocking mode: Interrupt */ 667 HAL_StatusTypeDef HAL_LPTIM_OnePulse_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Pulse); 668 HAL_StatusTypeDef HAL_LPTIM_OnePulse_Stop_IT(LPTIM_HandleTypeDef *hlptim); 669 670 /* ############################## Set once Mode ##############################*/ 671 /* Blocking mode: Polling */ 672 HAL_StatusTypeDef HAL_LPTIM_SetOnce_Start(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Pulse); 673 HAL_StatusTypeDef HAL_LPTIM_SetOnce_Stop(LPTIM_HandleTypeDef *hlptim); 674 /* Non-Blocking mode: Interrupt */ 675 HAL_StatusTypeDef HAL_LPTIM_SetOnce_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Pulse); 676 HAL_StatusTypeDef HAL_LPTIM_SetOnce_Stop_IT(LPTIM_HandleTypeDef *hlptim); 677 678 /* ############################### Encoder Mode ##############################*/ 679 /* Blocking mode: Polling */ 680 HAL_StatusTypeDef HAL_LPTIM_Encoder_Start(LPTIM_HandleTypeDef *hlptim, uint32_t Period); 681 HAL_StatusTypeDef HAL_LPTIM_Encoder_Stop(LPTIM_HandleTypeDef *hlptim); 682 /* Non-Blocking mode: Interrupt */ 683 HAL_StatusTypeDef HAL_LPTIM_Encoder_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period); 684 HAL_StatusTypeDef HAL_LPTIM_Encoder_Stop_IT(LPTIM_HandleTypeDef *hlptim); 685 686 /* ############################# Time out Mode ##############################*/ 687 /* Blocking mode: Polling */ 688 HAL_StatusTypeDef HAL_LPTIM_TimeOut_Start(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Timeout); 689 HAL_StatusTypeDef HAL_LPTIM_TimeOut_Stop(LPTIM_HandleTypeDef *hlptim); 690 /* Non-Blocking mode: Interrupt */ 691 HAL_StatusTypeDef HAL_LPTIM_TimeOut_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Timeout); 692 HAL_StatusTypeDef HAL_LPTIM_TimeOut_Stop_IT(LPTIM_HandleTypeDef *hlptim); 693 694 /* ############################## Counter Mode ###############################*/ 695 /* Blocking mode: Polling */ 696 HAL_StatusTypeDef HAL_LPTIM_Counter_Start(LPTIM_HandleTypeDef *hlptim, uint32_t Period); 697 HAL_StatusTypeDef HAL_LPTIM_Counter_Stop(LPTIM_HandleTypeDef *hlptim); 698 /* Non-Blocking mode: Interrupt */ 699 HAL_StatusTypeDef HAL_LPTIM_Counter_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period); 700 HAL_StatusTypeDef HAL_LPTIM_Counter_Stop_IT(LPTIM_HandleTypeDef *hlptim); 701 /** 702 * @} 703 */ 704 705 /** @addtogroup LPTIM_Exported_Functions_Group3 706 * @brief Read operation functions. 707 * @{ 708 */ 709 /* Reading operation functions ************************************************/ 710 uint32_t HAL_LPTIM_ReadCounter(LPTIM_HandleTypeDef *hlptim); 711 uint32_t HAL_LPTIM_ReadAutoReload(LPTIM_HandleTypeDef *hlptim); 712 uint32_t HAL_LPTIM_ReadCompare(LPTIM_HandleTypeDef *hlptim); 713 /** 714 * @} 715 */ 716 717 /** @addtogroup LPTIM_Exported_Functions_Group4 718 * @brief LPTIM IRQ handler and callback functions. 719 * @{ 720 */ 721 /* LPTIM IRQ functions *******************************************************/ 722 void HAL_LPTIM_IRQHandler(LPTIM_HandleTypeDef *hlptim); 723 724 /* CallBack functions ********************************************************/ 725 void HAL_LPTIM_CompareMatchCallback(LPTIM_HandleTypeDef *hlptim); 726 void HAL_LPTIM_AutoReloadMatchCallback(LPTIM_HandleTypeDef *hlptim); 727 void HAL_LPTIM_TriggerCallback(LPTIM_HandleTypeDef *hlptim); 728 void HAL_LPTIM_CompareWriteCallback(LPTIM_HandleTypeDef *hlptim); 729 void HAL_LPTIM_AutoReloadWriteCallback(LPTIM_HandleTypeDef *hlptim); 730 void HAL_LPTIM_DirectionUpCallback(LPTIM_HandleTypeDef *hlptim); 731 void HAL_LPTIM_DirectionDownCallback(LPTIM_HandleTypeDef *hlptim); 732 #if defined(LPTIM_RCR_REP) 733 void HAL_LPTIM_UpdateEventCallback(LPTIM_HandleTypeDef *hlptim); 734 void HAL_LPTIM_RepCounterWriteCallback(LPTIM_HandleTypeDef *hlptim); 735 #endif 736 737 /* Callbacks Register/UnRegister functions ***********************************/ 738 #if (USE_HAL_LPTIM_REGISTER_CALLBACKS == 1) 739 HAL_StatusTypeDef HAL_LPTIM_RegisterCallback(LPTIM_HandleTypeDef *lphtim, HAL_LPTIM_CallbackIDTypeDef CallbackID, pLPTIM_CallbackTypeDef pCallback); 740 HAL_StatusTypeDef HAL_LPTIM_UnRegisterCallback(LPTIM_HandleTypeDef *lphtim, HAL_LPTIM_CallbackIDTypeDef CallbackID); 741 #endif /* USE_HAL_LPTIM_REGISTER_CALLBACKS */ 742 /** 743 * @} 744 */ 745 746 /** @addtogroup LPTIM_Group5 747 * @brief Peripheral State functions. 748 * @{ 749 */ 750 /* Peripheral State functions ************************************************/ 751 HAL_LPTIM_StateTypeDef HAL_LPTIM_GetState(LPTIM_HandleTypeDef *hlptim); 752 /** 753 * @} 754 */ 755 756 /** 757 * @} 758 */ 759 760 /* Private types -------------------------------------------------------------*/ 761 /** @defgroup LPTIM_Private_Types LPTIM Private Types 762 * @{ 763 */ 764 765 /** 766 * @} 767 */ 768 769 /* Private variables ---------------------------------------------------------*/ 770 /** @defgroup LPTIM_Private_Variables LPTIM Private Variables 771 * @{ 772 */ 773 774 /** 775 * @} 776 */ 777 778 /* Private constants ---------------------------------------------------------*/ 779 /** @defgroup LPTIM_Private_Constants LPTIM Private Constants 780 * @{ 781 */ 782 783 /** 784 * @} 785 */ 786 787 /* Private macros ------------------------------------------------------------*/ 788 /** @defgroup LPTIM_Private_Macros LPTIM Private Macros 789 * @{ 790 */ 791 792 #define IS_LPTIM_CLOCK_SOURCE(__SOURCE__) (((__SOURCE__) == LPTIM_CLOCKSOURCE_ULPTIM) || \ 793 ((__SOURCE__) == LPTIM_CLOCKSOURCE_APBCLOCK_LPOSC)) 794 795 796 #define IS_LPTIM_CLOCK_PRESCALER(__PRESCALER__) (((__PRESCALER__) == LPTIM_PRESCALER_DIV1 ) || \ 797 ((__PRESCALER__) == LPTIM_PRESCALER_DIV2 ) || \ 798 ((__PRESCALER__) == LPTIM_PRESCALER_DIV4 ) || \ 799 ((__PRESCALER__) == LPTIM_PRESCALER_DIV8 ) || \ 800 ((__PRESCALER__) == LPTIM_PRESCALER_DIV16 ) || \ 801 ((__PRESCALER__) == LPTIM_PRESCALER_DIV32 ) || \ 802 ((__PRESCALER__) == LPTIM_PRESCALER_DIV64 ) || \ 803 ((__PRESCALER__) == LPTIM_PRESCALER_DIV128)) 804 805 #define IS_LPTIM_CLOCK_PRESCALERDIV1(__PRESCALER__) ((__PRESCALER__) == LPTIM_PRESCALER_DIV1) 806 807 #define IS_LPTIM_OUTPUT_POLARITY(__POLARITY__) (((__POLARITY__) == LPTIM_OUTPUTPOLARITY_LOW ) || \ 808 ((__POLARITY__) == LPTIM_OUTPUTPOLARITY_HIGH)) 809 810 #define IS_LPTIM_CLOCK_SAMPLE_TIME(__SAMPLETIME__) (((__SAMPLETIME__) == LPTIM_CLOCKSAMPLETIME_DIRECTTRANSITION) || \ 811 ((__SAMPLETIME__) == LPTIM_CLOCKSAMPLETIME_2TRANSITIONS) || \ 812 ((__SAMPLETIME__) == LPTIM_CLOCKSAMPLETIME_4TRANSITIONS) || \ 813 ((__SAMPLETIME__) == LPTIM_CLOCKSAMPLETIME_8TRANSITIONS)) 814 815 #define IS_LPTIM_CLOCK_POLARITY(__POLARITY__) (((__POLARITY__) == LPTIM_CLOCKPOLARITY_RISING) || \ 816 ((__POLARITY__) == LPTIM_CLOCKPOLARITY_FALLING) || \ 817 ((__POLARITY__) == LPTIM_CLOCKPOLARITY_RISING_FALLING)) 818 819 #define IS_LPTIM_TRG_SOURCE(__TRIG__) (((__TRIG__) == LPTIM_TRIGSOURCE_SOFTWARE) || \ 820 ((__TRIG__) == LPTIM_TRIGSOURCE_0) || \ 821 ((__TRIG__) == LPTIM_TRIGSOURCE_1) || \ 822 ((__TRIG__) == LPTIM_TRIGSOURCE_2) || \ 823 ((__TRIG__) == LPTIM_TRIGSOURCE_3) || \ 824 ((__TRIG__) == LPTIM_TRIGSOURCE_4) || \ 825 ((__TRIG__) == LPTIM_TRIGSOURCE_5) || \ 826 ((__TRIG__) == LPTIM_TRIGSOURCE_6) || \ 827 ((__TRIG__) == LPTIM_TRIGSOURCE_7)) 828 829 #define IS_LPTIM_EXT_TRG_POLARITY(__POLARITY__) (((__POLARITY__) == LPTIM_ACTIVEEDGE_RISING ) || \ 830 ((__POLARITY__) == LPTIM_ACTIVEEDGE_FALLING ) || \ 831 ((__POLARITY__) == LPTIM_ACTIVEEDGE_RISING_FALLING )) 832 833 #define IS_LPTIM_TRIG_SAMPLE_TIME(__SAMPLETIME__) (((__SAMPLETIME__) == LPTIM_TRIGSAMPLETIME_DIRECTTRANSITION) || \ 834 ((__SAMPLETIME__) == LPTIM_TRIGSAMPLETIME_2TRANSITIONS ) || \ 835 ((__SAMPLETIME__) == LPTIM_TRIGSAMPLETIME_4TRANSITIONS ) || \ 836 ((__SAMPLETIME__) == LPTIM_TRIGSAMPLETIME_8TRANSITIONS )) 837 838 #define IS_LPTIM_UPDATE_MODE(__MODE__) (((__MODE__) == LPTIM_UPDATE_IMMEDIATE) || \ 839 ((__MODE__) == LPTIM_UPDATE_ENDOFPERIOD)) 840 841 #define IS_LPTIM_COUNTER_SOURCE(__SOURCE__) (((__SOURCE__) == LPTIM_COUNTERSOURCE_INTERNAL) || \ 842 ((__SOURCE__) == LPTIM_COUNTERSOURCE_EXTERNAL)) 843 844 #define IS_LPTIM_AUTORELOAD(__AUTORELOAD__) ((__AUTORELOAD__) <= 0x0000FFFFUL) 845 846 #define IS_LPTIM_COMPARE(__COMPARE__) ((__COMPARE__) <= 0x0000FFFFUL) 847 848 #define IS_LPTIM_PERIOD(__PERIOD__) ((__PERIOD__) <= 0x0000FFFFUL) 849 850 #define IS_LPTIM_PULSE(__PULSE__) ((__PULSE__) <= 0x0000FFFFUL) 851 852 #if defined(LPTIM_RCR_REP) 853 #define IS_LPTIM_REPETITION(__REPETITION__) ((__REPETITION__) <= 0x000000FFUL) 854 #endif 855 856 #define IS_LPTIM_INPUT1_SOURCE(__INSTANCE__, __SOURCE__) \ 857 ((((__INSTANCE__) == LPTIM1) && \ 858 (((__SOURCE__) == LPTIM_INPUT1SOURCE_GPIO) || \ 859 ((__SOURCE__) == LPTIM_INPUT1SOURCE_COMP1))) \ 860 || \ 861 (((__INSTANCE__) == LPTIM2) && \ 862 (((__SOURCE__) == LPTIM_INPUT1SOURCE_GPIO) || \ 863 ((__SOURCE__) == LPTIM_INPUT1SOURCE_COMP1) || \ 864 ((__SOURCE__) == LPTIM_INPUT1SOURCE_COMP2) || \ 865 ((__SOURCE__) == LPTIM_INPUT1SOURCE_COMP1_COMP2)))) 866 867 #define IS_LPTIM_INPUT2_SOURCE(__INSTANCE__, __SOURCE__) \ 868 (((__INSTANCE__) == LPTIM1) && \ 869 (((__SOURCE__) == LPTIM_INPUT2SOURCE_GPIO) || \ 870 ((__SOURCE__) == LPTIM_INPUT2SOURCE_COMP2))) 871 872 /** 873 * @} 874 */ 875 876 /* Private functions ---------------------------------------------------------*/ 877 /** @defgroup LPTIM_Private_Functions LPTIM Private Functions 878 * @{ 879 */ 880 void LPTIM_Disable(LPTIM_HandleTypeDef *hlptim); 881 /** 882 * @} 883 */ 884 885 /** 886 * @} 887 */ 888 889 #endif /* LPTIM1 || LPTIM2 */ 890 /** 891 * @} 892 */ 893 894 #ifdef __cplusplus 895 } 896 #endif 897 898 #endif /* STM32L4xx_HAL_LPTIM_H */ 899 900 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 901