The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

Committer:
Kojto
Date:
Tue Feb 14 11:24:20 2017 +0000
Revision:
136:ef9c61f8c49f
Parent:
135:176b8275d35d
Child:
139:856d2700e60b
Release 136 of the mbed library

Ports for Upcoming Targets


Fixes and Changes

3432: Target STM USBHOST support https://github.com/ARMmbed/mbed-os/pull/3432
3181: NUCLEO_F207ZG extending PeripheralPins.c: all available alternate functions can be used now https://github.com/ARMmbed/mbed-os/pull/3181
3626: NUCLEO_F412ZG : Add USB Device +Host https://github.com/ARMmbed/mbed-os/pull/3626
3628: Fix warnings https://github.com/ARMmbed/mbed-os/pull/3628
3629: STM32: L0 LL layer https://github.com/ARMmbed/mbed-os/pull/3629
3632: IDE Export support for platform VK_RZ_A1H https://github.com/ARMmbed/mbed-os/pull/3632
3642: Missing IRQ pin fix for platform VK_RZ_A1H https://github.com/ARMmbed/mbed-os/pull/3642
3664: Fix ncs36510 sleep definitions https://github.com/ARMmbed/mbed-os/pull/3664
3655: [STM32F4] Modify folder structure https://github.com/ARMmbed/mbed-os/pull/3655
3657: [STM32L4] Modify folder structure https://github.com/ARMmbed/mbed-os/pull/3657
3658: [STM32F3] Modify folder structure https://github.com/ARMmbed/mbed-os/pull/3658
3685: STM32: I2C: reset state machine https://github.com/ARMmbed/mbed-os/pull/3685
3692: uVisor: Standardize available legacy heap and stack https://github.com/ARMmbed/mbed-os/pull/3692
3621: Fix for #2884, LPC824: export to LPCXpresso, target running with wron https://github.com/ARMmbed/mbed-os/pull/3621
3649: [STM32F7] Modify folder structure https://github.com/ARMmbed/mbed-os/pull/3649
3695: Enforce device_name is valid in targets.json https://github.com/ARMmbed/mbed-os/pull/3695
3723: NCS36510: spi_format function bug fix https://github.com/ARMmbed/mbed-os/pull/3723

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 126:abea610beb85 1 /**
AnnaBridge 126:abea610beb85 2 ******************************************************************************
AnnaBridge 126:abea610beb85 3 * @file stm32f7xx_hal_lptim.h
AnnaBridge 126:abea610beb85 4 * @author MCD Application Team
<> 135:176b8275d35d 5 * @version V1.1.2
<> 135:176b8275d35d 6 * @date 23-September-2016
AnnaBridge 126:abea610beb85 7 * @brief Header file of LPTIM HAL module.
AnnaBridge 126:abea610beb85 8 ******************************************************************************
AnnaBridge 126:abea610beb85 9 * @attention
AnnaBridge 126:abea610beb85 10 *
AnnaBridge 126:abea610beb85 11 * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
AnnaBridge 126:abea610beb85 12 *
AnnaBridge 126:abea610beb85 13 * Redistribution and use in source and binary forms, with or without modification,
AnnaBridge 126:abea610beb85 14 * are permitted provided that the following conditions are met:
AnnaBridge 126:abea610beb85 15 * 1. Redistributions of source code must retain the above copyright notice,
AnnaBridge 126:abea610beb85 16 * this list of conditions and the following disclaimer.
AnnaBridge 126:abea610beb85 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
AnnaBridge 126:abea610beb85 18 * this list of conditions and the following disclaimer in the documentation
AnnaBridge 126:abea610beb85 19 * and/or other materials provided with the distribution.
AnnaBridge 126:abea610beb85 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
AnnaBridge 126:abea610beb85 21 * may be used to endorse or promote products derived from this software
AnnaBridge 126:abea610beb85 22 * without specific prior written permission.
AnnaBridge 126:abea610beb85 23 *
AnnaBridge 126:abea610beb85 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AnnaBridge 126:abea610beb85 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
AnnaBridge 126:abea610beb85 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
AnnaBridge 126:abea610beb85 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
AnnaBridge 126:abea610beb85 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
AnnaBridge 126:abea610beb85 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
AnnaBridge 126:abea610beb85 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
AnnaBridge 126:abea610beb85 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
AnnaBridge 126:abea610beb85 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
AnnaBridge 126:abea610beb85 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
AnnaBridge 126:abea610beb85 34 *
AnnaBridge 126:abea610beb85 35 ******************************************************************************
AnnaBridge 126:abea610beb85 36 */
AnnaBridge 126:abea610beb85 37
AnnaBridge 126:abea610beb85 38 /* Define to prevent recursive inclusion -------------------------------------*/
AnnaBridge 126:abea610beb85 39 #ifndef __STM32F7xx_HAL_LPTIM_H
AnnaBridge 126:abea610beb85 40 #define __STM32F7xx_HAL_LPTIM_H
AnnaBridge 126:abea610beb85 41
AnnaBridge 126:abea610beb85 42 #ifdef __cplusplus
AnnaBridge 126:abea610beb85 43 extern "C" {
AnnaBridge 126:abea610beb85 44 #endif
AnnaBridge 126:abea610beb85 45
AnnaBridge 126:abea610beb85 46 /* Includes ------------------------------------------------------------------*/
AnnaBridge 126:abea610beb85 47 #include "stm32f7xx_hal_def.h"
AnnaBridge 126:abea610beb85 48
AnnaBridge 126:abea610beb85 49 /** @addtogroup STM32F7xx_HAL_Driver
AnnaBridge 126:abea610beb85 50 * @{
AnnaBridge 126:abea610beb85 51 */
AnnaBridge 126:abea610beb85 52
AnnaBridge 126:abea610beb85 53 /** @defgroup LPTIM LPTIM
AnnaBridge 126:abea610beb85 54 * @brief LPTIM HAL module driver
AnnaBridge 126:abea610beb85 55 * @{
AnnaBridge 126:abea610beb85 56 */
AnnaBridge 126:abea610beb85 57
AnnaBridge 126:abea610beb85 58 /* Exported types ------------------------------------------------------------*/
AnnaBridge 126:abea610beb85 59 /** @defgroup LPTIM_Exported_Types LPTIM Exported Types
AnnaBridge 126:abea610beb85 60 * @{
AnnaBridge 126:abea610beb85 61 */
AnnaBridge 126:abea610beb85 62
AnnaBridge 126:abea610beb85 63 /** @defgroup LPTIM_WAKEUPTIMER_EXTILINE LPTIM WAKEUP Timer EXTI Line
AnnaBridge 126:abea610beb85 64 * @{
AnnaBridge 126:abea610beb85 65 */
AnnaBridge 126:abea610beb85 66 #define LPTIM_EXTI_LINE_WAKEUPTIMER_EVENT ((uint32_t)EXTI_IMR_MR23) /*!< External interrupt line 23 Connected to the LPTIM EXTI Line */
AnnaBridge 126:abea610beb85 67 /**
AnnaBridge 126:abea610beb85 68 * @}
AnnaBridge 126:abea610beb85 69 */
AnnaBridge 126:abea610beb85 70
AnnaBridge 126:abea610beb85 71 /**
AnnaBridge 126:abea610beb85 72 * @brief LPTIM Clock configuration definition
AnnaBridge 126:abea610beb85 73 */
AnnaBridge 126:abea610beb85 74 typedef struct
AnnaBridge 126:abea610beb85 75 {
AnnaBridge 126:abea610beb85 76 uint32_t Source; /*!< Selects the clock source.
AnnaBridge 126:abea610beb85 77 This parameter can be a value of @ref LPTIM_Clock_Source */
AnnaBridge 126:abea610beb85 78
AnnaBridge 126:abea610beb85 79 uint32_t Prescaler; /*!< Specifies the counter clock Prescaler.
AnnaBridge 126:abea610beb85 80 This parameter can be a value of @ref LPTIM_Clock_Prescaler */
AnnaBridge 126:abea610beb85 81
AnnaBridge 126:abea610beb85 82 }LPTIM_ClockConfigTypeDef;
AnnaBridge 126:abea610beb85 83
AnnaBridge 126:abea610beb85 84 /**
AnnaBridge 126:abea610beb85 85 * @brief LPTIM Clock configuration definition
AnnaBridge 126:abea610beb85 86 */
AnnaBridge 126:abea610beb85 87 typedef struct
AnnaBridge 126:abea610beb85 88 {
AnnaBridge 126:abea610beb85 89 uint32_t Polarity; /*!< Selects the polarity of the active edge for the counter unit
AnnaBridge 126:abea610beb85 90 if the ULPTIM input is selected.
AnnaBridge 126:abea610beb85 91 Note: This parameter is used only when Ultra low power clock source is used.
AnnaBridge 126:abea610beb85 92 Note: If the polarity is configured on 'both edges', an auxiliary clock
AnnaBridge 126:abea610beb85 93 (one of the Low power oscillator) must be active.
AnnaBridge 126:abea610beb85 94 This parameter can be a value of @ref LPTIM_Clock_Polarity */
AnnaBridge 126:abea610beb85 95
AnnaBridge 126:abea610beb85 96 uint32_t SampleTime; /*!< Selects the clock sampling time to configure the clock glitch filter.
AnnaBridge 126:abea610beb85 97 Note: This parameter is used only when Ultra low power clock source is used.
AnnaBridge 126:abea610beb85 98 This parameter can be a value of @ref LPTIM_Clock_Sample_Time */
AnnaBridge 126:abea610beb85 99
AnnaBridge 126:abea610beb85 100 }LPTIM_ULPClockConfigTypeDef;
AnnaBridge 126:abea610beb85 101
AnnaBridge 126:abea610beb85 102 /**
AnnaBridge 126:abea610beb85 103 * @brief LPTIM Trigger configuration definition
AnnaBridge 126:abea610beb85 104 */
AnnaBridge 126:abea610beb85 105 typedef struct
AnnaBridge 126:abea610beb85 106 {
AnnaBridge 126:abea610beb85 107 uint32_t Source; /*!< Selects the Trigger source.
AnnaBridge 126:abea610beb85 108 This parameter can be a value of @ref LPTIM_Trigger_Source */
AnnaBridge 126:abea610beb85 109
AnnaBridge 126:abea610beb85 110 uint32_t ActiveEdge; /*!< Selects the Trigger active edge.
AnnaBridge 126:abea610beb85 111 Note: This parameter is used only when an external trigger is used.
AnnaBridge 126:abea610beb85 112 This parameter can be a value of @ref LPTIM_External_Trigger_Polarity */
AnnaBridge 126:abea610beb85 113
AnnaBridge 126:abea610beb85 114 uint32_t SampleTime; /*!< Selects the trigger sampling time to configure the clock glitch filter.
AnnaBridge 126:abea610beb85 115 Note: This parameter is used only when an external trigger is used.
AnnaBridge 126:abea610beb85 116 This parameter can be a value of @ref LPTIM_Trigger_Sample_Time */
AnnaBridge 126:abea610beb85 117 }LPTIM_TriggerConfigTypeDef;
AnnaBridge 126:abea610beb85 118
AnnaBridge 126:abea610beb85 119 /**
AnnaBridge 126:abea610beb85 120 * @brief LPTIM Initialization Structure definition
AnnaBridge 126:abea610beb85 121 */
AnnaBridge 126:abea610beb85 122 typedef struct
AnnaBridge 126:abea610beb85 123 {
AnnaBridge 126:abea610beb85 124 LPTIM_ClockConfigTypeDef Clock; /*!< Specifies the clock parameters */
AnnaBridge 126:abea610beb85 125
AnnaBridge 126:abea610beb85 126 LPTIM_ULPClockConfigTypeDef UltraLowPowerClock; /*!< Specifies the Ultra Low Power clock parameters */
AnnaBridge 126:abea610beb85 127
AnnaBridge 126:abea610beb85 128 LPTIM_TriggerConfigTypeDef Trigger; /*!< Specifies the Trigger parameters */
AnnaBridge 126:abea610beb85 129
AnnaBridge 126:abea610beb85 130 uint32_t OutputPolarity; /*!< Specifies the Output polarity.
AnnaBridge 126:abea610beb85 131 This parameter can be a value of @ref LPTIM_Output_Polarity */
AnnaBridge 126:abea610beb85 132
AnnaBridge 126:abea610beb85 133 uint32_t UpdateMode; /*!< Specifies whether the update of the autorelaod and the compare
AnnaBridge 126:abea610beb85 134 values is done immediately or after the end of current period.
AnnaBridge 126:abea610beb85 135 This parameter can be a value of @ref LPTIM_Updating_Mode */
AnnaBridge 126:abea610beb85 136
AnnaBridge 126:abea610beb85 137 uint32_t CounterSource; /*!< Specifies whether the counter is incremented each internal event
AnnaBridge 126:abea610beb85 138 or each external event.
AnnaBridge 126:abea610beb85 139 This parameter can be a value of @ref LPTIM_Counter_Source */
AnnaBridge 126:abea610beb85 140
AnnaBridge 126:abea610beb85 141 }LPTIM_InitTypeDef;
AnnaBridge 126:abea610beb85 142
AnnaBridge 126:abea610beb85 143 /**
AnnaBridge 126:abea610beb85 144 * @brief HAL LPTIM State structure definition
AnnaBridge 126:abea610beb85 145 */
AnnaBridge 126:abea610beb85 146 typedef enum __HAL_LPTIM_StateTypeDef
AnnaBridge 126:abea610beb85 147 {
AnnaBridge 126:abea610beb85 148 HAL_LPTIM_STATE_RESET = 0x00U, /*!< Peripheral not yet initialized or disabled */
AnnaBridge 126:abea610beb85 149 HAL_LPTIM_STATE_READY = 0x01U, /*!< Peripheral Initialized and ready for use */
AnnaBridge 126:abea610beb85 150 HAL_LPTIM_STATE_BUSY = 0x02U, /*!< An internal process is ongoing */
AnnaBridge 126:abea610beb85 151 HAL_LPTIM_STATE_TIMEOUT = 0x03U, /*!< Timeout state */
AnnaBridge 126:abea610beb85 152 HAL_LPTIM_STATE_ERROR = 0x04U /*!< Internal Process is ongoing */
AnnaBridge 126:abea610beb85 153 }HAL_LPTIM_StateTypeDef;
AnnaBridge 126:abea610beb85 154
AnnaBridge 126:abea610beb85 155 /**
AnnaBridge 126:abea610beb85 156 * @brief LPTIM handle Structure definition
AnnaBridge 126:abea610beb85 157 */
AnnaBridge 126:abea610beb85 158 typedef struct
AnnaBridge 126:abea610beb85 159 {
AnnaBridge 126:abea610beb85 160 LPTIM_TypeDef *Instance; /*!< Register base address */
AnnaBridge 126:abea610beb85 161
AnnaBridge 126:abea610beb85 162 LPTIM_InitTypeDef Init; /*!< LPTIM required parameters */
AnnaBridge 126:abea610beb85 163
AnnaBridge 126:abea610beb85 164 HAL_StatusTypeDef Status; /*!< LPTIM peripheral status */
AnnaBridge 126:abea610beb85 165
AnnaBridge 126:abea610beb85 166 HAL_LockTypeDef Lock; /*!< LPTIM locking object */
AnnaBridge 126:abea610beb85 167
AnnaBridge 126:abea610beb85 168 __IO HAL_LPTIM_StateTypeDef State; /*!< LPTIM peripheral state */
AnnaBridge 126:abea610beb85 169
AnnaBridge 126:abea610beb85 170 }LPTIM_HandleTypeDef;
AnnaBridge 126:abea610beb85 171
AnnaBridge 126:abea610beb85 172 /**
AnnaBridge 126:abea610beb85 173 * @}
AnnaBridge 126:abea610beb85 174 */
AnnaBridge 126:abea610beb85 175
AnnaBridge 126:abea610beb85 176 /* Exported constants --------------------------------------------------------*/
AnnaBridge 126:abea610beb85 177 /** @defgroup LPTIM_Exported_Constants LPTIM Exported Constants
AnnaBridge 126:abea610beb85 178 * @{
AnnaBridge 126:abea610beb85 179 */
AnnaBridge 126:abea610beb85 180
AnnaBridge 126:abea610beb85 181 /** @defgroup LPTIM_Clock_Source LPTIM Clock Source
AnnaBridge 126:abea610beb85 182 * @{
AnnaBridge 126:abea610beb85 183 */
AnnaBridge 126:abea610beb85 184 #define LPTIM_CLOCKSOURCE_APBCLOCK_LPOSC ((uint32_t)0x00U)
AnnaBridge 126:abea610beb85 185 #define LPTIM_CLOCKSOURCE_ULPTIM LPTIM_CFGR_CKSEL
AnnaBridge 126:abea610beb85 186 /**
AnnaBridge 126:abea610beb85 187 * @}
AnnaBridge 126:abea610beb85 188 */
AnnaBridge 126:abea610beb85 189
AnnaBridge 126:abea610beb85 190 /** @defgroup LPTIM_Clock_Prescaler LPTIM Clock Prescaler
AnnaBridge 126:abea610beb85 191 * @{
AnnaBridge 126:abea610beb85 192 */
AnnaBridge 126:abea610beb85 193 #define LPTIM_PRESCALER_DIV1 ((uint32_t)0x000000U)
AnnaBridge 126:abea610beb85 194 #define LPTIM_PRESCALER_DIV2 LPTIM_CFGR_PRESC_0
AnnaBridge 126:abea610beb85 195 #define LPTIM_PRESCALER_DIV4 LPTIM_CFGR_PRESC_1
AnnaBridge 126:abea610beb85 196 #define LPTIM_PRESCALER_DIV8 ((uint32_t)(LPTIM_CFGR_PRESC_0 | LPTIM_CFGR_PRESC_1))
AnnaBridge 126:abea610beb85 197 #define LPTIM_PRESCALER_DIV16 LPTIM_CFGR_PRESC_2
AnnaBridge 126:abea610beb85 198 #define LPTIM_PRESCALER_DIV32 ((uint32_t)(LPTIM_CFGR_PRESC_0 | LPTIM_CFGR_PRESC_2))
AnnaBridge 126:abea610beb85 199 #define LPTIM_PRESCALER_DIV64 ((uint32_t)(LPTIM_CFGR_PRESC_1 | LPTIM_CFGR_PRESC_2))
AnnaBridge 126:abea610beb85 200 #define LPTIM_PRESCALER_DIV128 ((uint32_t)LPTIM_CFGR_PRESC)
AnnaBridge 126:abea610beb85 201 /**
AnnaBridge 126:abea610beb85 202 * @}
AnnaBridge 126:abea610beb85 203 */
AnnaBridge 126:abea610beb85 204
AnnaBridge 126:abea610beb85 205 /** @defgroup LPTIM_Output_Polarity LPTIM Output Polarity
AnnaBridge 126:abea610beb85 206 * @{
AnnaBridge 126:abea610beb85 207 */
AnnaBridge 126:abea610beb85 208
AnnaBridge 126:abea610beb85 209 #define LPTIM_OUTPUTPOLARITY_HIGH ((uint32_t)0x00000000U)
AnnaBridge 126:abea610beb85 210 #define LPTIM_OUTPUTPOLARITY_LOW (LPTIM_CFGR_WAVPOL)
AnnaBridge 126:abea610beb85 211 /**
AnnaBridge 126:abea610beb85 212 * @}
AnnaBridge 126:abea610beb85 213 */
AnnaBridge 126:abea610beb85 214
AnnaBridge 126:abea610beb85 215 /** @defgroup LPTIM_Clock_Sample_Time LPTIM Clock Sample Time
AnnaBridge 126:abea610beb85 216 * @{
AnnaBridge 126:abea610beb85 217 */
AnnaBridge 126:abea610beb85 218 #define LPTIM_CLOCKSAMPLETIME_DIRECTTRANSITION ((uint32_t)0x00000000U)
AnnaBridge 126:abea610beb85 219 #define LPTIM_CLOCKSAMPLETIME_2TRANSITIONS LPTIM_CFGR_CKFLT_0
AnnaBridge 126:abea610beb85 220 #define LPTIM_CLOCKSAMPLETIME_4TRANSITIONS LPTIM_CFGR_CKFLT_1
AnnaBridge 126:abea610beb85 221 #define LPTIM_CLOCKSAMPLETIME_8TRANSITIONS LPTIM_CFGR_CKFLT
AnnaBridge 126:abea610beb85 222 /**
AnnaBridge 126:abea610beb85 223 * @}
AnnaBridge 126:abea610beb85 224 */
AnnaBridge 126:abea610beb85 225
AnnaBridge 126:abea610beb85 226 /** @defgroup LPTIM_Clock_Polarity LPTIM Clock Polarity
AnnaBridge 126:abea610beb85 227 * @{
AnnaBridge 126:abea610beb85 228 */
AnnaBridge 126:abea610beb85 229
AnnaBridge 126:abea610beb85 230 #define LPTIM_CLOCKPOLARITY_RISING ((uint32_t)0x00000000U)
AnnaBridge 126:abea610beb85 231 #define LPTIM_CLOCKPOLARITY_FALLING LPTIM_CFGR_CKPOL_0
AnnaBridge 126:abea610beb85 232 #define LPTIM_CLOCKPOLARITY_RISING_FALLING LPTIM_CFGR_CKPOL_1
AnnaBridge 126:abea610beb85 233 /**
AnnaBridge 126:abea610beb85 234 * @}
AnnaBridge 126:abea610beb85 235 */
AnnaBridge 126:abea610beb85 236
AnnaBridge 126:abea610beb85 237 /** @defgroup LPTIM_Trigger_Source LPTIM Trigger Source
AnnaBridge 126:abea610beb85 238 * @{
AnnaBridge 126:abea610beb85 239 */
AnnaBridge 126:abea610beb85 240 #define LPTIM_TRIGSOURCE_SOFTWARE ((uint32_t)0x0000FFFFU)
AnnaBridge 126:abea610beb85 241 #define LPTIM_TRIGSOURCE_0 ((uint32_t)0x00000000U)
AnnaBridge 126:abea610beb85 242 #define LPTIM_TRIGSOURCE_1 ((uint32_t)LPTIM_CFGR_TRIGSEL_0)
AnnaBridge 126:abea610beb85 243 #define LPTIM_TRIGSOURCE_2 LPTIM_CFGR_TRIGSEL_1
AnnaBridge 126:abea610beb85 244 #define LPTIM_TRIGSOURCE_3 ((uint32_t)LPTIM_CFGR_TRIGSEL_0 | LPTIM_CFGR_TRIGSEL_1)
AnnaBridge 126:abea610beb85 245 #define LPTIM_TRIGSOURCE_4 LPTIM_CFGR_TRIGSEL_2
AnnaBridge 126:abea610beb85 246 #define LPTIM_TRIGSOURCE_5 ((uint32_t)LPTIM_CFGR_TRIGSEL_0 | LPTIM_CFGR_TRIGSEL_2)
AnnaBridge 126:abea610beb85 247 /**
AnnaBridge 126:abea610beb85 248 * @}
AnnaBridge 126:abea610beb85 249 */
AnnaBridge 126:abea610beb85 250
AnnaBridge 126:abea610beb85 251 /** @defgroup LPTIM_External_Trigger_Polarity LPTIM External Trigger Polarity
AnnaBridge 126:abea610beb85 252 * @{
AnnaBridge 126:abea610beb85 253 */
AnnaBridge 126:abea610beb85 254 #define LPTIM_ACTIVEEDGE_RISING LPTIM_CFGR_TRIGEN_0
AnnaBridge 126:abea610beb85 255 #define LPTIM_ACTIVEEDGE_FALLING LPTIM_CFGR_TRIGEN_1
AnnaBridge 126:abea610beb85 256 #define LPTIM_ACTIVEEDGE_RISING_FALLING LPTIM_CFGR_TRIGEN
AnnaBridge 126:abea610beb85 257 /**
AnnaBridge 126:abea610beb85 258 * @}
AnnaBridge 126:abea610beb85 259 */
AnnaBridge 126:abea610beb85 260
AnnaBridge 126:abea610beb85 261 /** @defgroup LPTIM_Trigger_Sample_Time LPTIM Trigger Sample Time
AnnaBridge 126:abea610beb85 262 * @{
AnnaBridge 126:abea610beb85 263 */
AnnaBridge 126:abea610beb85 264 #define LPTIM_TRIGSAMPLETIME_DIRECTTRANSITION ((uint32_t)0x00000000U)
AnnaBridge 126:abea610beb85 265 #define LPTIM_TRIGSAMPLETIME_2TRANSITIONS LPTIM_CFGR_TRGFLT_0
AnnaBridge 126:abea610beb85 266 #define LPTIM_TRIGSAMPLETIME_4TRANSITIONS LPTIM_CFGR_TRGFLT_1
AnnaBridge 126:abea610beb85 267 #define LPTIM_TRIGSAMPLETIME_8TRANSITIONS LPTIM_CFGR_TRGFLT
AnnaBridge 126:abea610beb85 268 /**
AnnaBridge 126:abea610beb85 269 * @}
AnnaBridge 126:abea610beb85 270 */
AnnaBridge 126:abea610beb85 271
AnnaBridge 126:abea610beb85 272 /** @defgroup LPTIM_Updating_Mode LPTIM Updating Mode
AnnaBridge 126:abea610beb85 273 * @{
AnnaBridge 126:abea610beb85 274 */
AnnaBridge 126:abea610beb85 275
AnnaBridge 126:abea610beb85 276 #define LPTIM_UPDATE_IMMEDIATE ((uint32_t)0x00000000U)
AnnaBridge 126:abea610beb85 277 #define LPTIM_UPDATE_ENDOFPERIOD LPTIM_CFGR_PRELOAD
AnnaBridge 126:abea610beb85 278 /**
AnnaBridge 126:abea610beb85 279 * @}
AnnaBridge 126:abea610beb85 280 */
AnnaBridge 126:abea610beb85 281
AnnaBridge 126:abea610beb85 282 /** @defgroup LPTIM_Counter_Source LPTIM Counter Source
AnnaBridge 126:abea610beb85 283 * @{
AnnaBridge 126:abea610beb85 284 */
AnnaBridge 126:abea610beb85 285
AnnaBridge 126:abea610beb85 286 #define LPTIM_COUNTERSOURCE_INTERNAL ((uint32_t)0x00000000U)
AnnaBridge 126:abea610beb85 287 #define LPTIM_COUNTERSOURCE_EXTERNAL LPTIM_CFGR_COUNTMODE
AnnaBridge 126:abea610beb85 288 /**
AnnaBridge 126:abea610beb85 289 * @}
AnnaBridge 126:abea610beb85 290 */
AnnaBridge 126:abea610beb85 291
AnnaBridge 126:abea610beb85 292 /** @defgroup LPTIM_Flag_Definition LPTIM Flag Definition
AnnaBridge 126:abea610beb85 293 * @{
AnnaBridge 126:abea610beb85 294 */
AnnaBridge 126:abea610beb85 295
AnnaBridge 126:abea610beb85 296 #define LPTIM_FLAG_DOWN LPTIM_ISR_DOWN
AnnaBridge 126:abea610beb85 297 #define LPTIM_FLAG_UP LPTIM_ISR_UP
AnnaBridge 126:abea610beb85 298 #define LPTIM_FLAG_ARROK LPTIM_ISR_ARROK
AnnaBridge 126:abea610beb85 299 #define LPTIM_FLAG_CMPOK LPTIM_ISR_CMPOK
AnnaBridge 126:abea610beb85 300 #define LPTIM_FLAG_EXTTRIG LPTIM_ISR_EXTTRIG
AnnaBridge 126:abea610beb85 301 #define LPTIM_FLAG_ARRM LPTIM_ISR_ARRM
AnnaBridge 126:abea610beb85 302 #define LPTIM_FLAG_CMPM LPTIM_ISR_CMPM
AnnaBridge 126:abea610beb85 303 /**
AnnaBridge 126:abea610beb85 304 * @}
AnnaBridge 126:abea610beb85 305 */
AnnaBridge 126:abea610beb85 306
AnnaBridge 126:abea610beb85 307 /** @defgroup LPTIM_Interrupts_Definition LPTIM Interrupts Definition
AnnaBridge 126:abea610beb85 308 * @{
AnnaBridge 126:abea610beb85 309 */
AnnaBridge 126:abea610beb85 310
AnnaBridge 126:abea610beb85 311 #define LPTIM_IT_DOWN LPTIM_IER_DOWNIE
AnnaBridge 126:abea610beb85 312 #define LPTIM_IT_UP LPTIM_IER_UPIE
AnnaBridge 126:abea610beb85 313 #define LPTIM_IT_ARROK LPTIM_IER_ARROKIE
AnnaBridge 126:abea610beb85 314 #define LPTIM_IT_CMPOK LPTIM_IER_CMPOKIE
AnnaBridge 126:abea610beb85 315 #define LPTIM_IT_EXTTRIG LPTIM_IER_EXTTRIGIE
AnnaBridge 126:abea610beb85 316 #define LPTIM_IT_ARRM LPTIM_IER_ARRMIE
AnnaBridge 126:abea610beb85 317 #define LPTIM_IT_CMPM LPTIM_IER_CMPMIE
AnnaBridge 126:abea610beb85 318 /**
AnnaBridge 126:abea610beb85 319 * @}
AnnaBridge 126:abea610beb85 320 */
AnnaBridge 126:abea610beb85 321
AnnaBridge 126:abea610beb85 322 /**
AnnaBridge 126:abea610beb85 323 * @}
AnnaBridge 126:abea610beb85 324 */
AnnaBridge 126:abea610beb85 325
AnnaBridge 126:abea610beb85 326 /* Exported macro ------------------------------------------------------------*/
AnnaBridge 126:abea610beb85 327 /** @defgroup LPTIM_Exported_Macros LPTIM Exported Macros
AnnaBridge 126:abea610beb85 328 * @{
AnnaBridge 126:abea610beb85 329 */
AnnaBridge 126:abea610beb85 330
AnnaBridge 126:abea610beb85 331 /** @brief Reset LPTIM handle state
AnnaBridge 126:abea610beb85 332 * @param __HANDLE__: LPTIM handle
AnnaBridge 126:abea610beb85 333 * @retval None
AnnaBridge 126:abea610beb85 334 */
AnnaBridge 126:abea610beb85 335 #define __HAL_LPTIM_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_LPTIM_STATE_RESET)
AnnaBridge 126:abea610beb85 336
AnnaBridge 126:abea610beb85 337 /**
AnnaBridge 126:abea610beb85 338 * @brief Enable/Disable the LPTIM peripheral.
AnnaBridge 126:abea610beb85 339 * @param __HANDLE__: LPTIM handle
AnnaBridge 126:abea610beb85 340 * @retval None
AnnaBridge 126:abea610beb85 341 */
AnnaBridge 126:abea610beb85 342 #define __HAL_LPTIM_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= (LPTIM_CR_ENABLE))
AnnaBridge 126:abea610beb85 343 #define __HAL_LPTIM_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~(LPTIM_CR_ENABLE))
AnnaBridge 126:abea610beb85 344
AnnaBridge 126:abea610beb85 345 /**
AnnaBridge 126:abea610beb85 346 * @brief Starts the LPTIM peripheral in Continuous or in single mode.
AnnaBridge 126:abea610beb85 347 * @param __HANDLE__: DMA handle
AnnaBridge 126:abea610beb85 348 * @retval None
AnnaBridge 126:abea610beb85 349 */
AnnaBridge 126:abea610beb85 350 #define __HAL_LPTIM_START_CONTINUOUS(__HANDLE__) ((__HANDLE__)->Instance->CR |= LPTIM_CR_CNTSTRT)
AnnaBridge 126:abea610beb85 351 #define __HAL_LPTIM_START_SINGLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= LPTIM_CR_SNGSTRT)
AnnaBridge 126:abea610beb85 352
AnnaBridge 126:abea610beb85 353
AnnaBridge 126:abea610beb85 354 /**
AnnaBridge 126:abea610beb85 355 * @brief Writes the passed parameter in the Autoreload register.
AnnaBridge 126:abea610beb85 356 * @param __HANDLE__: LPTIM handle
AnnaBridge 126:abea610beb85 357 * @param __VALUE__ : Autoreload value
AnnaBridge 126:abea610beb85 358 * @retval None
AnnaBridge 126:abea610beb85 359 */
AnnaBridge 126:abea610beb85 360 #define __HAL_LPTIM_AUTORELOAD_SET(__HANDLE__ , __VALUE__) ((__HANDLE__)->Instance->ARR = (__VALUE__))
AnnaBridge 126:abea610beb85 361
AnnaBridge 126:abea610beb85 362 /**
AnnaBridge 126:abea610beb85 363 * @brief Writes the passed parameter in the Compare register.
AnnaBridge 126:abea610beb85 364 * @param __HANDLE__: LPTIM handle
AnnaBridge 126:abea610beb85 365 * @param __VALUE__ : Compare value
AnnaBridge 126:abea610beb85 366 * @retval None
AnnaBridge 126:abea610beb85 367 */
AnnaBridge 126:abea610beb85 368 #define __HAL_LPTIM_COMPARE_SET(__HANDLE__ , __VALUE__) ((__HANDLE__)->Instance->CMP = (__VALUE__))
AnnaBridge 126:abea610beb85 369
AnnaBridge 126:abea610beb85 370 /**
AnnaBridge 126:abea610beb85 371 * @brief Checks whether the specified LPTIM flag is set or not.
AnnaBridge 126:abea610beb85 372 * @param __HANDLE__: LPTIM handle
AnnaBridge 126:abea610beb85 373 * @param __FLAG__ : LPTIM flag to check
AnnaBridge 126:abea610beb85 374 * This parameter can be a value of:
AnnaBridge 126:abea610beb85 375 * @arg LPTIM_FLAG_DOWN : Counter direction change up Flag.
AnnaBridge 126:abea610beb85 376 * @arg LPTIM_FLAG_UP : Counter direction change down to up Flag.
AnnaBridge 126:abea610beb85 377 * @arg LPTIM_FLAG_ARROK : Autoreload register update OK Flag.
AnnaBridge 126:abea610beb85 378 * @arg LPTIM_FLAG_CMPOK : Compare register update OK Flag.
AnnaBridge 126:abea610beb85 379 * @arg LPTIM_FLAG_EXTTRIG : External trigger edge event Flag.
AnnaBridge 126:abea610beb85 380 * @arg LPTIM_FLAG_ARRM : Autoreload match Flag.
AnnaBridge 126:abea610beb85 381 * @arg LPTIM_FLAG_CMPM : Compare match Flag.
AnnaBridge 126:abea610beb85 382 * @retval The state of the specified flag (SET or RESET).
AnnaBridge 126:abea610beb85 383 */
AnnaBridge 126:abea610beb85 384 #define __HAL_LPTIM_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->ISR &(__FLAG__)) == (__FLAG__))
AnnaBridge 126:abea610beb85 385
AnnaBridge 126:abea610beb85 386 /**
AnnaBridge 126:abea610beb85 387 * @brief Clears the specified LPTIM flag.
AnnaBridge 126:abea610beb85 388 * @param __HANDLE__: LPTIM handle.
AnnaBridge 126:abea610beb85 389 * @param __FLAG__ : LPTIM flag to clear.
AnnaBridge 126:abea610beb85 390 * This parameter can be a value of:
AnnaBridge 126:abea610beb85 391 * @arg LPTIM_FLAG_DOWN : Counter direction change up Flag.
AnnaBridge 126:abea610beb85 392 * @arg LPTIM_FLAG_UP : Counter direction change down to up Flag.
AnnaBridge 126:abea610beb85 393 * @arg LPTIM_FLAG_ARROK : Autoreload register update OK Flag.
AnnaBridge 126:abea610beb85 394 * @arg LPTIM_FLAG_CMPOK : Compare register update OK Flag.
AnnaBridge 126:abea610beb85 395 * @arg LPTIM_FLAG_EXTTRIG : External trigger edge event Flag.
AnnaBridge 126:abea610beb85 396 * @arg LPTIM_FLAG_ARRM : Autoreload match Flag.
AnnaBridge 126:abea610beb85 397 * @arg LPTIM_FLAG_CMPM : Compare match Flag.
AnnaBridge 126:abea610beb85 398 * @retval None.
AnnaBridge 126:abea610beb85 399 */
AnnaBridge 126:abea610beb85 400 #define __HAL_LPTIM_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ICR = (__FLAG__))
AnnaBridge 126:abea610beb85 401
AnnaBridge 126:abea610beb85 402 /**
AnnaBridge 126:abea610beb85 403 * @brief Enable the specified LPTIM interrupt.
AnnaBridge 126:abea610beb85 404 * @param __HANDLE__ : LPTIM handle.
AnnaBridge 126:abea610beb85 405 * @param __INTERRUPT__ : LPTIM interrupt to set.
AnnaBridge 126:abea610beb85 406 * This parameter can be a value of:
AnnaBridge 126:abea610beb85 407 * @arg LPTIM_IT_DOWN : Counter direction change up Interrupt.
AnnaBridge 126:abea610beb85 408 * @arg LPTIM_IT_UP : Counter direction change down to up Interrupt.
AnnaBridge 126:abea610beb85 409 * @arg LPTIM_IT_ARROK : Autoreload register update OK Interrupt.
AnnaBridge 126:abea610beb85 410 * @arg LPTIM_IT_CMPOK : Compare register update OK Interrupt.
AnnaBridge 126:abea610beb85 411 * @arg LPTIM_IT_EXTTRIG : External trigger edge event Interrupt.
AnnaBridge 126:abea610beb85 412 * @arg LPTIM_IT_ARRM : Autoreload match Interrupt.
AnnaBridge 126:abea610beb85 413 * @arg LPTIM_IT_CMPM : Compare match Interrupt.
AnnaBridge 126:abea610beb85 414 * @retval None.
AnnaBridge 126:abea610beb85 415 */
AnnaBridge 126:abea610beb85 416 #define __HAL_LPTIM_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->IER |= (__INTERRUPT__))
AnnaBridge 126:abea610beb85 417
AnnaBridge 126:abea610beb85 418 /**
AnnaBridge 126:abea610beb85 419 * @brief Disable the specified LPTIM interrupt.
AnnaBridge 126:abea610beb85 420 * @param __HANDLE__ : LPTIM handle.
AnnaBridge 126:abea610beb85 421 * @param __INTERRUPT__ : LPTIM interrupt to set.
AnnaBridge 126:abea610beb85 422 * This parameter can be a value of:
AnnaBridge 126:abea610beb85 423 * @arg LPTIM_IT_DOWN : Counter direction change up Interrupt.
AnnaBridge 126:abea610beb85 424 * @arg LPTIM_IT_UP : Counter direction change down to up Interrupt.
AnnaBridge 126:abea610beb85 425 * @arg LPTIM_IT_ARROK : Autoreload register update OK Interrupt.
AnnaBridge 126:abea610beb85 426 * @arg LPTIM_IT_CMPOK : Compare register update OK Interrupt.
AnnaBridge 126:abea610beb85 427 * @arg LPTIM_IT_EXTTRIG : External trigger edge event Interrupt.
AnnaBridge 126:abea610beb85 428 * @arg LPTIM_IT_ARRM : Autoreload match Interrupt.
AnnaBridge 126:abea610beb85 429 * @arg LPTIM_IT_CMPM : Compare match Interrupt.
AnnaBridge 126:abea610beb85 430 * @retval None.
AnnaBridge 126:abea610beb85 431 */
AnnaBridge 126:abea610beb85 432 #define __HAL_LPTIM_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->IER &= (~(__INTERRUPT__)))
AnnaBridge 126:abea610beb85 433
AnnaBridge 126:abea610beb85 434 /**
AnnaBridge 126:abea610beb85 435 * @brief Checks whether the specified LPTIM interrupt is set or not.
AnnaBridge 126:abea610beb85 436 * @param __HANDLE__ : LPTIM handle.
AnnaBridge 126:abea610beb85 437 * @param __INTERRUPT__ : LPTIM interrupt to check.
AnnaBridge 126:abea610beb85 438 * This parameter can be a value of:
AnnaBridge 126:abea610beb85 439 * @arg LPTIM_IT_DOWN : Counter direction change up Interrupt.
AnnaBridge 126:abea610beb85 440 * @arg LPTIM_IT_UP : Counter direction change down to up Interrupt.
AnnaBridge 126:abea610beb85 441 * @arg LPTIM_IT_ARROK : Autoreload register update OK Interrupt.
AnnaBridge 126:abea610beb85 442 * @arg LPTIM_IT_CMPOK : Compare register update OK Interrupt.
AnnaBridge 126:abea610beb85 443 * @arg LPTIM_IT_EXTTRIG : External trigger edge event Interrupt.
AnnaBridge 126:abea610beb85 444 * @arg LPTIM_IT_ARRM : Autoreload match Interrupt.
AnnaBridge 126:abea610beb85 445 * @arg LPTIM_IT_CMPM : Compare match Interrupt.
AnnaBridge 126:abea610beb85 446 * @retval Interrupt status.
AnnaBridge 126:abea610beb85 447 */
AnnaBridge 126:abea610beb85 448
AnnaBridge 126:abea610beb85 449 #define __HAL_LPTIM_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((((__HANDLE__)->Instance->IER & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET)
AnnaBridge 126:abea610beb85 450
AnnaBridge 126:abea610beb85 451 /**
AnnaBridge 126:abea610beb85 452 * @brief Enable interrupt on the LPTIM Wake-up Timer associated Exti line.
AnnaBridge 126:abea610beb85 453 * @retval None
AnnaBridge 126:abea610beb85 454 */
AnnaBridge 126:abea610beb85 455 #define __HAL_LPTIM_WAKEUPTIMER_EXTI_ENABLE_IT() (EXTI->IMR |= LPTIM_EXTI_LINE_WAKEUPTIMER_EVENT)
AnnaBridge 126:abea610beb85 456
AnnaBridge 126:abea610beb85 457 /**
AnnaBridge 126:abea610beb85 458 * @brief Disable interrupt on the LPTIM Wake-up Timer associated Exti line.
AnnaBridge 126:abea610beb85 459 * @retval None
AnnaBridge 126:abea610beb85 460 */
AnnaBridge 126:abea610beb85 461 #define __HAL_LPTIM_WAKEUPTIMER_EXTI_DISABLE_IT() (EXTI->IMR &= ~(LPTIM_EXTI_LINE_WAKEUPTIMER_EVENT))
AnnaBridge 126:abea610beb85 462
AnnaBridge 126:abea610beb85 463 /**
AnnaBridge 126:abea610beb85 464 * @brief Enable event on the LPTIM Wake-up Timer associated Exti line.
AnnaBridge 126:abea610beb85 465 * @retval None.
AnnaBridge 126:abea610beb85 466 */
AnnaBridge 126:abea610beb85 467 #define __HAL_LPTIM_WAKEUPTIMER_EXTI_ENABLE_EVENT() (EXTI->EMR |= LPTIM_EXTI_LINE_WAKEUPTIMER_EVENT)
AnnaBridge 126:abea610beb85 468
AnnaBridge 126:abea610beb85 469 /**
AnnaBridge 126:abea610beb85 470 * @brief Disable event on the LPTIM Wake-up Timer associated Exti line.
AnnaBridge 126:abea610beb85 471 * @retval None.
AnnaBridge 126:abea610beb85 472 */
AnnaBridge 126:abea610beb85 473 #define __HAL_LPTIM_WAKEUPTIMER_EXTI_DISABLE_EVENT() (EXTI->EMR &= ~(LPTIM_EXTI_LINE_WAKEUPTIMER_EVENT))
AnnaBridge 126:abea610beb85 474
AnnaBridge 126:abea610beb85 475 /**
AnnaBridge 126:abea610beb85 476 * @brief Enable falling edge trigger on the LPTIM Wake-up Timer associated Exti line.
AnnaBridge 126:abea610beb85 477 * @retval None.
AnnaBridge 126:abea610beb85 478 */
AnnaBridge 126:abea610beb85 479 #define __HAL_LPTIM_WAKEUPTIMER_EXTI_ENABLE_FALLING_EDGE() (EXTI->FTSR |= LPTIM_EXTI_LINE_WAKEUPTIMER_EVENT)
AnnaBridge 126:abea610beb85 480
AnnaBridge 126:abea610beb85 481 /**
AnnaBridge 126:abea610beb85 482 * @brief Disable falling edge trigger on the LPTIM Wake-up Timer associated Exti line.
AnnaBridge 126:abea610beb85 483 * @retval None.
AnnaBridge 126:abea610beb85 484 */
AnnaBridge 126:abea610beb85 485 #define __HAL_LPTIM_WAKEUPTIMER_EXTI_DISABLE_FALLING_EDGE() (EXTI->FTSR &= ~(LPTIM_EXTI_LINE_WAKEUPTIMER_EVENT))
AnnaBridge 126:abea610beb85 486
AnnaBridge 126:abea610beb85 487 /**
AnnaBridge 126:abea610beb85 488 * @brief Enable rising edge trigger on the LPTIM Wake-up Timer associated Exti line.
AnnaBridge 126:abea610beb85 489 * @retval None.
AnnaBridge 126:abea610beb85 490 */
AnnaBridge 126:abea610beb85 491 #define __HAL_LPTIM_WAKEUPTIMER_EXTI_ENABLE_RISING_EDGE() (EXTI->RTSR |= LPTIM_EXTI_LINE_WAKEUPTIMER_EVENT)
AnnaBridge 126:abea610beb85 492
AnnaBridge 126:abea610beb85 493 /**
AnnaBridge 126:abea610beb85 494 * @brief Disable rising edge trigger on the LPTIM Wake-up Timer associated Exti line.
AnnaBridge 126:abea610beb85 495 * @retval None.
AnnaBridge 126:abea610beb85 496 */
AnnaBridge 126:abea610beb85 497 #define __HAL_LPTIM_WAKEUPTIMER_EXTI_DISABLE_RISING_EDGE() (EXTI->RTSR &= ~(LPTIM_EXTI_LINE_WAKEUPTIMER_EVENT))
AnnaBridge 126:abea610beb85 498
AnnaBridge 126:abea610beb85 499 /**
AnnaBridge 126:abea610beb85 500 * @brief Enable rising & falling edge trigger on the LPTIM Wake-up Timer associated Exti line.
AnnaBridge 126:abea610beb85 501 * @retval None.
AnnaBridge 126:abea610beb85 502 */
AnnaBridge 126:abea610beb85 503 #define __HAL_LPTIM_WAKEUPTIMER_EXTI_ENABLE_RISING_FALLING_EDGE() do{__HAL_LPTIM_WAKEUPTIMER_EXTI_ENABLE_RISING_EDGE();\
AnnaBridge 126:abea610beb85 504 __HAL_LPTIM_WAKEUPTIMER_EXTI_ENABLE_FALLING_EDGE();\
AnnaBridge 126:abea610beb85 505 }while(0)
AnnaBridge 126:abea610beb85 506
AnnaBridge 126:abea610beb85 507 /**
AnnaBridge 126:abea610beb85 508 * @brief Disable rising & falling edge trigger on the LPTIM Wake-up Timer associated Exti line.
AnnaBridge 126:abea610beb85 509 * This parameter can be:
AnnaBridge 126:abea610beb85 510 * @retval None.
AnnaBridge 126:abea610beb85 511 */
AnnaBridge 126:abea610beb85 512 #define __HAL_LPTIM_WAKEUPTIMER_EXTI_DISABLE_RISING_FALLING_EDGE() do{__HAL_LPTIM_WAKEUPTIMER_EXTI_DISABLE_RISING_EDGE();\
AnnaBridge 126:abea610beb85 513 __HAL_LPTIM_WAKEUPTIMER_EXTI_DISABLE_FALLING_EDGE();\
AnnaBridge 126:abea610beb85 514 }while(0)
AnnaBridge 126:abea610beb85 515
AnnaBridge 126:abea610beb85 516 /**
AnnaBridge 126:abea610beb85 517 * @brief Check whether the LPTIM Wake-up Timer associated Exti line interrupt flag is set or not.
AnnaBridge 126:abea610beb85 518 * @retval Line Status.
AnnaBridge 126:abea610beb85 519 */
AnnaBridge 126:abea610beb85 520 #define __HAL_LPTIM_WAKEUPTIMER_EXTI_GET_FLAG() (EXTI->PR & LPTIM_EXTI_LINE_WAKEUPTIMER_EVENT)
AnnaBridge 126:abea610beb85 521
AnnaBridge 126:abea610beb85 522 /**
AnnaBridge 126:abea610beb85 523 * @brief Clear the LPTIM Wake-up Timer associated Exti line flag.
AnnaBridge 126:abea610beb85 524 * @retval None.
AnnaBridge 126:abea610beb85 525 */
AnnaBridge 126:abea610beb85 526 #define __HAL_LPTIM_WAKEUPTIMER_EXTI_CLEAR_FLAG() (EXTI->PR = LPTIM_EXTI_LINE_WAKEUPTIMER_EVENT)
AnnaBridge 126:abea610beb85 527
AnnaBridge 126:abea610beb85 528 /**
AnnaBridge 126:abea610beb85 529 * @brief Generate a Software interrupt on the LPTIM Wake-up Timer associated Exti line.
AnnaBridge 126:abea610beb85 530 * @retval None.
AnnaBridge 126:abea610beb85 531 */
AnnaBridge 126:abea610beb85 532 #define __HAL_LPTIM_WAKEUPTIMER_EXTI_GENERATE_SWIT() (EXTI->SWIER |= LPTIM_EXTI_LINE_WAKEUPTIMER_EVENT)
AnnaBridge 126:abea610beb85 533
AnnaBridge 126:abea610beb85 534 /**
AnnaBridge 126:abea610beb85 535 * @}
AnnaBridge 126:abea610beb85 536 */
AnnaBridge 126:abea610beb85 537
AnnaBridge 126:abea610beb85 538 /* Exported functions --------------------------------------------------------*/
AnnaBridge 126:abea610beb85 539 /** @defgroup LPTIM_Exported_Functions LPTIM Exported Functions
AnnaBridge 126:abea610beb85 540 * @{
AnnaBridge 126:abea610beb85 541 */
AnnaBridge 126:abea610beb85 542
AnnaBridge 126:abea610beb85 543 /* Initialization/de-initialization functions ********************************/
AnnaBridge 126:abea610beb85 544 HAL_StatusTypeDef HAL_LPTIM_Init(LPTIM_HandleTypeDef *hlptim);
AnnaBridge 126:abea610beb85 545 HAL_StatusTypeDef HAL_LPTIM_DeInit(LPTIM_HandleTypeDef *hlptim);
AnnaBridge 126:abea610beb85 546
AnnaBridge 126:abea610beb85 547 /* MSP functions *************************************************************/
AnnaBridge 126:abea610beb85 548 void HAL_LPTIM_MspInit(LPTIM_HandleTypeDef *hlptim);
AnnaBridge 126:abea610beb85 549 void HAL_LPTIM_MspDeInit(LPTIM_HandleTypeDef *hlptim);
AnnaBridge 126:abea610beb85 550
AnnaBridge 126:abea610beb85 551 /* Start/Stop operation functions *********************************************/
AnnaBridge 126:abea610beb85 552 /* ################################# PWM Mode ################################*/
AnnaBridge 126:abea610beb85 553 /* Blocking mode: Polling */
AnnaBridge 126:abea610beb85 554 HAL_StatusTypeDef HAL_LPTIM_PWM_Start(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Pulse);
AnnaBridge 126:abea610beb85 555 HAL_StatusTypeDef HAL_LPTIM_PWM_Stop(LPTIM_HandleTypeDef *hlptim);
AnnaBridge 126:abea610beb85 556 /* Non-Blocking mode: Interrupt */
AnnaBridge 126:abea610beb85 557 HAL_StatusTypeDef HAL_LPTIM_PWM_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Pulse);
AnnaBridge 126:abea610beb85 558 HAL_StatusTypeDef HAL_LPTIM_PWM_Stop_IT(LPTIM_HandleTypeDef *hlptim);
AnnaBridge 126:abea610beb85 559
AnnaBridge 126:abea610beb85 560 /* ############################# One Pulse Mode ##############################*/
AnnaBridge 126:abea610beb85 561 /* Blocking mode: Polling */
AnnaBridge 126:abea610beb85 562 HAL_StatusTypeDef HAL_LPTIM_OnePulse_Start(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Pulse);
AnnaBridge 126:abea610beb85 563 HAL_StatusTypeDef HAL_LPTIM_OnePulse_Stop(LPTIM_HandleTypeDef *hlptim);
AnnaBridge 126:abea610beb85 564 /* Non-Blocking mode: Interrupt */
AnnaBridge 126:abea610beb85 565 HAL_StatusTypeDef HAL_LPTIM_OnePulse_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Pulse);
AnnaBridge 126:abea610beb85 566 HAL_StatusTypeDef HAL_LPTIM_OnePulse_Stop_IT(LPTIM_HandleTypeDef *hlptim);
AnnaBridge 126:abea610beb85 567
AnnaBridge 126:abea610beb85 568 /* ############################## Set once Mode ##############################*/
AnnaBridge 126:abea610beb85 569 /* Blocking mode: Polling */
AnnaBridge 126:abea610beb85 570 HAL_StatusTypeDef HAL_LPTIM_SetOnce_Start(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Pulse);
AnnaBridge 126:abea610beb85 571 HAL_StatusTypeDef HAL_LPTIM_SetOnce_Stop(LPTIM_HandleTypeDef *hlptim);
AnnaBridge 126:abea610beb85 572 /* Non-Blocking mode: Interrupt */
AnnaBridge 126:abea610beb85 573 HAL_StatusTypeDef HAL_LPTIM_SetOnce_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Pulse);
AnnaBridge 126:abea610beb85 574 HAL_StatusTypeDef HAL_LPTIM_SetOnce_Stop_IT(LPTIM_HandleTypeDef *hlptim);
AnnaBridge 126:abea610beb85 575
AnnaBridge 126:abea610beb85 576 /* ############################### Encoder Mode ##############################*/
AnnaBridge 126:abea610beb85 577 /* Blocking mode: Polling */
AnnaBridge 126:abea610beb85 578 HAL_StatusTypeDef HAL_LPTIM_Encoder_Start(LPTIM_HandleTypeDef *hlptim, uint32_t Period);
AnnaBridge 126:abea610beb85 579 HAL_StatusTypeDef HAL_LPTIM_Encoder_Stop(LPTIM_HandleTypeDef *hlptim);
AnnaBridge 126:abea610beb85 580 /* Non-Blocking mode: Interrupt */
AnnaBridge 126:abea610beb85 581 HAL_StatusTypeDef HAL_LPTIM_Encoder_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period);
AnnaBridge 126:abea610beb85 582 HAL_StatusTypeDef HAL_LPTIM_Encoder_Stop_IT(LPTIM_HandleTypeDef *hlptim);
AnnaBridge 126:abea610beb85 583
AnnaBridge 126:abea610beb85 584 /* ############################# Time out Mode ##############################*/
AnnaBridge 126:abea610beb85 585 /* Blocking mode: Polling */
AnnaBridge 126:abea610beb85 586 HAL_StatusTypeDef HAL_LPTIM_TimeOut_Start(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Timeout);
AnnaBridge 126:abea610beb85 587 HAL_StatusTypeDef HAL_LPTIM_TimeOut_Stop(LPTIM_HandleTypeDef *hlptim);
AnnaBridge 126:abea610beb85 588 /* Non-Blocking mode: Interrupt */
AnnaBridge 126:abea610beb85 589 HAL_StatusTypeDef HAL_LPTIM_TimeOut_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Timeout);
AnnaBridge 126:abea610beb85 590 HAL_StatusTypeDef HAL_LPTIM_TimeOut_Stop_IT(LPTIM_HandleTypeDef *hlptim);
AnnaBridge 126:abea610beb85 591
AnnaBridge 126:abea610beb85 592 /* ############################## Counter Mode ###############################*/
AnnaBridge 126:abea610beb85 593 /* Blocking mode: Polling */
AnnaBridge 126:abea610beb85 594 HAL_StatusTypeDef HAL_LPTIM_Counter_Start(LPTIM_HandleTypeDef *hlptim, uint32_t Period);
AnnaBridge 126:abea610beb85 595 HAL_StatusTypeDef HAL_LPTIM_Counter_Stop(LPTIM_HandleTypeDef *hlptim);
AnnaBridge 126:abea610beb85 596 /* Non-Blocking mode: Interrupt */
AnnaBridge 126:abea610beb85 597 HAL_StatusTypeDef HAL_LPTIM_Counter_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period);
AnnaBridge 126:abea610beb85 598 HAL_StatusTypeDef HAL_LPTIM_Counter_Stop_IT(LPTIM_HandleTypeDef *hlptim);
AnnaBridge 126:abea610beb85 599
AnnaBridge 126:abea610beb85 600 /* Reading operation functions ************************************************/
AnnaBridge 126:abea610beb85 601 uint32_t HAL_LPTIM_ReadCounter(LPTIM_HandleTypeDef *hlptim);
AnnaBridge 126:abea610beb85 602 uint32_t HAL_LPTIM_ReadAutoReload(LPTIM_HandleTypeDef *hlptim);
AnnaBridge 126:abea610beb85 603 uint32_t HAL_LPTIM_ReadCompare(LPTIM_HandleTypeDef *hlptim);
AnnaBridge 126:abea610beb85 604
AnnaBridge 126:abea610beb85 605 /* LPTIM IRQ functions *******************************************************/
AnnaBridge 126:abea610beb85 606 void HAL_LPTIM_IRQHandler(LPTIM_HandleTypeDef *hlptim);
AnnaBridge 126:abea610beb85 607
AnnaBridge 126:abea610beb85 608 /* CallBack functions ********************************************************/
AnnaBridge 126:abea610beb85 609 void HAL_LPTIM_CompareMatchCallback(LPTIM_HandleTypeDef *hlptim);
AnnaBridge 126:abea610beb85 610 void HAL_LPTIM_AutoReloadMatchCallback(LPTIM_HandleTypeDef *hlptim);
AnnaBridge 126:abea610beb85 611 void HAL_LPTIM_TriggerCallback(LPTIM_HandleTypeDef *hlptim);
AnnaBridge 126:abea610beb85 612 void HAL_LPTIM_CompareWriteCallback(LPTIM_HandleTypeDef *hlptim);
AnnaBridge 126:abea610beb85 613 void HAL_LPTIM_AutoReloadWriteCallback(LPTIM_HandleTypeDef *hlptim);
AnnaBridge 126:abea610beb85 614 void HAL_LPTIM_DirectionUpCallback(LPTIM_HandleTypeDef *hlptim);
AnnaBridge 126:abea610beb85 615 void HAL_LPTIM_DirectionDownCallback(LPTIM_HandleTypeDef *hlptim);
AnnaBridge 126:abea610beb85 616
AnnaBridge 126:abea610beb85 617 /* Peripheral State functions ************************************************/
AnnaBridge 126:abea610beb85 618 HAL_LPTIM_StateTypeDef HAL_LPTIM_GetState(LPTIM_HandleTypeDef *hlptim);
AnnaBridge 126:abea610beb85 619
AnnaBridge 126:abea610beb85 620 /**
AnnaBridge 126:abea610beb85 621 * @}
AnnaBridge 126:abea610beb85 622 */
AnnaBridge 126:abea610beb85 623
AnnaBridge 126:abea610beb85 624 /* Private types -------------------------------------------------------------*/
AnnaBridge 126:abea610beb85 625 /** @defgroup LPTIM_Private_Types LPTIM Private Types
AnnaBridge 126:abea610beb85 626 * @{
AnnaBridge 126:abea610beb85 627 */
AnnaBridge 126:abea610beb85 628
AnnaBridge 126:abea610beb85 629 /**
AnnaBridge 126:abea610beb85 630 * @}
AnnaBridge 126:abea610beb85 631 */
AnnaBridge 126:abea610beb85 632
AnnaBridge 126:abea610beb85 633 /* Private variables ---------------------------------------------------------*/
AnnaBridge 126:abea610beb85 634 /** @defgroup LPTIM_Private_Variables LPTIM Private Variables
AnnaBridge 126:abea610beb85 635 * @{
AnnaBridge 126:abea610beb85 636 */
AnnaBridge 126:abea610beb85 637
AnnaBridge 126:abea610beb85 638 /**
AnnaBridge 126:abea610beb85 639 * @}
AnnaBridge 126:abea610beb85 640 */
AnnaBridge 126:abea610beb85 641
AnnaBridge 126:abea610beb85 642 /* Private constants ---------------------------------------------------------*/
AnnaBridge 126:abea610beb85 643 /** @defgroup LPTIM_Private_Constants LPTIM Private Constants
AnnaBridge 126:abea610beb85 644 * @{
AnnaBridge 126:abea610beb85 645 */
AnnaBridge 126:abea610beb85 646
AnnaBridge 126:abea610beb85 647 /**
AnnaBridge 126:abea610beb85 648 * @}
AnnaBridge 126:abea610beb85 649 */
AnnaBridge 126:abea610beb85 650
AnnaBridge 126:abea610beb85 651 /* Private macros ------------------------------------------------------------*/
AnnaBridge 126:abea610beb85 652 /** @defgroup LPTIM_Private_Macros LPTIM Private Macros
AnnaBridge 126:abea610beb85 653 * @{
AnnaBridge 126:abea610beb85 654 */
AnnaBridge 126:abea610beb85 655
AnnaBridge 126:abea610beb85 656 #define IS_LPTIM_CLOCK_SOURCE(__SOURCE__) (((__SOURCE__) == LPTIM_CLOCKSOURCE_ULPTIM) || \
AnnaBridge 126:abea610beb85 657 ((__SOURCE__) == LPTIM_CLOCKSOURCE_APBCLOCK_LPOSC))
AnnaBridge 126:abea610beb85 658
AnnaBridge 126:abea610beb85 659 #define IS_LPTIM_CLOCK_PRESCALER(__PRESCALER__) (((__PRESCALER__) == LPTIM_PRESCALER_DIV1 ) || \
AnnaBridge 126:abea610beb85 660 ((__PRESCALER__) == LPTIM_PRESCALER_DIV2 ) || \
AnnaBridge 126:abea610beb85 661 ((__PRESCALER__) == LPTIM_PRESCALER_DIV4 ) || \
AnnaBridge 126:abea610beb85 662 ((__PRESCALER__) == LPTIM_PRESCALER_DIV8 ) || \
AnnaBridge 126:abea610beb85 663 ((__PRESCALER__) == LPTIM_PRESCALER_DIV16 ) || \
AnnaBridge 126:abea610beb85 664 ((__PRESCALER__) == LPTIM_PRESCALER_DIV32 ) || \
AnnaBridge 126:abea610beb85 665 ((__PRESCALER__) == LPTIM_PRESCALER_DIV64 ) || \
AnnaBridge 126:abea610beb85 666 ((__PRESCALER__) == LPTIM_PRESCALER_DIV128))
AnnaBridge 126:abea610beb85 667 #define IS_LPTIM_CLOCK_PRESCALERDIV1(__PRESCALER__) ((__PRESCALER__) == LPTIM_PRESCALER_DIV1)
AnnaBridge 126:abea610beb85 668
AnnaBridge 126:abea610beb85 669 #define IS_LPTIM_OUTPUT_POLARITY(__POLARITY__) (((__POLARITY__) == LPTIM_OUTPUTPOLARITY_LOW ) || \
AnnaBridge 126:abea610beb85 670 ((__POLARITY__) == LPTIM_OUTPUTPOLARITY_HIGH))
AnnaBridge 126:abea610beb85 671
AnnaBridge 126:abea610beb85 672 #define IS_LPTIM_CLOCK_SAMPLE_TIME(__SAMPLETIME__) (((__SAMPLETIME__) == LPTIM_CLOCKSAMPLETIME_DIRECTTRANSITION) || \
AnnaBridge 126:abea610beb85 673 ((__SAMPLETIME__) == LPTIM_CLOCKSAMPLETIME_2TRANSITIONS) || \
AnnaBridge 126:abea610beb85 674 ((__SAMPLETIME__) == LPTIM_CLOCKSAMPLETIME_4TRANSITIONS) || \
AnnaBridge 126:abea610beb85 675 ((__SAMPLETIME__) == LPTIM_CLOCKSAMPLETIME_8TRANSITIONS))
AnnaBridge 126:abea610beb85 676
AnnaBridge 126:abea610beb85 677 #define IS_LPTIM_CLOCK_POLARITY(__POLARITY__) (((__POLARITY__) == LPTIM_CLOCKPOLARITY_RISING) || \
AnnaBridge 126:abea610beb85 678 ((__POLARITY__) == LPTIM_CLOCKPOLARITY_FALLING) || \
AnnaBridge 126:abea610beb85 679 ((__POLARITY__) == LPTIM_CLOCKPOLARITY_RISING_FALLING))
AnnaBridge 126:abea610beb85 680
AnnaBridge 126:abea610beb85 681 #define IS_LPTIM_TRG_SOURCE(__TRIG__) (((__TRIG__) == LPTIM_TRIGSOURCE_SOFTWARE) || \
AnnaBridge 126:abea610beb85 682 ((__TRIG__) == LPTIM_TRIGSOURCE_0) || \
AnnaBridge 126:abea610beb85 683 ((__TRIG__) == LPTIM_TRIGSOURCE_1) || \
AnnaBridge 126:abea610beb85 684 ((__TRIG__) == LPTIM_TRIGSOURCE_2) || \
AnnaBridge 126:abea610beb85 685 ((__TRIG__) == LPTIM_TRIGSOURCE_3) || \
AnnaBridge 126:abea610beb85 686 ((__TRIG__) == LPTIM_TRIGSOURCE_4) || \
AnnaBridge 126:abea610beb85 687 ((__TRIG__) == LPTIM_TRIGSOURCE_5))
AnnaBridge 126:abea610beb85 688
AnnaBridge 126:abea610beb85 689 #define IS_LPTIM_EXT_TRG_POLARITY(__POLAR__) (((__POLAR__) == LPTIM_ACTIVEEDGE_RISING ) || \
AnnaBridge 126:abea610beb85 690 ((__POLAR__) == LPTIM_ACTIVEEDGE_FALLING ) || \
AnnaBridge 126:abea610beb85 691 ((__POLAR__) == LPTIM_ACTIVEEDGE_RISING_FALLING ))
AnnaBridge 126:abea610beb85 692
AnnaBridge 126:abea610beb85 693 #define IS_LPTIM_TRIG_SAMPLE_TIME(__SAMPLETIME__) (((__SAMPLETIME__) == LPTIM_TRIGSAMPLETIME_DIRECTTRANSITION) || \
AnnaBridge 126:abea610beb85 694 ((__SAMPLETIME__) == LPTIM_TRIGSAMPLETIME_2TRANSITIONS ) || \
AnnaBridge 126:abea610beb85 695 ((__SAMPLETIME__) == LPTIM_TRIGSAMPLETIME_4TRANSITIONS ) || \
AnnaBridge 126:abea610beb85 696 ((__SAMPLETIME__) == LPTIM_TRIGSAMPLETIME_8TRANSITIONS ))
AnnaBridge 126:abea610beb85 697
AnnaBridge 126:abea610beb85 698 #define IS_LPTIM_UPDATE_MODE(__MODE__) (((__MODE__) == LPTIM_UPDATE_IMMEDIATE) || \
AnnaBridge 126:abea610beb85 699 ((__MODE__) == LPTIM_UPDATE_ENDOFPERIOD))
AnnaBridge 126:abea610beb85 700
AnnaBridge 126:abea610beb85 701 #define IS_LPTIM_COUNTER_SOURCE(__SOURCE__) (((__SOURCE__) == LPTIM_COUNTERSOURCE_INTERNAL) || \
AnnaBridge 126:abea610beb85 702 ((__SOURCE__) == LPTIM_COUNTERSOURCE_EXTERNAL))
AnnaBridge 126:abea610beb85 703
AnnaBridge 126:abea610beb85 704 #define IS_LPTIM_AUTORELOAD(__AUTORELOAD__) ((__AUTORELOAD__) <= 0x0000FFFFU)
AnnaBridge 126:abea610beb85 705
AnnaBridge 126:abea610beb85 706 #define IS_LPTIM_COMPARE(__COMPARE__) ((__COMPARE__) <= 0x0000FFFFU)
AnnaBridge 126:abea610beb85 707
AnnaBridge 126:abea610beb85 708 #define IS_LPTIM_PERIOD(PERIOD) ((PERIOD) <= 0x0000FFFFU)
AnnaBridge 126:abea610beb85 709
AnnaBridge 126:abea610beb85 710 #define IS_LPTIM_PULSE(PULSE) ((PULSE) <= 0x0000FFFFU)
AnnaBridge 126:abea610beb85 711
AnnaBridge 126:abea610beb85 712 /**
AnnaBridge 126:abea610beb85 713 * @}
AnnaBridge 126:abea610beb85 714 */
AnnaBridge 126:abea610beb85 715
AnnaBridge 126:abea610beb85 716 /* Private functions ---------------------------------------------------------*/
AnnaBridge 126:abea610beb85 717 /** @defgroup LPTIM_Private_Functions LPTIM Private Functions
AnnaBridge 126:abea610beb85 718 * @{
AnnaBridge 126:abea610beb85 719 */
AnnaBridge 126:abea610beb85 720
AnnaBridge 126:abea610beb85 721 /**
AnnaBridge 126:abea610beb85 722 * @}
AnnaBridge 126:abea610beb85 723 */
AnnaBridge 126:abea610beb85 724
AnnaBridge 126:abea610beb85 725 /**
AnnaBridge 126:abea610beb85 726 * @}
AnnaBridge 126:abea610beb85 727 */
AnnaBridge 126:abea610beb85 728
AnnaBridge 126:abea610beb85 729 /**
AnnaBridge 126:abea610beb85 730 * @}
AnnaBridge 126:abea610beb85 731 */
AnnaBridge 126:abea610beb85 732
AnnaBridge 126:abea610beb85 733 #ifdef __cplusplus
AnnaBridge 126:abea610beb85 734 }
AnnaBridge 126:abea610beb85 735 #endif
AnnaBridge 126:abea610beb85 736
AnnaBridge 126:abea610beb85 737 #endif /* __STM32F7xx_HAL_LPTIM_H */
AnnaBridge 126:abea610beb85 738
AnnaBridge 126:abea610beb85 739 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/