mbed library sources

Dependents:   bare

Fork of mbed-src by mbed official

Committer:
mbed_official
Date:
Wed Mar 19 10:15:22 2014 +0000
Revision:
125:23cc3068a9e4
Synchronized with git revision ace35dfba3748c7cdc102eb38ec6b9e1067c3252

Full URL: https://github.com/mbedmicro/mbed/commit/ace35dfba3748c7cdc102eb38ec6b9e1067c3252/

[NUCLEO_F302R8] Add cmsis and hal files + change F401RE clock to 84MHz

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 125:23cc3068a9e4 1 /**
mbed_official 125:23cc3068a9e4 2 ******************************************************************************
mbed_official 125:23cc3068a9e4 3 * @file stm32f30x_iwdg.c
mbed_official 125:23cc3068a9e4 4 * @author MCD Application Team
mbed_official 125:23cc3068a9e4 5 * @version V1.1.0
mbed_official 125:23cc3068a9e4 6 * @date 27-February-2014
mbed_official 125:23cc3068a9e4 7 * @brief This file provides firmware functions to manage the following
mbed_official 125:23cc3068a9e4 8 * functionalities of the Independent watchdog (IWDG) peripheral:
mbed_official 125:23cc3068a9e4 9 * + Prescaler and Counter configuration
mbed_official 125:23cc3068a9e4 10 * + IWDG activation
mbed_official 125:23cc3068a9e4 11 * + Flag management
mbed_official 125:23cc3068a9e4 12 *
mbed_official 125:23cc3068a9e4 13 @verbatim
mbed_official 125:23cc3068a9e4 14
mbed_official 125:23cc3068a9e4 15 ===============================================================================
mbed_official 125:23cc3068a9e4 16 ##### IWDG features #####
mbed_official 125:23cc3068a9e4 17 ===============================================================================
mbed_official 125:23cc3068a9e4 18 [..] The IWDG can be started by either software or hardware (configurable
mbed_official 125:23cc3068a9e4 19 through option byte).
mbed_official 125:23cc3068a9e4 20 [..] The IWDG is clocked by its own dedicated low-speed clock (LSI) and
mbed_official 125:23cc3068a9e4 21 thus stays active even if the main clock fails.
mbed_official 125:23cc3068a9e4 22 Once the IWDG is started, the LSI is forced ON and cannot be disabled
mbed_official 125:23cc3068a9e4 23 (LSI cannot be disabled too), and the counter starts counting down from
mbed_official 125:23cc3068a9e4 24 the reset value of 0xFFF. When it reaches the end of count value (0x000)
mbed_official 125:23cc3068a9e4 25 a system reset is generated.
mbed_official 125:23cc3068a9e4 26 The IWDG counter should be reloaded at regular intervals to prevent
mbed_official 125:23cc3068a9e4 27 an MCU reset.
mbed_official 125:23cc3068a9e4 28 [..] The IWDG is implemented in the VDD voltage domain that is still functional
mbed_official 125:23cc3068a9e4 29 in STOP and STANDBY mode (IWDG reset can wake-up from STANDBY).
mbed_official 125:23cc3068a9e4 30 [..] IWDGRST flag in RCC_CSR register can be used to inform when a IWDG
mbed_official 125:23cc3068a9e4 31 reset occurs.
mbed_official 125:23cc3068a9e4 32 [..] Min-max timeout value @41KHz (LSI): ~0.1ms / ~25.5s
mbed_official 125:23cc3068a9e4 33 The IWDG timeout may vary due to LSI frequency dispersion. STM32F30x
mbed_official 125:23cc3068a9e4 34 devices provide the capability to measure the LSI frequency (LSI clock
mbed_official 125:23cc3068a9e4 35 connected internally to TIM16 CH1 input capture). The measured value
mbed_official 125:23cc3068a9e4 36 can be used to have an IWDG timeout with an acceptable accuracy.
mbed_official 125:23cc3068a9e4 37 For more information, please refer to the STM32F30x Reference manual.
mbed_official 125:23cc3068a9e4 38
mbed_official 125:23cc3068a9e4 39 ##### How to use this driver #####
mbed_official 125:23cc3068a9e4 40 ===============================================================================
mbed_official 125:23cc3068a9e4 41 [..] This driver allows to use IWDG peripheral with either window option enabled
mbed_official 125:23cc3068a9e4 42 or disabled. To do so follow one of the two procedures below.
mbed_official 125:23cc3068a9e4 43 (#) Window option is enabled:
mbed_official 125:23cc3068a9e4 44 (++) Start the IWDG using IWDG_Enable() function, when the IWDG is used
mbed_official 125:23cc3068a9e4 45 in software mode (no need to enable the LSI, it will be enabled
mbed_official 125:23cc3068a9e4 46 by hardware).
mbed_official 125:23cc3068a9e4 47 (++) Enable write access to IWDG_PR and IWDG_RLR registers using
mbed_official 125:23cc3068a9e4 48 IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable) function.
mbed_official 125:23cc3068a9e4 49 (++) Configure the IWDG prescaler using IWDG_SetPrescaler() function.
mbed_official 125:23cc3068a9e4 50 (++) Configure the IWDG counter value using IWDG_SetReload() function.
mbed_official 125:23cc3068a9e4 51 This value will be loaded in the IWDG counter each time the counter
mbed_official 125:23cc3068a9e4 52 is reloaded, then the IWDG will start counting down from this value.
mbed_official 125:23cc3068a9e4 53 (++) Wait for the IWDG registers to be updated using IWDG_GetFlagStatus() function.
mbed_official 125:23cc3068a9e4 54 (++) Configure the IWDG refresh window using IWDG_SetWindowValue() function.
mbed_official 125:23cc3068a9e4 55
mbed_official 125:23cc3068a9e4 56 (#) Window option is disabled:
mbed_official 125:23cc3068a9e4 57 (++) Enable write access to IWDG_PR and IWDG_RLR registers using
mbed_official 125:23cc3068a9e4 58 IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable) function.
mbed_official 125:23cc3068a9e4 59 (++) Configure the IWDG prescaler using IWDG_SetPrescaler() function.
mbed_official 125:23cc3068a9e4 60 (++) Configure the IWDG counter value using IWDG_SetReload() function.
mbed_official 125:23cc3068a9e4 61 This value will be loaded in the IWDG counter each time the counter
mbed_official 125:23cc3068a9e4 62 is reloaded, then the IWDG will start counting down from this value.
mbed_official 125:23cc3068a9e4 63 (++) Wait for the IWDG registers to be updated using IWDG_GetFlagStatus() function.
mbed_official 125:23cc3068a9e4 64 (++) reload the IWDG counter at regular intervals during normal operation
mbed_official 125:23cc3068a9e4 65 to prevent an MCU reset, using IWDG_ReloadCounter() function.
mbed_official 125:23cc3068a9e4 66 (++) Start the IWDG using IWDG_Enable() function, when the IWDG is used
mbed_official 125:23cc3068a9e4 67 in software mode (no need to enable the LSI, it will be enabled
mbed_official 125:23cc3068a9e4 68 by hardware).
mbed_official 125:23cc3068a9e4 69
mbed_official 125:23cc3068a9e4 70 @endverbatim
mbed_official 125:23cc3068a9e4 71
mbed_official 125:23cc3068a9e4 72 ******************************************************************************
mbed_official 125:23cc3068a9e4 73 * @attention
mbed_official 125:23cc3068a9e4 74 *
mbed_official 125:23cc3068a9e4 75 * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
mbed_official 125:23cc3068a9e4 76 *
mbed_official 125:23cc3068a9e4 77 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 125:23cc3068a9e4 78 * are permitted provided that the following conditions are met:
mbed_official 125:23cc3068a9e4 79 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 125:23cc3068a9e4 80 * this list of conditions and the following disclaimer.
mbed_official 125:23cc3068a9e4 81 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 125:23cc3068a9e4 82 * this list of conditions and the following disclaimer in the documentation
mbed_official 125:23cc3068a9e4 83 * and/or other materials provided with the distribution.
mbed_official 125:23cc3068a9e4 84 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 125:23cc3068a9e4 85 * may be used to endorse or promote products derived from this software
mbed_official 125:23cc3068a9e4 86 * without specific prior written permission.
mbed_official 125:23cc3068a9e4 87 *
mbed_official 125:23cc3068a9e4 88 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 125:23cc3068a9e4 89 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 125:23cc3068a9e4 90 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 125:23cc3068a9e4 91 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 125:23cc3068a9e4 92 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 125:23cc3068a9e4 93 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 125:23cc3068a9e4 94 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 125:23cc3068a9e4 95 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 125:23cc3068a9e4 96 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 125:23cc3068a9e4 97 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 125:23cc3068a9e4 98 *
mbed_official 125:23cc3068a9e4 99 ******************************************************************************
mbed_official 125:23cc3068a9e4 100 */
mbed_official 125:23cc3068a9e4 101
mbed_official 125:23cc3068a9e4 102 /* Includes ------------------------------------------------------------------*/
mbed_official 125:23cc3068a9e4 103 #include "stm32f30x_iwdg.h"
mbed_official 125:23cc3068a9e4 104
mbed_official 125:23cc3068a9e4 105 /** @addtogroup STM32F30x_StdPeriph_Driver
mbed_official 125:23cc3068a9e4 106 * @{
mbed_official 125:23cc3068a9e4 107 */
mbed_official 125:23cc3068a9e4 108
mbed_official 125:23cc3068a9e4 109 /** @defgroup IWDG
mbed_official 125:23cc3068a9e4 110 * @brief IWDG driver modules
mbed_official 125:23cc3068a9e4 111 * @{
mbed_official 125:23cc3068a9e4 112 */
mbed_official 125:23cc3068a9e4 113
mbed_official 125:23cc3068a9e4 114 /* Private typedef -----------------------------------------------------------*/
mbed_official 125:23cc3068a9e4 115 /* Private define ------------------------------------------------------------*/
mbed_official 125:23cc3068a9e4 116 /* ---------------------- IWDG registers bit mask ----------------------------*/
mbed_official 125:23cc3068a9e4 117 /* KR register bit mask */
mbed_official 125:23cc3068a9e4 118 #define KR_KEY_RELOAD ((uint16_t)0xAAAA)
mbed_official 125:23cc3068a9e4 119 #define KR_KEY_ENABLE ((uint16_t)0xCCCC)
mbed_official 125:23cc3068a9e4 120
mbed_official 125:23cc3068a9e4 121 /* Private macro -------------------------------------------------------------*/
mbed_official 125:23cc3068a9e4 122 /* Private variables ---------------------------------------------------------*/
mbed_official 125:23cc3068a9e4 123 /* Private function prototypes -----------------------------------------------*/
mbed_official 125:23cc3068a9e4 124 /* Private functions ---------------------------------------------------------*/
mbed_official 125:23cc3068a9e4 125
mbed_official 125:23cc3068a9e4 126 /** @defgroup IWDG_Private_Functions
mbed_official 125:23cc3068a9e4 127 * @{
mbed_official 125:23cc3068a9e4 128 */
mbed_official 125:23cc3068a9e4 129
mbed_official 125:23cc3068a9e4 130 /** @defgroup IWDG_Group1 Prescaler and Counter configuration functions
mbed_official 125:23cc3068a9e4 131 * @brief Prescaler and Counter configuration functions
mbed_official 125:23cc3068a9e4 132 *
mbed_official 125:23cc3068a9e4 133 @verbatim
mbed_official 125:23cc3068a9e4 134 ===============================================================================
mbed_official 125:23cc3068a9e4 135 ##### Prescaler and Counter configuration functions #####
mbed_official 125:23cc3068a9e4 136 ===============================================================================
mbed_official 125:23cc3068a9e4 137
mbed_official 125:23cc3068a9e4 138 @endverbatim
mbed_official 125:23cc3068a9e4 139 * @{
mbed_official 125:23cc3068a9e4 140 */
mbed_official 125:23cc3068a9e4 141
mbed_official 125:23cc3068a9e4 142 /**
mbed_official 125:23cc3068a9e4 143 * @brief Enables or disables write access to IWDG_PR and IWDG_RLR registers.
mbed_official 125:23cc3068a9e4 144 * @param IWDG_WriteAccess: new state of write access to IWDG_PR and IWDG_RLR registers.
mbed_official 125:23cc3068a9e4 145 * This parameter can be one of the following values:
mbed_official 125:23cc3068a9e4 146 * @arg IWDG_WriteAccess_Enable: Enable write access to IWDG_PR and IWDG_RLR registers
mbed_official 125:23cc3068a9e4 147 * @arg IWDG_WriteAccess_Disable: Disable write access to IWDG_PR and IWDG_RLR registers
mbed_official 125:23cc3068a9e4 148 * @retval None
mbed_official 125:23cc3068a9e4 149 */
mbed_official 125:23cc3068a9e4 150 void IWDG_WriteAccessCmd(uint16_t IWDG_WriteAccess)
mbed_official 125:23cc3068a9e4 151 {
mbed_official 125:23cc3068a9e4 152 /* Check the parameters */
mbed_official 125:23cc3068a9e4 153 assert_param(IS_IWDG_WRITE_ACCESS(IWDG_WriteAccess));
mbed_official 125:23cc3068a9e4 154 IWDG->KR = IWDG_WriteAccess;
mbed_official 125:23cc3068a9e4 155 }
mbed_official 125:23cc3068a9e4 156
mbed_official 125:23cc3068a9e4 157 /**
mbed_official 125:23cc3068a9e4 158 * @brief Sets IWDG Prescaler value.
mbed_official 125:23cc3068a9e4 159 * @param IWDG_Prescaler: specifies the IWDG Prescaler value.
mbed_official 125:23cc3068a9e4 160 * This parameter can be one of the following values:
mbed_official 125:23cc3068a9e4 161 * @arg IWDG_Prescaler_4: IWDG prescaler set to 4
mbed_official 125:23cc3068a9e4 162 * @arg IWDG_Prescaler_8: IWDG prescaler set to 8
mbed_official 125:23cc3068a9e4 163 * @arg IWDG_Prescaler_16: IWDG prescaler set to 16
mbed_official 125:23cc3068a9e4 164 * @arg IWDG_Prescaler_32: IWDG prescaler set to 32
mbed_official 125:23cc3068a9e4 165 * @arg IWDG_Prescaler_64: IWDG prescaler set to 64
mbed_official 125:23cc3068a9e4 166 * @arg IWDG_Prescaler_128: IWDG prescaler set to 128
mbed_official 125:23cc3068a9e4 167 * @arg IWDG_Prescaler_256: IWDG prescaler set to 256
mbed_official 125:23cc3068a9e4 168 * @retval None
mbed_official 125:23cc3068a9e4 169 */
mbed_official 125:23cc3068a9e4 170 void IWDG_SetPrescaler(uint8_t IWDG_Prescaler)
mbed_official 125:23cc3068a9e4 171 {
mbed_official 125:23cc3068a9e4 172 /* Check the parameters */
mbed_official 125:23cc3068a9e4 173 assert_param(IS_IWDG_PRESCALER(IWDG_Prescaler));
mbed_official 125:23cc3068a9e4 174 IWDG->PR = IWDG_Prescaler;
mbed_official 125:23cc3068a9e4 175 }
mbed_official 125:23cc3068a9e4 176
mbed_official 125:23cc3068a9e4 177 /**
mbed_official 125:23cc3068a9e4 178 * @brief Sets IWDG Reload value.
mbed_official 125:23cc3068a9e4 179 * @param Reload: specifies the IWDG Reload value.
mbed_official 125:23cc3068a9e4 180 * This parameter must be a number between 0 and 0x0FFF.
mbed_official 125:23cc3068a9e4 181 * @retval None
mbed_official 125:23cc3068a9e4 182 */
mbed_official 125:23cc3068a9e4 183 void IWDG_SetReload(uint16_t Reload)
mbed_official 125:23cc3068a9e4 184 {
mbed_official 125:23cc3068a9e4 185 /* Check the parameters */
mbed_official 125:23cc3068a9e4 186 assert_param(IS_IWDG_RELOAD(Reload));
mbed_official 125:23cc3068a9e4 187 IWDG->RLR = Reload;
mbed_official 125:23cc3068a9e4 188 }
mbed_official 125:23cc3068a9e4 189
mbed_official 125:23cc3068a9e4 190 /**
mbed_official 125:23cc3068a9e4 191 * @brief Reloads IWDG counter with value defined in the reload register
mbed_official 125:23cc3068a9e4 192 * (write access to IWDG_PR and IWDG_RLR registers disabled).
mbed_official 125:23cc3068a9e4 193 * @param None
mbed_official 125:23cc3068a9e4 194 * @retval None
mbed_official 125:23cc3068a9e4 195 */
mbed_official 125:23cc3068a9e4 196 void IWDG_ReloadCounter(void)
mbed_official 125:23cc3068a9e4 197 {
mbed_official 125:23cc3068a9e4 198 IWDG->KR = KR_KEY_RELOAD;
mbed_official 125:23cc3068a9e4 199 }
mbed_official 125:23cc3068a9e4 200
mbed_official 125:23cc3068a9e4 201
mbed_official 125:23cc3068a9e4 202 /**
mbed_official 125:23cc3068a9e4 203 * @brief Sets the IWDG window value.
mbed_official 125:23cc3068a9e4 204 * @param WindowValue: specifies the window value to be compared to the downcounter.
mbed_official 125:23cc3068a9e4 205 * @retval None
mbed_official 125:23cc3068a9e4 206 */
mbed_official 125:23cc3068a9e4 207 void IWDG_SetWindowValue(uint16_t WindowValue)
mbed_official 125:23cc3068a9e4 208 {
mbed_official 125:23cc3068a9e4 209 /* Check the parameters */
mbed_official 125:23cc3068a9e4 210 assert_param(IS_IWDG_WINDOW_VALUE(WindowValue));
mbed_official 125:23cc3068a9e4 211 IWDG->WINR = WindowValue;
mbed_official 125:23cc3068a9e4 212 }
mbed_official 125:23cc3068a9e4 213
mbed_official 125:23cc3068a9e4 214 /**
mbed_official 125:23cc3068a9e4 215 * @}
mbed_official 125:23cc3068a9e4 216 */
mbed_official 125:23cc3068a9e4 217
mbed_official 125:23cc3068a9e4 218 /** @defgroup IWDG_Group2 IWDG activation function
mbed_official 125:23cc3068a9e4 219 * @brief IWDG activation function
mbed_official 125:23cc3068a9e4 220 *
mbed_official 125:23cc3068a9e4 221 @verbatim
mbed_official 125:23cc3068a9e4 222 ===============================================================================
mbed_official 125:23cc3068a9e4 223 ##### IWDG activation function #####
mbed_official 125:23cc3068a9e4 224 ===============================================================================
mbed_official 125:23cc3068a9e4 225
mbed_official 125:23cc3068a9e4 226 @endverbatim
mbed_official 125:23cc3068a9e4 227 * @{
mbed_official 125:23cc3068a9e4 228 */
mbed_official 125:23cc3068a9e4 229
mbed_official 125:23cc3068a9e4 230 /**
mbed_official 125:23cc3068a9e4 231 * @brief Enables IWDG (write access to IWDG_PR and IWDG_RLR registers disabled).
mbed_official 125:23cc3068a9e4 232 * @param None
mbed_official 125:23cc3068a9e4 233 * @retval None
mbed_official 125:23cc3068a9e4 234 */
mbed_official 125:23cc3068a9e4 235 void IWDG_Enable(void)
mbed_official 125:23cc3068a9e4 236 {
mbed_official 125:23cc3068a9e4 237 IWDG->KR = KR_KEY_ENABLE;
mbed_official 125:23cc3068a9e4 238 }
mbed_official 125:23cc3068a9e4 239
mbed_official 125:23cc3068a9e4 240 /**
mbed_official 125:23cc3068a9e4 241 * @}
mbed_official 125:23cc3068a9e4 242 */
mbed_official 125:23cc3068a9e4 243
mbed_official 125:23cc3068a9e4 244 /** @defgroup IWDG_Group3 Flag management function
mbed_official 125:23cc3068a9e4 245 * @brief Flag management function
mbed_official 125:23cc3068a9e4 246 *
mbed_official 125:23cc3068a9e4 247 @verbatim
mbed_official 125:23cc3068a9e4 248 ===============================================================================
mbed_official 125:23cc3068a9e4 249 ##### Flag management function #####
mbed_official 125:23cc3068a9e4 250 ===============================================================================
mbed_official 125:23cc3068a9e4 251
mbed_official 125:23cc3068a9e4 252 @endverbatim
mbed_official 125:23cc3068a9e4 253 * @{
mbed_official 125:23cc3068a9e4 254 */
mbed_official 125:23cc3068a9e4 255
mbed_official 125:23cc3068a9e4 256 /**
mbed_official 125:23cc3068a9e4 257 * @brief Checks whether the specified IWDG flag is set or not.
mbed_official 125:23cc3068a9e4 258 * @param IWDG_FLAG: specifies the flag to check.
mbed_official 125:23cc3068a9e4 259 * This parameter can be one of the following values:
mbed_official 125:23cc3068a9e4 260 * @arg IWDG_FLAG_PVU: Prescaler Value Update on going
mbed_official 125:23cc3068a9e4 261 * @arg IWDG_FLAG_RVU: Reload Value Update on going
mbed_official 125:23cc3068a9e4 262 * @arg IWDG_FLAG_WVU: Counter Window Value Update on going
mbed_official 125:23cc3068a9e4 263 * @retval The new state of IWDG_FLAG (SET or RESET).
mbed_official 125:23cc3068a9e4 264 */
mbed_official 125:23cc3068a9e4 265 FlagStatus IWDG_GetFlagStatus(uint16_t IWDG_FLAG)
mbed_official 125:23cc3068a9e4 266 {
mbed_official 125:23cc3068a9e4 267 FlagStatus bitstatus = RESET;
mbed_official 125:23cc3068a9e4 268 /* Check the parameters */
mbed_official 125:23cc3068a9e4 269 assert_param(IS_IWDG_FLAG(IWDG_FLAG));
mbed_official 125:23cc3068a9e4 270 if ((IWDG->SR & IWDG_FLAG) != (uint32_t)RESET)
mbed_official 125:23cc3068a9e4 271 {
mbed_official 125:23cc3068a9e4 272 bitstatus = SET;
mbed_official 125:23cc3068a9e4 273 }
mbed_official 125:23cc3068a9e4 274 else
mbed_official 125:23cc3068a9e4 275 {
mbed_official 125:23cc3068a9e4 276 bitstatus = RESET;
mbed_official 125:23cc3068a9e4 277 }
mbed_official 125:23cc3068a9e4 278 /* Return the flag status */
mbed_official 125:23cc3068a9e4 279 return bitstatus;
mbed_official 125:23cc3068a9e4 280 }
mbed_official 125:23cc3068a9e4 281
mbed_official 125:23cc3068a9e4 282 /**
mbed_official 125:23cc3068a9e4 283 * @}
mbed_official 125:23cc3068a9e4 284 */
mbed_official 125:23cc3068a9e4 285
mbed_official 125:23cc3068a9e4 286 /**
mbed_official 125:23cc3068a9e4 287 * @}
mbed_official 125:23cc3068a9e4 288 */
mbed_official 125:23cc3068a9e4 289
mbed_official 125:23cc3068a9e4 290 /**
mbed_official 125:23cc3068a9e4 291 * @}
mbed_official 125:23cc3068a9e4 292 */
mbed_official 125:23cc3068a9e4 293
mbed_official 125:23cc3068a9e4 294 /**
mbed_official 125:23cc3068a9e4 295 * @}
mbed_official 125:23cc3068a9e4 296 */
mbed_official 125:23cc3068a9e4 297
mbed_official 125:23cc3068a9e4 298 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/