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:
bogdanm
Date:
Fri Sep 12 16:41:52 2014 +0100
Revision:
89:552587b429a1
Parent:
84:0b3ab51c8877
Child:
92:4fc01daae5a5
Release 89 of the mbed library

Main changes:

- low power optimizations for Nordic targets
- code structure changes for Freescale K64F targets
- bug fixes in various backends

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bogdanm 84:0b3ab51c8877 1 /**
bogdanm 84:0b3ab51c8877 2 ******************************************************************************
bogdanm 84:0b3ab51c8877 3 * @file stm32l0xx_hal_wwdg.h
bogdanm 84:0b3ab51c8877 4 * @author MCD Application Team
bogdanm 84:0b3ab51c8877 5 * @version V1.0.0
bogdanm 84:0b3ab51c8877 6 * @date 22-April-2014
bogdanm 84:0b3ab51c8877 7 * @brief Header file of WWDG HAL module.
bogdanm 84:0b3ab51c8877 8 ******************************************************************************
bogdanm 84:0b3ab51c8877 9 * @attention
bogdanm 84:0b3ab51c8877 10 *
bogdanm 84:0b3ab51c8877 11 * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
bogdanm 84:0b3ab51c8877 12 *
bogdanm 84:0b3ab51c8877 13 * Redistribution and use in source and binary forms, with or without modification,
bogdanm 84:0b3ab51c8877 14 * are permitted provided that the following conditions are met:
bogdanm 84:0b3ab51c8877 15 * 1. Redistributions of source code must retain the above copyright notice,
bogdanm 84:0b3ab51c8877 16 * this list of conditions and the following disclaimer.
bogdanm 84:0b3ab51c8877 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
bogdanm 84:0b3ab51c8877 18 * this list of conditions and the following disclaimer in the documentation
bogdanm 84:0b3ab51c8877 19 * and/or other materials provided with the distribution.
bogdanm 84:0b3ab51c8877 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
bogdanm 84:0b3ab51c8877 21 * may be used to endorse or promote products derived from this software
bogdanm 84:0b3ab51c8877 22 * without specific prior written permission.
bogdanm 84:0b3ab51c8877 23 *
bogdanm 84:0b3ab51c8877 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
bogdanm 84:0b3ab51c8877 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
bogdanm 84:0b3ab51c8877 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
bogdanm 84:0b3ab51c8877 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
bogdanm 84:0b3ab51c8877 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
bogdanm 84:0b3ab51c8877 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
bogdanm 84:0b3ab51c8877 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
bogdanm 84:0b3ab51c8877 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
bogdanm 84:0b3ab51c8877 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
bogdanm 84:0b3ab51c8877 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
bogdanm 84:0b3ab51c8877 34 *
bogdanm 84:0b3ab51c8877 35 ******************************************************************************
bogdanm 84:0b3ab51c8877 36 */
bogdanm 84:0b3ab51c8877 37
bogdanm 84:0b3ab51c8877 38 /* Define to prevent recursive inclusion -------------------------------------*/
bogdanm 84:0b3ab51c8877 39 #ifndef __STM32L0xx_HAL_WWDG_H
bogdanm 84:0b3ab51c8877 40 #define __STM32L0xx_HAL_WWDG_H
bogdanm 84:0b3ab51c8877 41
bogdanm 84:0b3ab51c8877 42 #ifdef __cplusplus
bogdanm 84:0b3ab51c8877 43 extern "C" {
bogdanm 84:0b3ab51c8877 44 #endif
bogdanm 84:0b3ab51c8877 45
bogdanm 84:0b3ab51c8877 46 /* Includes ------------------------------------------------------------------*/
bogdanm 84:0b3ab51c8877 47 #include "stm32l0xx_hal_def.h"
bogdanm 84:0b3ab51c8877 48
bogdanm 84:0b3ab51c8877 49 /** @addtogroup STM32L0xx_HAL_Driver
bogdanm 84:0b3ab51c8877 50 * @{
bogdanm 84:0b3ab51c8877 51 */
bogdanm 84:0b3ab51c8877 52
bogdanm 84:0b3ab51c8877 53 /** @addtogroup WWDG
bogdanm 84:0b3ab51c8877 54 * @{
bogdanm 84:0b3ab51c8877 55 */
bogdanm 84:0b3ab51c8877 56
bogdanm 84:0b3ab51c8877 57 /* Exported types ------------------------------------------------------------*/
bogdanm 84:0b3ab51c8877 58
bogdanm 84:0b3ab51c8877 59 /**
bogdanm 84:0b3ab51c8877 60 * @brief WWDG HAL State Structure definition
bogdanm 84:0b3ab51c8877 61 */
bogdanm 84:0b3ab51c8877 62 typedef enum
bogdanm 84:0b3ab51c8877 63 {
bogdanm 84:0b3ab51c8877 64 HAL_WWDG_STATE_RESET = 0x00, /*!< WWDG not yet initialized or disabled */
bogdanm 84:0b3ab51c8877 65 HAL_WWDG_STATE_READY = 0x01, /*!< WWDG initialized and ready for use */
bogdanm 84:0b3ab51c8877 66 HAL_WWDG_STATE_BUSY = 0x02, /*!< WWDG internal process is ongoing */
bogdanm 84:0b3ab51c8877 67 HAL_WWDG_STATE_TIMEOUT = 0x03, /*!< WWDG timeout state */
bogdanm 84:0b3ab51c8877 68 HAL_WWDG_STATE_ERROR = 0x04 /*!< WWDG error state */
bogdanm 84:0b3ab51c8877 69
bogdanm 84:0b3ab51c8877 70 }HAL_WWDG_StateTypeDef;
bogdanm 84:0b3ab51c8877 71
bogdanm 84:0b3ab51c8877 72 /**
bogdanm 84:0b3ab51c8877 73 * @brief WWDG Init structure definition
bogdanm 84:0b3ab51c8877 74 */
bogdanm 84:0b3ab51c8877 75 typedef struct
bogdanm 84:0b3ab51c8877 76 {
bogdanm 84:0b3ab51c8877 77 uint32_t Prescaler; /*!< Specifies the prescaler value of the WWDG.
bogdanm 84:0b3ab51c8877 78 This parameter can be a value of @ref WWDG_Prescaler */
bogdanm 84:0b3ab51c8877 79
bogdanm 84:0b3ab51c8877 80 uint32_t Window; /*!< Specifies the WWDG window value to be compared to the downcounter.
bogdanm 84:0b3ab51c8877 81 This parameter must be a number lower than Max_Data = 0x80 */
bogdanm 84:0b3ab51c8877 82
bogdanm 84:0b3ab51c8877 83 uint32_t Counter; /*!< Specifies the WWDG free-running downcounter value.
bogdanm 84:0b3ab51c8877 84 This parameter must be a number between Min_Data = 0x40 and Max_Data = 0x7F */
bogdanm 84:0b3ab51c8877 85
bogdanm 84:0b3ab51c8877 86 }WWDG_InitTypeDef;
bogdanm 84:0b3ab51c8877 87
bogdanm 84:0b3ab51c8877 88 /**
bogdanm 84:0b3ab51c8877 89 * @brief WWDG handle Structure definition
bogdanm 84:0b3ab51c8877 90 */
bogdanm 84:0b3ab51c8877 91 typedef struct
bogdanm 84:0b3ab51c8877 92 {
bogdanm 84:0b3ab51c8877 93 WWDG_TypeDef *Instance; /*!< Register base address */
bogdanm 84:0b3ab51c8877 94
bogdanm 84:0b3ab51c8877 95 WWDG_InitTypeDef Init; /*!< WWDG required parameters */
bogdanm 84:0b3ab51c8877 96
bogdanm 84:0b3ab51c8877 97 HAL_LockTypeDef Lock; /*!< WWDG locking object */
bogdanm 84:0b3ab51c8877 98
bogdanm 84:0b3ab51c8877 99 __IO HAL_WWDG_StateTypeDef State; /*!< WWDG communication state */
bogdanm 84:0b3ab51c8877 100
bogdanm 84:0b3ab51c8877 101 }WWDG_HandleTypeDef;
bogdanm 84:0b3ab51c8877 102
bogdanm 84:0b3ab51c8877 103 /* Exported constants --------------------------------------------------------*/
bogdanm 84:0b3ab51c8877 104
bogdanm 84:0b3ab51c8877 105 /** @defgroup WWDG_Exported_Constants
bogdanm 84:0b3ab51c8877 106 * @{
bogdanm 84:0b3ab51c8877 107 */
bogdanm 84:0b3ab51c8877 108
bogdanm 84:0b3ab51c8877 109 /** @defgroup WWDG_BitAddress_AliasRegion
bogdanm 84:0b3ab51c8877 110 * @brief WWDG registers bit address in the alias region
bogdanm 84:0b3ab51c8877 111 * @{
bogdanm 84:0b3ab51c8877 112 */
bogdanm 84:0b3ab51c8877 113
bogdanm 84:0b3ab51c8877 114 /* --- CFR Register ---*/
bogdanm 84:0b3ab51c8877 115 /* Alias word address of EWI bit */
bogdanm 84:0b3ab51c8877 116 #define CFR_BASE (uint32_t)(WWDG_BASE + 0x04)
bogdanm 84:0b3ab51c8877 117
bogdanm 84:0b3ab51c8877 118 /**
bogdanm 84:0b3ab51c8877 119 * @}
bogdanm 84:0b3ab51c8877 120 */
bogdanm 84:0b3ab51c8877 121
bogdanm 84:0b3ab51c8877 122 /** @defgroup WWDG_Interrupt_definition
bogdanm 84:0b3ab51c8877 123 * @{
bogdanm 84:0b3ab51c8877 124 */
bogdanm 84:0b3ab51c8877 125 #define WWDG_IT_EWI ((uint32_t)WWDG_CFR_EWI)
bogdanm 84:0b3ab51c8877 126
bogdanm 84:0b3ab51c8877 127 #define IS_WWDG_IT(IT) ((IT) == WWDG_IT_EWI)
bogdanm 84:0b3ab51c8877 128
bogdanm 84:0b3ab51c8877 129 /**
bogdanm 84:0b3ab51c8877 130 * @}
bogdanm 84:0b3ab51c8877 131 */
bogdanm 84:0b3ab51c8877 132
bogdanm 84:0b3ab51c8877 133 /** @defgroup WWDG_Flag_definition
bogdanm 84:0b3ab51c8877 134 * @brief WWDG Flag definition
bogdanm 84:0b3ab51c8877 135 * @{
bogdanm 84:0b3ab51c8877 136 */
bogdanm 84:0b3ab51c8877 137 #define WWDG_FLAG_EWIF ((uint32_t)0x0001) /*!< Early wakeup interrupt flag */
bogdanm 84:0b3ab51c8877 138
bogdanm 84:0b3ab51c8877 139 #define IS_WWDG_FLAG(FLAG) ((FLAG) == WWDG_FLAG_EWIF))
bogdanm 84:0b3ab51c8877 140
bogdanm 84:0b3ab51c8877 141 /**
bogdanm 84:0b3ab51c8877 142 * @}
bogdanm 84:0b3ab51c8877 143 */
bogdanm 84:0b3ab51c8877 144
bogdanm 84:0b3ab51c8877 145 /** @defgroup WWDG_Prescaler
bogdanm 84:0b3ab51c8877 146 * @{
bogdanm 84:0b3ab51c8877 147 */
bogdanm 84:0b3ab51c8877 148 #define WWDG_PRESCALER_1 ((uint32_t)0x00000000) /*!< WWDG counter clock = (PCLK1/4096)/1 */
bogdanm 84:0b3ab51c8877 149 #define WWDG_PRESCALER_2 ((uint32_t)0x00000080) /*!< WWDG counter clock = (PCLK1/4096)/2 */
bogdanm 84:0b3ab51c8877 150 #define WWDG_PRESCALER_4 ((uint32_t)0x00000100) /*!< WWDG counter clock = (PCLK1/4096)/4 */
bogdanm 84:0b3ab51c8877 151 #define WWDG_PRESCALER_8 ((uint32_t)0x00000180) /*!< WWDG counter clock = (PCLK1/4096)/8 */
bogdanm 84:0b3ab51c8877 152
bogdanm 84:0b3ab51c8877 153 #define IS_WWDG_PRESCALER(PRESCALER) (((PRESCALER) == WWDG_PRESCALER_1) || \
bogdanm 84:0b3ab51c8877 154 ((PRESCALER) == WWDG_PRESCALER_2) || \
bogdanm 84:0b3ab51c8877 155 ((PRESCALER) == WWDG_PRESCALER_4) || \
bogdanm 84:0b3ab51c8877 156 ((PRESCALER) == WWDG_PRESCALER_8))
bogdanm 84:0b3ab51c8877 157
bogdanm 84:0b3ab51c8877 158 /**
bogdanm 84:0b3ab51c8877 159 * @}
bogdanm 84:0b3ab51c8877 160 */
bogdanm 84:0b3ab51c8877 161
bogdanm 84:0b3ab51c8877 162 /** @defgroup WWDG_Window
bogdanm 84:0b3ab51c8877 163 * @{
bogdanm 84:0b3ab51c8877 164 */
bogdanm 84:0b3ab51c8877 165 #define IS_WWDG_WINDOW(WINDOW) ((WINDOW) <= 0x7F)
bogdanm 84:0b3ab51c8877 166
bogdanm 84:0b3ab51c8877 167 /**
bogdanm 84:0b3ab51c8877 168 * @}
bogdanm 84:0b3ab51c8877 169 */
bogdanm 84:0b3ab51c8877 170
bogdanm 84:0b3ab51c8877 171 /** @defgroup WWDG_Counter
bogdanm 84:0b3ab51c8877 172 * @{
bogdanm 84:0b3ab51c8877 173 */
bogdanm 84:0b3ab51c8877 174 #define IS_WWDG_COUNTER(COUNTER) (((COUNTER) >= 0x40) && ((COUNTER) <= 0x7F))
bogdanm 84:0b3ab51c8877 175
bogdanm 84:0b3ab51c8877 176 /**
bogdanm 84:0b3ab51c8877 177 * @}
bogdanm 84:0b3ab51c8877 178 */
bogdanm 84:0b3ab51c8877 179
bogdanm 84:0b3ab51c8877 180 /**
bogdanm 84:0b3ab51c8877 181 * @}
bogdanm 84:0b3ab51c8877 182 */
bogdanm 84:0b3ab51c8877 183
bogdanm 84:0b3ab51c8877 184 /* Exported macro ------------------------------------------------------------*/
bogdanm 84:0b3ab51c8877 185
bogdanm 84:0b3ab51c8877 186 /** @defgroup WWDG_Exported_Macro
bogdanm 84:0b3ab51c8877 187 * @{
bogdanm 84:0b3ab51c8877 188 */
bogdanm 84:0b3ab51c8877 189
bogdanm 84:0b3ab51c8877 190 /** @brief Reset WWDG handle state
bogdanm 84:0b3ab51c8877 191 * @param __HANDLE__: WWDG handle
bogdanm 84:0b3ab51c8877 192 * @retval None
bogdanm 84:0b3ab51c8877 193 */
bogdanm 84:0b3ab51c8877 194 #define __HAL_WWDG_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_WWDG_STATE_RESET)
bogdanm 84:0b3ab51c8877 195
bogdanm 84:0b3ab51c8877 196 /**
bogdanm 84:0b3ab51c8877 197 * @brief Enables the WWDG peripheral.
bogdanm 84:0b3ab51c8877 198 * @param __HANDLE__: WWDG handle
bogdanm 84:0b3ab51c8877 199 * @retval None
bogdanm 84:0b3ab51c8877 200 */
bogdanm 84:0b3ab51c8877 201 #define __HAL_WWDG_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= WWDG_CR_WDGA)
bogdanm 84:0b3ab51c8877 202
bogdanm 84:0b3ab51c8877 203 /**
bogdanm 84:0b3ab51c8877 204 * @brief Gets the selected WWDG's flag status.
bogdanm 84:0b3ab51c8877 205 * @param __HANDLE__: WWDG handle
bogdanm 84:0b3ab51c8877 206 * @param __FLAG__: specifies the flag to check.
bogdanm 84:0b3ab51c8877 207 * This parameter can be one of the following values:
bogdanm 84:0b3ab51c8877 208 * @arg WWDG_FLAG_EWIF: Early wakeup interrupt flag
bogdanm 84:0b3ab51c8877 209 * @retval The new state of WWDG_FLAG (SET or RESET).
bogdanm 84:0b3ab51c8877 210 */
bogdanm 84:0b3ab51c8877 211 #define __HAL_WWDG_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->SR & (__FLAG__)) == (__FLAG__))
bogdanm 84:0b3ab51c8877 212
bogdanm 84:0b3ab51c8877 213 /**
bogdanm 84:0b3ab51c8877 214 * @brief Clears the WWDG's pending flags.
bogdanm 84:0b3ab51c8877 215 * @param __HANDLE__: WWDG handle
bogdanm 84:0b3ab51c8877 216 * @param __FLAG__: specifies the flag to clear.
bogdanm 84:0b3ab51c8877 217 * This parameter can be one of the following values:
bogdanm 84:0b3ab51c8877 218 * @arg WWDG_FLAG_EWIF: Early wakeup interrupt flag
bogdanm 84:0b3ab51c8877 219 * @retval None
bogdanm 84:0b3ab51c8877 220 */
bogdanm 84:0b3ab51c8877 221 #define __HAL_WWDG_CLEAR_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->SR) &= ~(__FLAG__))
bogdanm 84:0b3ab51c8877 222
bogdanm 84:0b3ab51c8877 223 /**
bogdanm 84:0b3ab51c8877 224 * @brief Enables the WWDG early wakeup interrupt.
bogdanm 84:0b3ab51c8877 225 * @param __INTERRUPT__: specifies the interrupt to enable.
bogdanm 84:0b3ab51c8877 226 * This parameter can be one of the following values:
bogdanm 84:0b3ab51c8877 227 * @arg WWDG_IT_EWI: Early wakeup interrupt
bogdanm 84:0b3ab51c8877 228 * @note Once enabled this interrupt cannot be disabled except by a system reset.
bogdanm 84:0b3ab51c8877 229 * @retval None
bogdanm 84:0b3ab51c8877 230 */
bogdanm 84:0b3ab51c8877 231 #define __HAL_WWDG_ENABLE_IT(__INTERRUPT__) (*(__IO uint32_t *) CFR_BASE |= (__INTERRUPT__))
bogdanm 84:0b3ab51c8877 232
bogdanm 84:0b3ab51c8877 233 /**
bogdanm 84:0b3ab51c8877 234 * @}
bogdanm 84:0b3ab51c8877 235 */
bogdanm 84:0b3ab51c8877 236
bogdanm 84:0b3ab51c8877 237 /* Exported functions --------------------------------------------------------*/
bogdanm 84:0b3ab51c8877 238
bogdanm 84:0b3ab51c8877 239 /* Initialization/de-initialization functions **********************************/
bogdanm 84:0b3ab51c8877 240 HAL_StatusTypeDef HAL_WWDG_Init(WWDG_HandleTypeDef *hwwdg);
bogdanm 84:0b3ab51c8877 241 HAL_StatusTypeDef HAL_WWDG_DeInit(WWDG_HandleTypeDef *hwwdg);
bogdanm 84:0b3ab51c8877 242 void HAL_WWDG_MspInit(WWDG_HandleTypeDef *hwwdg);
bogdanm 84:0b3ab51c8877 243 void HAL_WWDG_MspDeInit(WWDG_HandleTypeDef *hwwdg);
bogdanm 84:0b3ab51c8877 244 void HAL_WWDG_WakeupCallback(WWDG_HandleTypeDef* hwwdg);
bogdanm 84:0b3ab51c8877 245
bogdanm 84:0b3ab51c8877 246 /* I/O operation functions ******************************************************/
bogdanm 84:0b3ab51c8877 247 HAL_StatusTypeDef HAL_WWDG_Start(WWDG_HandleTypeDef *hwwdg);
bogdanm 84:0b3ab51c8877 248 HAL_StatusTypeDef HAL_WWDG_Start_IT(WWDG_HandleTypeDef *hwwdg);
bogdanm 84:0b3ab51c8877 249 HAL_StatusTypeDef HAL_WWDG_Refresh(WWDG_HandleTypeDef *hwwdg, uint32_t Counter);
bogdanm 84:0b3ab51c8877 250 void HAL_WWDG_IRQHandler(WWDG_HandleTypeDef *hwwdg);
bogdanm 84:0b3ab51c8877 251
bogdanm 84:0b3ab51c8877 252 /* Peripheral State functions **************************************************/
bogdanm 84:0b3ab51c8877 253 HAL_WWDG_StateTypeDef HAL_WWDG_GetState(WWDG_HandleTypeDef *hwwdg);
bogdanm 84:0b3ab51c8877 254
bogdanm 84:0b3ab51c8877 255 /**
bogdanm 84:0b3ab51c8877 256 * @}
bogdanm 84:0b3ab51c8877 257 */
bogdanm 84:0b3ab51c8877 258
bogdanm 84:0b3ab51c8877 259 /**
bogdanm 84:0b3ab51c8877 260 * @}
bogdanm 84:0b3ab51c8877 261 */
bogdanm 84:0b3ab51c8877 262
bogdanm 84:0b3ab51c8877 263 #ifdef __cplusplus
bogdanm 84:0b3ab51c8877 264 }
bogdanm 84:0b3ab51c8877 265 #endif
bogdanm 84:0b3ab51c8877 266
bogdanm 84:0b3ab51c8877 267 #endif /* __STM32L0xx_HAL_WWDG_H */
bogdanm 84:0b3ab51c8877 268
bogdanm 84:0b3ab51c8877 269 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/