STM32F4xx_HAL_Driver  1.8.3
stm32f4xx_hal_lptim.h
Go to the documentation of this file.
1 
19 /* Define to prevent recursive inclusion -------------------------------------*/
20 #ifndef STM32F4xx_HAL_LPTIM_H
21 #define STM32F4xx_HAL_LPTIM_H
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
27 /* Includes ------------------------------------------------------------------*/
28 #include "stm32f4xx_hal_def.h"
29 
34 #if defined (LPTIM1)
35 
40 /* Exported types ------------------------------------------------------------*/
44 #define LPTIM_EXTI_LINE_WAKEUPTIMER_EVENT EXTI_IMR_MR23
49 typedef struct
50 {
51  uint32_t Source;
54  uint32_t Prescaler;
58 
62 typedef struct
63 {
64  uint32_t Polarity;
71  uint32_t SampleTime;
76 
80 typedef struct
81 {
82  uint32_t Source;
85  uint32_t ActiveEdge;
89  uint32_t SampleTime;
93 
97 typedef struct
98 {
105  uint32_t OutputPolarity;
108  uint32_t UpdateMode;
112  uint32_t CounterSource;
116 
120 typedef enum
121 {
126  HAL_LPTIM_STATE_ERROR = 0x04U
128 
132 #if (USE_HAL_LPTIM_REGISTER_CALLBACKS == 1)
133 typedef struct __LPTIM_HandleTypeDef
134 #else
135 typedef struct
136 #endif /* USE_HAL_LPTIM_REGISTER_CALLBACKS */
137 {
138  LPTIM_TypeDef *Instance;
142  HAL_StatusTypeDef Status;
144  HAL_LockTypeDef Lock;
148 #if (USE_HAL_LPTIM_REGISTER_CALLBACKS == 1)
149  void (* MspInitCallback)(struct __LPTIM_HandleTypeDef *hlptim);
150  void (* MspDeInitCallback)(struct __LPTIM_HandleTypeDef *hlptim);
151  void (* CompareMatchCallback)(struct __LPTIM_HandleTypeDef *hlptim);
152  void (* AutoReloadMatchCallback)(struct __LPTIM_HandleTypeDef *hlptim);
153  void (* TriggerCallback)(struct __LPTIM_HandleTypeDef *hlptim);
154  void (* CompareWriteCallback)(struct __LPTIM_HandleTypeDef *hlptim);
155  void (* AutoReloadWriteCallback)(struct __LPTIM_HandleTypeDef *hlptim);
156  void (* DirectionUpCallback)(struct __LPTIM_HandleTypeDef *hlptim);
157  void (* DirectionDownCallback)(struct __LPTIM_HandleTypeDef *hlptim);
158 #endif /* USE_HAL_LPTIM_REGISTER_CALLBACKS */
160 
161 #if (USE_HAL_LPTIM_REGISTER_CALLBACKS == 1)
165 typedef enum
166 {
177 
181 typedef void (*pLPTIM_CallbackTypeDef)(LPTIM_HandleTypeDef *hlptim);
183 #endif /* USE_HAL_LPTIM_REGISTER_CALLBACKS */
188 /* Exported constants --------------------------------------------------------*/
196 #define LPTIM_CLOCKSOURCE_APBCLOCK_LPOSC 0x00000000U
197 #define LPTIM_CLOCKSOURCE_ULPTIM LPTIM_CFGR_CKSEL
205 #define LPTIM_PRESCALER_DIV1 0x00000000U
206 #define LPTIM_PRESCALER_DIV2 LPTIM_CFGR_PRESC_0
207 #define LPTIM_PRESCALER_DIV4 LPTIM_CFGR_PRESC_1
208 #define LPTIM_PRESCALER_DIV8 (LPTIM_CFGR_PRESC_0 | LPTIM_CFGR_PRESC_1)
209 #define LPTIM_PRESCALER_DIV16 LPTIM_CFGR_PRESC_2
210 #define LPTIM_PRESCALER_DIV32 (LPTIM_CFGR_PRESC_0 | LPTIM_CFGR_PRESC_2)
211 #define LPTIM_PRESCALER_DIV64 (LPTIM_CFGR_PRESC_1 | LPTIM_CFGR_PRESC_2)
212 #define LPTIM_PRESCALER_DIV128 LPTIM_CFGR_PRESC
221 #define LPTIM_OUTPUTPOLARITY_HIGH 0x00000000U
222 #define LPTIM_OUTPUTPOLARITY_LOW LPTIM_CFGR_WAVPOL
230 #define LPTIM_CLOCKSAMPLETIME_DIRECTTRANSITION 0x00000000U
231 #define LPTIM_CLOCKSAMPLETIME_2TRANSITIONS LPTIM_CFGR_CKFLT_0
232 #define LPTIM_CLOCKSAMPLETIME_4TRANSITIONS LPTIM_CFGR_CKFLT_1
233 #define LPTIM_CLOCKSAMPLETIME_8TRANSITIONS LPTIM_CFGR_CKFLT
241 #define LPTIM_CLOCKPOLARITY_RISING 0x00000000U
242 #define LPTIM_CLOCKPOLARITY_FALLING LPTIM_CFGR_CKPOL_0
243 #define LPTIM_CLOCKPOLARITY_RISING_FALLING LPTIM_CFGR_CKPOL_1
251 #define LPTIM_TRIGSOURCE_SOFTWARE 0x0000FFFFU
252 #define LPTIM_TRIGSOURCE_0 0x00000000U
253 #define LPTIM_TRIGSOURCE_1 LPTIM_CFGR_TRIGSEL_0
254 #define LPTIM_TRIGSOURCE_2 LPTIM_CFGR_TRIGSEL_1
255 #define LPTIM_TRIGSOURCE_3 (LPTIM_CFGR_TRIGSEL_0 | LPTIM_CFGR_TRIGSEL_1)
256 #define LPTIM_TRIGSOURCE_4 LPTIM_CFGR_TRIGSEL_2
257 #define LPTIM_TRIGSOURCE_5 (LPTIM_CFGR_TRIGSEL_0 | LPTIM_CFGR_TRIGSEL_2)
265 #define LPTIM_ACTIVEEDGE_RISING LPTIM_CFGR_TRIGEN_0
266 #define LPTIM_ACTIVEEDGE_FALLING LPTIM_CFGR_TRIGEN_1
267 #define LPTIM_ACTIVEEDGE_RISING_FALLING LPTIM_CFGR_TRIGEN
275 #define LPTIM_TRIGSAMPLETIME_DIRECTTRANSITION 0x00000000U
276 #define LPTIM_TRIGSAMPLETIME_2TRANSITIONS LPTIM_CFGR_TRGFLT_0
277 #define LPTIM_TRIGSAMPLETIME_4TRANSITIONS LPTIM_CFGR_TRGFLT_1
278 #define LPTIM_TRIGSAMPLETIME_8TRANSITIONS LPTIM_CFGR_TRGFLT
287 #define LPTIM_UPDATE_IMMEDIATE 0x00000000U
288 #define LPTIM_UPDATE_ENDOFPERIOD LPTIM_CFGR_PRELOAD
297 #define LPTIM_COUNTERSOURCE_INTERNAL 0x00000000U
298 #define LPTIM_COUNTERSOURCE_EXTERNAL LPTIM_CFGR_COUNTMODE
307 #define LPTIM_FLAG_DOWN LPTIM_ISR_DOWN
308 #define LPTIM_FLAG_UP LPTIM_ISR_UP
309 #define LPTIM_FLAG_ARROK LPTIM_ISR_ARROK
310 #define LPTIM_FLAG_CMPOK LPTIM_ISR_CMPOK
311 #define LPTIM_FLAG_EXTTRIG LPTIM_ISR_EXTTRIG
312 #define LPTIM_FLAG_ARRM LPTIM_ISR_ARRM
313 #define LPTIM_FLAG_CMPM LPTIM_ISR_CMPM
321 #define LPTIM_IT_DOWN LPTIM_IER_DOWNIE
322 #define LPTIM_IT_UP LPTIM_IER_UPIE
323 #define LPTIM_IT_ARROK LPTIM_IER_ARROKIE
324 #define LPTIM_IT_CMPOK LPTIM_IER_CMPOKIE
325 #define LPTIM_IT_EXTTRIG LPTIM_IER_EXTTRIGIE
326 #define LPTIM_IT_ARRM LPTIM_IER_ARRMIE
327 #define LPTIM_IT_CMPM LPTIM_IER_CMPMIE
335 #define LPTIM_OP_PAD_AF 0x00000000U
336 #define LPTIM_OP_PAD_PA4 LPTIM_OR_LPT_IN1_RMP_0
337 #define LPTIM_OP_PAD_PB9 LPTIM_OR_LPT_IN1_RMP_1
338 #define LPTIM_OP_TIM_DAC LPTIM_OR_LPT_IN1_RMP
347 /* Exported macros -----------------------------------------------------------*/
356 #if (USE_HAL_LPTIM_REGISTER_CALLBACKS == 1)
357 #define __HAL_LPTIM_RESET_HANDLE_STATE(__HANDLE__) do { \
358  (__HANDLE__)->State = HAL_LPTIM_STATE_RESET; \
359  (__HANDLE__)->MspInitCallback = NULL; \
360  (__HANDLE__)->MspDeInitCallback = NULL; \
361  } while(0)
362 #else
363 #define __HAL_LPTIM_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_LPTIM_STATE_RESET)
364 #endif /* USE_HAL_LPTIM_REGISTER_CALLBACKS */
365 
371 #define __HAL_LPTIM_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= (LPTIM_CR_ENABLE))
372 
383 #define __HAL_LPTIM_DISABLE(__HANDLE__) LPTIM_Disable(__HANDLE__)
384 
390 #define __HAL_LPTIM_START_CONTINUOUS(__HANDLE__) ((__HANDLE__)->Instance->CR |= LPTIM_CR_CNTSTRT)
396 #define __HAL_LPTIM_START_SINGLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= LPTIM_CR_SNGSTRT)
397 
406 #define __HAL_LPTIM_AUTORELOAD_SET(__HANDLE__ , __VALUE__) ((__HANDLE__)->Instance->ARR = (__VALUE__))
407 
415 #define __HAL_LPTIM_COMPARE_SET(__HANDLE__ , __VALUE__) ((__HANDLE__)->Instance->CMP = (__VALUE__))
416 
431 #define __HAL_LPTIM_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->ISR &(__FLAG__)) == (__FLAG__))
432 
447 #define __HAL_LPTIM_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ICR = (__FLAG__))
448 
464 #define __HAL_LPTIM_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->IER |= (__INTERRUPT__))
465 
481 #define __HAL_LPTIM_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->IER &= (~(__INTERRUPT__)))
482 
498 #define __HAL_LPTIM_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((((__HANDLE__)->Instance->IER\
499  & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET)
500 
510 #define __HAL_LPTIM_OPTR_CONFIG(__HANDLE__ , __VALUE__) ((__HANDLE__)->Instance->OR = (__VALUE__))
511 
512 
517 #define __HAL_LPTIM_WAKEUPTIMER_EXTI_ENABLE_IT() (EXTI->IMR\
518  |= LPTIM_EXTI_LINE_WAKEUPTIMER_EVENT)
519 
524 #define __HAL_LPTIM_WAKEUPTIMER_EXTI_DISABLE_IT() (EXTI->IMR\
525  &= ~(LPTIM_EXTI_LINE_WAKEUPTIMER_EVENT))
526 
531 #define __HAL_LPTIM_WAKEUPTIMER_EXTI_ENABLE_EVENT() (EXTI->EMR\
532  |= LPTIM_EXTI_LINE_WAKEUPTIMER_EVENT)
533 
538 #define __HAL_LPTIM_WAKEUPTIMER_EXTI_DISABLE_EVENT() (EXTI->EMR\
539  &= ~(LPTIM_EXTI_LINE_WAKEUPTIMER_EVENT))
540 #if defined(EXTI_IMR_MR23)
541 
546 #define __HAL_LPTIM_WAKEUPTIMER_EXTI_ENABLE_FALLING_EDGE() (EXTI->FTSR\
547  |= LPTIM_EXTI_LINE_WAKEUPTIMER_EVENT)
548 
553 #define __HAL_LPTIM_WAKEUPTIMER_EXTI_DISABLE_FALLING_EDGE() (EXTI->FTSR\
554  &= ~(LPTIM_EXTI_LINE_WAKEUPTIMER_EVENT))
555 
560 #define __HAL_LPTIM_WAKEUPTIMER_EXTI_ENABLE_RISING_EDGE() (EXTI->RTSR\
561  |= LPTIM_EXTI_LINE_WAKEUPTIMER_EVENT)
562 
567 #define __HAL_LPTIM_WAKEUPTIMER_EXTI_DISABLE_RISING_EDGE() (EXTI->RTSR\
568  &= ~(LPTIM_EXTI_LINE_WAKEUPTIMER_EVENT))
569 
574 #define __HAL_LPTIM_WAKEUPTIMER_EXTI_ENABLE_RISING_FALLING_EDGE() do{__HAL_LPTIM_WAKEUPTIMER_EXTI_ENABLE_RISING_EDGE();\
575  __HAL_LPTIM_WAKEUPTIMER_EXTI_ENABLE_FALLING_EDGE();\
576  }while(0)
577 
582 #define __HAL_LPTIM_WAKEUPTIMER_EXTI_DISABLE_RISING_FALLING_EDGE() do{__HAL_LPTIM_WAKEUPTIMER_EXTI_DISABLE_RISING_EDGE();\
583  __HAL_LPTIM_WAKEUPTIMER_EXTI_DISABLE_FALLING_EDGE();\
584  }while(0)
585 
590 #define __HAL_LPTIM_WAKEUPTIMER_EXTI_GET_FLAG() (EXTI->PR\
591  & LPTIM_EXTI_LINE_WAKEUPTIMER_EVENT)
592 
597 #define __HAL_LPTIM_WAKEUPTIMER_EXTI_CLEAR_FLAG() (EXTI->PR\
598  = LPTIM_EXTI_LINE_WAKEUPTIMER_EVENT)
599 
604 #define __HAL_LPTIM_WAKEUPTIMER_EXTI_GENERATE_SWIT() (EXTI->SWIER\
605  |= LPTIM_EXTI_LINE_WAKEUPTIMER_EVENT)
606 #endif /* EXTI_IMR_MR23 */
607 
612 /* Exported functions --------------------------------------------------------*/
621 /* Initialization/de-initialization functions ********************************/
622 HAL_StatusTypeDef HAL_LPTIM_Init(LPTIM_HandleTypeDef *hlptim);
623 HAL_StatusTypeDef HAL_LPTIM_DeInit(LPTIM_HandleTypeDef *hlptim);
624 
625 /* MSP functions *************************************************************/
636 /* Start/Stop operation functions *********************************************/
637 /* ################################# PWM Mode ################################*/
638 /* Blocking mode: Polling */
639 HAL_StatusTypeDef HAL_LPTIM_PWM_Start(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Pulse);
640 HAL_StatusTypeDef HAL_LPTIM_PWM_Stop(LPTIM_HandleTypeDef *hlptim);
641 /* Non-Blocking mode: Interrupt */
642 HAL_StatusTypeDef HAL_LPTIM_PWM_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Pulse);
643 HAL_StatusTypeDef HAL_LPTIM_PWM_Stop_IT(LPTIM_HandleTypeDef *hlptim);
644 
645 /* ############################# One Pulse Mode ##############################*/
646 /* Blocking mode: Polling */
647 HAL_StatusTypeDef HAL_LPTIM_OnePulse_Start(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Pulse);
648 HAL_StatusTypeDef HAL_LPTIM_OnePulse_Stop(LPTIM_HandleTypeDef *hlptim);
649 /* Non-Blocking mode: Interrupt */
650 HAL_StatusTypeDef HAL_LPTIM_OnePulse_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Pulse);
651 HAL_StatusTypeDef HAL_LPTIM_OnePulse_Stop_IT(LPTIM_HandleTypeDef *hlptim);
652 
653 /* ############################## Set once Mode ##############################*/
654 /* Blocking mode: Polling */
655 HAL_StatusTypeDef HAL_LPTIM_SetOnce_Start(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Pulse);
656 HAL_StatusTypeDef HAL_LPTIM_SetOnce_Stop(LPTIM_HandleTypeDef *hlptim);
657 /* Non-Blocking mode: Interrupt */
658 HAL_StatusTypeDef HAL_LPTIM_SetOnce_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Pulse);
659 HAL_StatusTypeDef HAL_LPTIM_SetOnce_Stop_IT(LPTIM_HandleTypeDef *hlptim);
660 
661 /* ############################### Encoder Mode ##############################*/
662 /* Blocking mode: Polling */
663 HAL_StatusTypeDef HAL_LPTIM_Encoder_Start(LPTIM_HandleTypeDef *hlptim, uint32_t Period);
664 HAL_StatusTypeDef HAL_LPTIM_Encoder_Stop(LPTIM_HandleTypeDef *hlptim);
665 /* Non-Blocking mode: Interrupt */
666 HAL_StatusTypeDef HAL_LPTIM_Encoder_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period);
667 HAL_StatusTypeDef HAL_LPTIM_Encoder_Stop_IT(LPTIM_HandleTypeDef *hlptim);
668 
669 /* ############################# Time out Mode ##############################*/
670 /* Blocking mode: Polling */
671 HAL_StatusTypeDef HAL_LPTIM_TimeOut_Start(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Timeout);
672 HAL_StatusTypeDef HAL_LPTIM_TimeOut_Stop(LPTIM_HandleTypeDef *hlptim);
673 /* Non-Blocking mode: Interrupt */
674 HAL_StatusTypeDef HAL_LPTIM_TimeOut_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Timeout);
675 HAL_StatusTypeDef HAL_LPTIM_TimeOut_Stop_IT(LPTIM_HandleTypeDef *hlptim);
676 
677 /* ############################## Counter Mode ###############################*/
678 /* Blocking mode: Polling */
679 HAL_StatusTypeDef HAL_LPTIM_Counter_Start(LPTIM_HandleTypeDef *hlptim, uint32_t Period);
680 HAL_StatusTypeDef HAL_LPTIM_Counter_Stop(LPTIM_HandleTypeDef *hlptim);
681 /* Non-Blocking mode: Interrupt */
682 HAL_StatusTypeDef HAL_LPTIM_Counter_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period);
683 HAL_StatusTypeDef HAL_LPTIM_Counter_Stop_IT(LPTIM_HandleTypeDef *hlptim);
692 /* Reading operation functions ************************************************/
693 uint32_t HAL_LPTIM_ReadCounter(const LPTIM_HandleTypeDef *hlptim);
694 uint32_t HAL_LPTIM_ReadAutoReload(const LPTIM_HandleTypeDef *hlptim);
695 uint32_t HAL_LPTIM_ReadCompare(const LPTIM_HandleTypeDef *hlptim);
704 /* LPTIM IRQ functions *******************************************************/
706 
707 /* CallBack functions ********************************************************/
715 
716 /* Callbacks Register/UnRegister functions ***********************************/
717 #if (USE_HAL_LPTIM_REGISTER_CALLBACKS == 1)
719  pLPTIM_CallbackTypeDef pCallback);
721 #endif /* USE_HAL_LPTIM_REGISTER_CALLBACKS */
730 /* Peripheral State functions ************************************************/
740 /* Private types -------------------------------------------------------------*/
749 /* Private variables ---------------------------------------------------------*/
758 /* Private constants ---------------------------------------------------------*/
767 /* Private macros ------------------------------------------------------------*/
772 #define IS_LPTIM_CLOCK_SOURCE(__SOURCE__) (((__SOURCE__) == LPTIM_CLOCKSOURCE_ULPTIM) || \
773  ((__SOURCE__) == LPTIM_CLOCKSOURCE_APBCLOCK_LPOSC))
774 
775 
776 #define IS_LPTIM_CLOCK_PRESCALER(__PRESCALER__) (((__PRESCALER__) == LPTIM_PRESCALER_DIV1 ) || \
777  ((__PRESCALER__) == LPTIM_PRESCALER_DIV2 ) || \
778  ((__PRESCALER__) == LPTIM_PRESCALER_DIV4 ) || \
779  ((__PRESCALER__) == LPTIM_PRESCALER_DIV8 ) || \
780  ((__PRESCALER__) == LPTIM_PRESCALER_DIV16 ) || \
781  ((__PRESCALER__) == LPTIM_PRESCALER_DIV32 ) || \
782  ((__PRESCALER__) == LPTIM_PRESCALER_DIV64 ) || \
783  ((__PRESCALER__) == LPTIM_PRESCALER_DIV128))
784 
785 #define IS_LPTIM_CLOCK_PRESCALERDIV1(__PRESCALER__) ((__PRESCALER__) == LPTIM_PRESCALER_DIV1)
786 
787 #define IS_LPTIM_OUTPUT_POLARITY(__POLARITY__) (((__POLARITY__) == LPTIM_OUTPUTPOLARITY_LOW ) || \
788  ((__POLARITY__) == LPTIM_OUTPUTPOLARITY_HIGH))
789 
790 #define IS_LPTIM_CLOCK_SAMPLE_TIME(__SAMPLETIME__) (((__SAMPLETIME__) == LPTIM_CLOCKSAMPLETIME_DIRECTTRANSITION) || \
791  ((__SAMPLETIME__) == LPTIM_CLOCKSAMPLETIME_2TRANSITIONS) || \
792  ((__SAMPLETIME__) == LPTIM_CLOCKSAMPLETIME_4TRANSITIONS) || \
793  ((__SAMPLETIME__) == LPTIM_CLOCKSAMPLETIME_8TRANSITIONS))
794 
795 #define IS_LPTIM_CLOCK_POLARITY(__POLARITY__) (((__POLARITY__) == LPTIM_CLOCKPOLARITY_RISING) || \
796  ((__POLARITY__) == LPTIM_CLOCKPOLARITY_FALLING) || \
797  ((__POLARITY__) == LPTIM_CLOCKPOLARITY_RISING_FALLING))
798 
799 #define IS_LPTIM_TRG_SOURCE(__TRIG__) (((__TRIG__) == LPTIM_TRIGSOURCE_SOFTWARE) || \
800  ((__TRIG__) == LPTIM_TRIGSOURCE_0) || \
801  ((__TRIG__) == LPTIM_TRIGSOURCE_1) || \
802  ((__TRIG__) == LPTIM_TRIGSOURCE_2) || \
803  ((__TRIG__) == LPTIM_TRIGSOURCE_3) || \
804  ((__TRIG__) == LPTIM_TRIGSOURCE_4) || \
805  ((__TRIG__) == LPTIM_TRIGSOURCE_5))
806 
807 #define IS_LPTIM_EXT_TRG_POLARITY(__POLARITY__) (((__POLARITY__) == LPTIM_ACTIVEEDGE_RISING ) || \
808  ((__POLARITY__) == LPTIM_ACTIVEEDGE_FALLING ) || \
809  ((__POLARITY__) == LPTIM_ACTIVEEDGE_RISING_FALLING ))
810 
811 #define IS_LPTIM_TRIG_SAMPLE_TIME(__SAMPLETIME__) (((__SAMPLETIME__) == LPTIM_TRIGSAMPLETIME_DIRECTTRANSITION) || \
812  ((__SAMPLETIME__) == LPTIM_TRIGSAMPLETIME_2TRANSITIONS ) || \
813  ((__SAMPLETIME__) == LPTIM_TRIGSAMPLETIME_4TRANSITIONS ) || \
814  ((__SAMPLETIME__) == LPTIM_TRIGSAMPLETIME_8TRANSITIONS ))
815 
816 #define IS_LPTIM_UPDATE_MODE(__MODE__) (((__MODE__) == LPTIM_UPDATE_IMMEDIATE) || \
817  ((__MODE__) == LPTIM_UPDATE_ENDOFPERIOD))
818 
819 #define IS_LPTIM_COUNTER_SOURCE(__SOURCE__) (((__SOURCE__) == LPTIM_COUNTERSOURCE_INTERNAL) || \
820  ((__SOURCE__) == LPTIM_COUNTERSOURCE_EXTERNAL))
821 
822 #define IS_LPTIM_COMPARE(__COMPARE__) ((__COMPARE__) <= 0x0000FFFFUL)
823 
824 #define IS_LPTIM_PERIOD(__PERIOD__) ((0x00000001UL <= (__PERIOD__)) &&\
825  ((__PERIOD__) <= 0x0000FFFFUL))
826 
827 #define IS_LPTIM_PULSE(__PULSE__) ((__PULSE__) <= 0x0000FFFFUL)
828 
833 /* Private functions ---------------------------------------------------------*/
837 void LPTIM_Disable(LPTIM_HandleTypeDef *hlptim);
846 #endif /* LPTIM1 */
851 #ifdef __cplusplus
852 }
853 #endif
854 
855 #endif /* STM32F4xx_HAL_LPTIM_H */
LPTIM_InitTypeDef Init
__IO HAL_LPTIM_StateTypeDef State
LPTIM_TypeDef * Instance
ADC handle Structure definition.
void HAL_LPTIM_MspInit(LPTIM_HandleTypeDef *hlptim)
Initialize the LPTIM MSP.
HAL_StatusTypeDef HAL_LPTIM_DeInit(LPTIM_HandleTypeDef *hlptim)
DeInitialize the LPTIM peripheral.
void HAL_LPTIM_MspDeInit(LPTIM_HandleTypeDef *hlptim)
DeInitialize LPTIM MSP.
HAL_StatusTypeDef HAL_LPTIM_Init(LPTIM_HandleTypeDef *hlptim)
Initialize the LPTIM according to the specified parameters in the LPTIM_InitTypeDef and initialize th...
HAL_StatusTypeDef HAL_LPTIM_TimeOut_Start(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Timeout)
Start the Timeout function.
HAL_StatusTypeDef HAL_LPTIM_SetOnce_Stop(LPTIM_HandleTypeDef *hlptim)
Stop the LPTIM Set once mode.
HAL_StatusTypeDef HAL_LPTIM_Encoder_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period)
Start the Encoder interface in interrupt mode.
HAL_StatusTypeDef HAL_LPTIM_Encoder_Start(LPTIM_HandleTypeDef *hlptim, uint32_t Period)
Start the Encoder interface.
HAL_StatusTypeDef HAL_LPTIM_PWM_Stop(LPTIM_HandleTypeDef *hlptim)
Stop the LPTIM PWM generation.
HAL_StatusTypeDef HAL_LPTIM_TimeOut_Stop_IT(LPTIM_HandleTypeDef *hlptim)
Stop the Timeout function in interrupt mode.
HAL_StatusTypeDef HAL_LPTIM_PWM_Start(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Pulse)
Start the LPTIM PWM generation.
HAL_StatusTypeDef HAL_LPTIM_SetOnce_Stop_IT(LPTIM_HandleTypeDef *hlptim)
Stop the LPTIM Set once mode in interrupt mode.
HAL_StatusTypeDef HAL_LPTIM_SetOnce_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Pulse)
Start the LPTIM Set once mode in interrupt mode.
HAL_StatusTypeDef HAL_LPTIM_TimeOut_Stop(LPTIM_HandleTypeDef *hlptim)
Stop the Timeout function.
HAL_StatusTypeDef HAL_LPTIM_SetOnce_Start(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Pulse)
Start the LPTIM in Set once mode.
HAL_StatusTypeDef HAL_LPTIM_Counter_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period)
Start the Counter mode in interrupt mode.
HAL_StatusTypeDef HAL_LPTIM_OnePulse_Stop_IT(LPTIM_HandleTypeDef *hlptim)
Stop the LPTIM One pulse generation in interrupt mode.
HAL_StatusTypeDef HAL_LPTIM_PWM_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Pulse)
Start the LPTIM PWM generation in interrupt mode.
HAL_StatusTypeDef HAL_LPTIM_Counter_Start(LPTIM_HandleTypeDef *hlptim, uint32_t Period)
Start the Counter mode.
HAL_StatusTypeDef HAL_LPTIM_Counter_Stop(LPTIM_HandleTypeDef *hlptim)
Stop the Counter mode.
HAL_StatusTypeDef HAL_LPTIM_OnePulse_Stop(LPTIM_HandleTypeDef *hlptim)
Stop the LPTIM One pulse generation.
HAL_StatusTypeDef HAL_LPTIM_OnePulse_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Pulse)
Start the LPTIM One pulse generation in interrupt mode.
HAL_StatusTypeDef HAL_LPTIM_TimeOut_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Timeout)
Start the Timeout function in interrupt mode.
HAL_StatusTypeDef HAL_LPTIM_PWM_Stop_IT(LPTIM_HandleTypeDef *hlptim)
Stop the LPTIM PWM generation in interrupt mode.
HAL_StatusTypeDef HAL_LPTIM_Counter_Stop_IT(LPTIM_HandleTypeDef *hlptim)
Stop the Counter mode in interrupt mode.
HAL_StatusTypeDef HAL_LPTIM_Encoder_Stop(LPTIM_HandleTypeDef *hlptim)
Stop the Encoder interface.
HAL_StatusTypeDef HAL_LPTIM_Encoder_Stop_IT(LPTIM_HandleTypeDef *hlptim)
Stop the Encoder interface in interrupt mode.
HAL_StatusTypeDef HAL_LPTIM_OnePulse_Start(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Pulse)
Start the LPTIM One pulse generation.
uint32_t HAL_LPTIM_ReadAutoReload(const LPTIM_HandleTypeDef *hlptim)
Return the current Autoreload (Period) value.
uint32_t HAL_LPTIM_ReadCounter(const LPTIM_HandleTypeDef *hlptim)
Return the current counter value.
uint32_t HAL_LPTIM_ReadCompare(const LPTIM_HandleTypeDef *hlptim)
Return the current Compare (Pulse) value.
void HAL_LPTIM_DirectionDownCallback(LPTIM_HandleTypeDef *hlptim)
Direction counter changed from Up to Down callback in non-blocking mode.
void HAL_LPTIM_AutoReloadMatchCallback(LPTIM_HandleTypeDef *hlptim)
Autoreload match callback in non-blocking mode.
void HAL_LPTIM_AutoReloadWriteCallback(LPTIM_HandleTypeDef *hlptim)
Autoreload write callback in non-blocking mode.
void HAL_LPTIM_IRQHandler(LPTIM_HandleTypeDef *hlptim)
Handle LPTIM interrupt request.
void HAL_LPTIM_CompareMatchCallback(LPTIM_HandleTypeDef *hlptim)
Compare match callback in non-blocking mode.
void HAL_LPTIM_CompareWriteCallback(LPTIM_HandleTypeDef *hlptim)
Compare write callback in non-blocking mode.
void HAL_LPTIM_TriggerCallback(LPTIM_HandleTypeDef *hlptim)
Trigger detected callback in non-blocking mode.
HAL_StatusTypeDef HAL_LPTIM_UnRegisterCallback(LPTIM_HandleTypeDef *lphtim, HAL_LPTIM_CallbackIDTypeDef CallbackID)
Unregister a LPTIM callback LLPTIM callback is redirected to the weak predefined callback.
HAL_StatusTypeDef HAL_LPTIM_RegisterCallback(LPTIM_HandleTypeDef *lphtim, HAL_LPTIM_CallbackIDTypeDef CallbackID, pLPTIM_CallbackTypeDef pCallback)
Register a User LPTIM callback to be used instead of the weak predefined callback.
void HAL_LPTIM_DirectionUpCallback(LPTIM_HandleTypeDef *hlptim)
Direction counter changed from Down to Up callback in non-blocking mode.
LPTIM_TriggerConfigTypeDef Trigger
LPTIM_ULPClockConfigTypeDef UltraLowPowerClock
LPTIM_ClockConfigTypeDef Clock
struct __LPTIM_HandleTypeDef else typedef struct endif LPTIM_HandleTypeDef
LPTIM handle Structure definition.
HAL_LPTIM_StateTypeDef
HAL LPTIM State structure definition.
HAL_LPTIM_CallbackIDTypeDef
HAL LPTIM Callback ID enumeration definition.
void(* pLPTIM_CallbackTypeDef)(LPTIM_HandleTypeDef *hlptim)
HAL TIM Callback pointer definition.
@ HAL_LPTIM_STATE_READY
@ HAL_LPTIM_STATE_ERROR
@ HAL_LPTIM_STATE_RESET
@ HAL_LPTIM_STATE_TIMEOUT
@ HAL_LPTIM_STATE_BUSY
@ HAL_LPTIM_DIRECTION_UP_CB_ID
@ HAL_LPTIM_COMPARE_MATCH_CB_ID
@ HAL_LPTIM_AUTORELOAD_WRITE_CB_ID
@ HAL_LPTIM_TRIGGER_CB_ID
@ HAL_LPTIM_AUTORELOAD_MATCH_CB_ID
@ HAL_LPTIM_MSPINIT_CB_ID
@ HAL_LPTIM_DIRECTION_DOWN_CB_ID
@ HAL_LPTIM_COMPARE_WRITE_CB_ID
@ HAL_LPTIM_MSPDEINIT_CB_ID
LPTIM Clock configuration definition.
LPTIM Initialization Structure definition.
LPTIM Trigger configuration definition.
LPTIM Clock configuration definition.
HAL_LPTIM_StateTypeDef HAL_LPTIM_GetState(const LPTIM_HandleTypeDef *hlptim)
Return the LPTIM handle state.
void LPTIM_Disable(LPTIM_HandleTypeDef *hlptim)
Disable LPTIM HW instance.
This file contains HAL common defines, enumeration, macros and structures definitions.
HAL_LockTypeDef
HAL Lock structures definition