mbed library sources, include can_api for nucleo-f091rc

Dependents:   CanNucleoF0_example

Fork of mbed-src by mbed official

Committer:
ptpaterson
Date:
Thu Jan 07 05:49:05 2016 +0000
Revision:
645:13c87cbecd54
Parent:
610:813dcc80987e
corrected freeze on CAN_RECEIVE_IT

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 573:ad23fe03a082 1 /**
mbed_official 573:ad23fe03a082 2 ******************************************************************************
mbed_official 573:ad23fe03a082 3 * @file stm32f7xx_hal_dma_ex.c
mbed_official 573:ad23fe03a082 4 * @author MCD Application Team
mbed_official 610:813dcc80987e 5 * @version V1.0.1
mbed_official 610:813dcc80987e 6 * @date 25-June-2015
mbed_official 573:ad23fe03a082 7 * @brief DMA Extension HAL module driver
mbed_official 573:ad23fe03a082 8 * This file provides firmware functions to manage the following
mbed_official 573:ad23fe03a082 9 * functionalities of the DMA Extension peripheral:
mbed_official 573:ad23fe03a082 10 * + Extended features functions
mbed_official 573:ad23fe03a082 11 *
mbed_official 573:ad23fe03a082 12 @verbatim
mbed_official 573:ad23fe03a082 13 ==============================================================================
mbed_official 573:ad23fe03a082 14 ##### How to use this driver #####
mbed_official 573:ad23fe03a082 15 ==============================================================================
mbed_official 573:ad23fe03a082 16 [..]
mbed_official 573:ad23fe03a082 17 The DMA Extension HAL driver can be used as follows:
mbed_official 610:813dcc80987e 18 (+) Start a multi buffer transfer using the HAL_DMA_MultiBufferStart() function
mbed_official 573:ad23fe03a082 19 for polling mode or HAL_DMA_MultiBufferStart_IT() for interrupt mode.
mbed_official 573:ad23fe03a082 20
mbed_official 573:ad23fe03a082 21 -@- In Memory-to-Memory transfer mode, Multi (Double) Buffer mode is not allowed.
mbed_official 573:ad23fe03a082 22 -@- When Multi (Double) Buffer mode is enabled the, transfer is circular by default.
mbed_official 573:ad23fe03a082 23 -@- In Multi (Double) buffer mode, it is possible to update the base address for
mbed_official 573:ad23fe03a082 24 the AHB memory port on the fly (DMA_SxM0AR or DMA_SxM1AR) when the stream is enabled.
mbed_official 573:ad23fe03a082 25
mbed_official 573:ad23fe03a082 26 @endverbatim
mbed_official 573:ad23fe03a082 27 ******************************************************************************
mbed_official 573:ad23fe03a082 28 * @attention
mbed_official 573:ad23fe03a082 29 *
mbed_official 573:ad23fe03a082 30 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
mbed_official 573:ad23fe03a082 31 *
mbed_official 573:ad23fe03a082 32 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 573:ad23fe03a082 33 * are permitted provided that the following conditions are met:
mbed_official 573:ad23fe03a082 34 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 573:ad23fe03a082 35 * this list of conditions and the following disclaimer.
mbed_official 573:ad23fe03a082 36 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 573:ad23fe03a082 37 * this list of conditions and the following disclaimer in the documentation
mbed_official 573:ad23fe03a082 38 * and/or other materials provided with the distribution.
mbed_official 573:ad23fe03a082 39 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 573:ad23fe03a082 40 * may be used to endorse or promote products derived from this software
mbed_official 573:ad23fe03a082 41 * without specific prior written permission.
mbed_official 573:ad23fe03a082 42 *
mbed_official 573:ad23fe03a082 43 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 573:ad23fe03a082 44 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 573:ad23fe03a082 45 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 573:ad23fe03a082 46 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 573:ad23fe03a082 47 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 573:ad23fe03a082 48 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 573:ad23fe03a082 49 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 573:ad23fe03a082 50 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 573:ad23fe03a082 51 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 573:ad23fe03a082 52 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 573:ad23fe03a082 53 *
mbed_official 573:ad23fe03a082 54 ******************************************************************************
mbed_official 573:ad23fe03a082 55 */
mbed_official 573:ad23fe03a082 56
mbed_official 573:ad23fe03a082 57 /* Includes ------------------------------------------------------------------*/
mbed_official 573:ad23fe03a082 58 #include "stm32f7xx_hal.h"
mbed_official 573:ad23fe03a082 59
mbed_official 573:ad23fe03a082 60 /** @addtogroup STM32F7xx_HAL_Driver
mbed_official 573:ad23fe03a082 61 * @{
mbed_official 573:ad23fe03a082 62 */
mbed_official 573:ad23fe03a082 63
mbed_official 573:ad23fe03a082 64 /** @defgroup DMAEx DMAEx
mbed_official 573:ad23fe03a082 65 * @brief DMA Extended HAL module driver
mbed_official 573:ad23fe03a082 66 * @{
mbed_official 573:ad23fe03a082 67 */
mbed_official 573:ad23fe03a082 68
mbed_official 573:ad23fe03a082 69 #ifdef HAL_DMA_MODULE_ENABLED
mbed_official 573:ad23fe03a082 70
mbed_official 573:ad23fe03a082 71 /* Private types -------------------------------------------------------------*/
mbed_official 573:ad23fe03a082 72 /* Private variables ---------------------------------------------------------*/
mbed_official 573:ad23fe03a082 73 /* Private Constants ---------------------------------------------------------*/
mbed_official 573:ad23fe03a082 74 /* Private macros ------------------------------------------------------------*/
mbed_official 573:ad23fe03a082 75 /* Private functions ---------------------------------------------------------*/
mbed_official 573:ad23fe03a082 76 /** @addtogroup DMAEx_Private_Functions
mbed_official 573:ad23fe03a082 77 * @{
mbed_official 573:ad23fe03a082 78 */
mbed_official 573:ad23fe03a082 79
mbed_official 573:ad23fe03a082 80 static void DMA_MultiBufferSetConfig(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength);
mbed_official 573:ad23fe03a082 81
mbed_official 573:ad23fe03a082 82 /**
mbed_official 573:ad23fe03a082 83 * @brief Set the DMA Transfer parameter.
mbed_official 573:ad23fe03a082 84 * @param hdma: pointer to a DMA_HandleTypeDef structure that contains
mbed_official 573:ad23fe03a082 85 * the configuration information for the specified DMA Stream.
mbed_official 573:ad23fe03a082 86 * @param SrcAddress: The source memory Buffer address
mbed_official 573:ad23fe03a082 87 * @param DstAddress: The destination memory Buffer address
mbed_official 573:ad23fe03a082 88 * @param DataLength: The length of data to be transferred from source to destination
mbed_official 573:ad23fe03a082 89 * @retval HAL status
mbed_official 573:ad23fe03a082 90 */
mbed_official 573:ad23fe03a082 91 static void DMA_MultiBufferSetConfig(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength)
mbed_official 573:ad23fe03a082 92 {
mbed_official 573:ad23fe03a082 93 /* Configure DMA Stream data length */
mbed_official 573:ad23fe03a082 94 hdma->Instance->NDTR = DataLength;
mbed_official 573:ad23fe03a082 95
mbed_official 573:ad23fe03a082 96 /* Peripheral to Memory */
mbed_official 573:ad23fe03a082 97 if((hdma->Init.Direction) == DMA_MEMORY_TO_PERIPH)
mbed_official 573:ad23fe03a082 98 {
mbed_official 573:ad23fe03a082 99 /* Configure DMA Stream destination address */
mbed_official 573:ad23fe03a082 100 hdma->Instance->PAR = DstAddress;
mbed_official 573:ad23fe03a082 101
mbed_official 573:ad23fe03a082 102 /* Configure DMA Stream source address */
mbed_official 573:ad23fe03a082 103 hdma->Instance->M0AR = SrcAddress;
mbed_official 573:ad23fe03a082 104 }
mbed_official 573:ad23fe03a082 105 /* Memory to Peripheral */
mbed_official 573:ad23fe03a082 106 else
mbed_official 573:ad23fe03a082 107 {
mbed_official 573:ad23fe03a082 108 /* Configure DMA Stream source address */
mbed_official 573:ad23fe03a082 109 hdma->Instance->PAR = SrcAddress;
mbed_official 573:ad23fe03a082 110
mbed_official 573:ad23fe03a082 111 /* Configure DMA Stream destination address */
mbed_official 573:ad23fe03a082 112 hdma->Instance->M0AR = DstAddress;
mbed_official 573:ad23fe03a082 113 }
mbed_official 573:ad23fe03a082 114 }
mbed_official 573:ad23fe03a082 115
mbed_official 573:ad23fe03a082 116 /**
mbed_official 573:ad23fe03a082 117 * @}
mbed_official 573:ad23fe03a082 118 */
mbed_official 573:ad23fe03a082 119
mbed_official 573:ad23fe03a082 120 /* Exported functions ---------------------------------------------------------*/
mbed_official 573:ad23fe03a082 121
mbed_official 573:ad23fe03a082 122 /** @addtogroup DMAEx_Exported_Functions
mbed_official 573:ad23fe03a082 123 * @{
mbed_official 573:ad23fe03a082 124 */
mbed_official 573:ad23fe03a082 125
mbed_official 573:ad23fe03a082 126
mbed_official 573:ad23fe03a082 127 /** @addtogroup DMAEx_Exported_Functions_Group1
mbed_official 573:ad23fe03a082 128 *
mbed_official 573:ad23fe03a082 129 @verbatim
mbed_official 573:ad23fe03a082 130 ===============================================================================
mbed_official 573:ad23fe03a082 131 ##### Extended features functions #####
mbed_official 573:ad23fe03a082 132 ===============================================================================
mbed_official 573:ad23fe03a082 133 [..] This section provides functions allowing to:
mbed_official 573:ad23fe03a082 134 (+) Configure the source, destination address and data length and
mbed_official 573:ad23fe03a082 135 Start MultiBuffer DMA transfer
mbed_official 573:ad23fe03a082 136 (+) Configure the source, destination address and data length and
mbed_official 573:ad23fe03a082 137 Start MultiBuffer DMA transfer with interrupt
mbed_official 573:ad23fe03a082 138 (+) Change on the fly the memory0 or memory1 address.
mbed_official 573:ad23fe03a082 139
mbed_official 573:ad23fe03a082 140 @endverbatim
mbed_official 573:ad23fe03a082 141 * @{
mbed_official 573:ad23fe03a082 142 */
mbed_official 573:ad23fe03a082 143
mbed_official 573:ad23fe03a082 144
mbed_official 573:ad23fe03a082 145 /**
mbed_official 573:ad23fe03a082 146 * @brief Starts the multi_buffer DMA Transfer.
mbed_official 573:ad23fe03a082 147 * @param hdma : pointer to a DMA_HandleTypeDef structure that contains
mbed_official 573:ad23fe03a082 148 * the configuration information for the specified DMA Stream.
mbed_official 573:ad23fe03a082 149 * @param SrcAddress: The source memory Buffer address
mbed_official 573:ad23fe03a082 150 * @param DstAddress: The destination memory Buffer address
mbed_official 573:ad23fe03a082 151 * @param SecondMemAddress: The second memory Buffer address in case of multi buffer Transfer
mbed_official 573:ad23fe03a082 152 * @param DataLength: The length of data to be transferred from source to destination
mbed_official 573:ad23fe03a082 153 * @retval HAL status
mbed_official 573:ad23fe03a082 154 */
mbed_official 573:ad23fe03a082 155 HAL_StatusTypeDef HAL_DMAEx_MultiBufferStart(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t SecondMemAddress, uint32_t DataLength)
mbed_official 573:ad23fe03a082 156 {
mbed_official 573:ad23fe03a082 157 /* Process Locked */
mbed_official 573:ad23fe03a082 158 __HAL_LOCK(hdma);
mbed_official 573:ad23fe03a082 159
mbed_official 573:ad23fe03a082 160 /* Current memory buffer used is Memory 0 */
mbed_official 573:ad23fe03a082 161 if((hdma->Instance->CR & DMA_SxCR_CT) == 0)
mbed_official 573:ad23fe03a082 162 {
mbed_official 573:ad23fe03a082 163 hdma->State = HAL_DMA_STATE_BUSY_MEM0;
mbed_official 573:ad23fe03a082 164 }
mbed_official 573:ad23fe03a082 165 /* Current memory buffer used is Memory 1 */
mbed_official 573:ad23fe03a082 166 else if((hdma->Instance->CR & DMA_SxCR_CT) != 0)
mbed_official 573:ad23fe03a082 167 {
mbed_official 573:ad23fe03a082 168 hdma->State = HAL_DMA_STATE_BUSY_MEM1;
mbed_official 573:ad23fe03a082 169 }
mbed_official 573:ad23fe03a082 170
mbed_official 573:ad23fe03a082 171 /* Check the parameters */
mbed_official 573:ad23fe03a082 172 assert_param(IS_DMA_BUFFER_SIZE(DataLength));
mbed_official 573:ad23fe03a082 173
mbed_official 573:ad23fe03a082 174 /* Disable the peripheral */
mbed_official 573:ad23fe03a082 175 __HAL_DMA_DISABLE(hdma);
mbed_official 573:ad23fe03a082 176
mbed_official 573:ad23fe03a082 177 /* Enable the double buffer mode */
mbed_official 573:ad23fe03a082 178 hdma->Instance->CR |= (uint32_t)DMA_SxCR_DBM;
mbed_official 573:ad23fe03a082 179
mbed_official 573:ad23fe03a082 180 /* Configure DMA Stream destination address */
mbed_official 573:ad23fe03a082 181 hdma->Instance->M1AR = SecondMemAddress;
mbed_official 573:ad23fe03a082 182
mbed_official 573:ad23fe03a082 183 /* Configure the source, destination address and the data length */
mbed_official 573:ad23fe03a082 184 DMA_MultiBufferSetConfig(hdma, SrcAddress, DstAddress, DataLength);
mbed_official 573:ad23fe03a082 185
mbed_official 573:ad23fe03a082 186 /* Enable the peripheral */
mbed_official 573:ad23fe03a082 187 __HAL_DMA_ENABLE(hdma);
mbed_official 573:ad23fe03a082 188
mbed_official 573:ad23fe03a082 189 return HAL_OK;
mbed_official 573:ad23fe03a082 190 }
mbed_official 573:ad23fe03a082 191
mbed_official 573:ad23fe03a082 192 /**
mbed_official 573:ad23fe03a082 193 * @brief Starts the multi_buffer DMA Transfer with interrupt enabled.
mbed_official 573:ad23fe03a082 194 * @param hdma: pointer to a DMA_HandleTypeDef structure that contains
mbed_official 573:ad23fe03a082 195 * the configuration information for the specified DMA Stream.
mbed_official 573:ad23fe03a082 196 * @param SrcAddress: The source memory Buffer address
mbed_official 573:ad23fe03a082 197 * @param DstAddress: The destination memory Buffer address
mbed_official 573:ad23fe03a082 198 * @param SecondMemAddress: The second memory Buffer address in case of multi buffer Transfer
mbed_official 573:ad23fe03a082 199 * @param DataLength: The length of data to be transferred from source to destination
mbed_official 573:ad23fe03a082 200 * @retval HAL status
mbed_official 573:ad23fe03a082 201 */
mbed_official 573:ad23fe03a082 202 HAL_StatusTypeDef HAL_DMAEx_MultiBufferStart_IT(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t SecondMemAddress, uint32_t DataLength)
mbed_official 573:ad23fe03a082 203 {
mbed_official 573:ad23fe03a082 204 /* Process Locked */
mbed_official 573:ad23fe03a082 205 __HAL_LOCK(hdma);
mbed_official 573:ad23fe03a082 206
mbed_official 573:ad23fe03a082 207 /* Current memory buffer used is Memory 0 */
mbed_official 573:ad23fe03a082 208 if((hdma->Instance->CR & DMA_SxCR_CT) == 0)
mbed_official 573:ad23fe03a082 209 {
mbed_official 573:ad23fe03a082 210 hdma->State = HAL_DMA_STATE_BUSY_MEM0;
mbed_official 573:ad23fe03a082 211 }
mbed_official 573:ad23fe03a082 212 /* Current memory buffer used is Memory 1 */
mbed_official 573:ad23fe03a082 213 else if((hdma->Instance->CR & DMA_SxCR_CT) != 0)
mbed_official 573:ad23fe03a082 214 {
mbed_official 573:ad23fe03a082 215 hdma->State = HAL_DMA_STATE_BUSY_MEM1;
mbed_official 573:ad23fe03a082 216 }
mbed_official 573:ad23fe03a082 217
mbed_official 573:ad23fe03a082 218 /* Check the parameters */
mbed_official 573:ad23fe03a082 219 assert_param(IS_DMA_BUFFER_SIZE(DataLength));
mbed_official 573:ad23fe03a082 220
mbed_official 573:ad23fe03a082 221 /* Disable the peripheral */
mbed_official 573:ad23fe03a082 222 __HAL_DMA_DISABLE(hdma);
mbed_official 573:ad23fe03a082 223
mbed_official 573:ad23fe03a082 224 /* Enable the Double buffer mode */
mbed_official 573:ad23fe03a082 225 hdma->Instance->CR |= (uint32_t)DMA_SxCR_DBM;
mbed_official 573:ad23fe03a082 226
mbed_official 573:ad23fe03a082 227 /* Configure DMA Stream destination address */
mbed_official 573:ad23fe03a082 228 hdma->Instance->M1AR = SecondMemAddress;
mbed_official 573:ad23fe03a082 229
mbed_official 573:ad23fe03a082 230 /* Configure the source, destination address and the data length */
mbed_official 573:ad23fe03a082 231 DMA_MultiBufferSetConfig(hdma, SrcAddress, DstAddress, DataLength);
mbed_official 573:ad23fe03a082 232
mbed_official 573:ad23fe03a082 233 /* Enable the transfer complete interrupt */
mbed_official 573:ad23fe03a082 234 __HAL_DMA_ENABLE_IT(hdma, DMA_IT_TC);
mbed_official 573:ad23fe03a082 235
mbed_official 573:ad23fe03a082 236 /* Enable the Half transfer interrupt */
mbed_official 573:ad23fe03a082 237 __HAL_DMA_ENABLE_IT(hdma, DMA_IT_HT);
mbed_official 573:ad23fe03a082 238
mbed_official 573:ad23fe03a082 239 /* Enable the transfer Error interrupt */
mbed_official 573:ad23fe03a082 240 __HAL_DMA_ENABLE_IT(hdma, DMA_IT_TE);
mbed_official 573:ad23fe03a082 241
mbed_official 573:ad23fe03a082 242 /* Enable the fifo Error interrupt */
mbed_official 573:ad23fe03a082 243 __HAL_DMA_ENABLE_IT(hdma, DMA_IT_FE);
mbed_official 573:ad23fe03a082 244
mbed_official 573:ad23fe03a082 245 /* Enable the direct mode Error interrupt */
mbed_official 573:ad23fe03a082 246 __HAL_DMA_ENABLE_IT(hdma, DMA_IT_DME);
mbed_official 573:ad23fe03a082 247
mbed_official 573:ad23fe03a082 248 /* Enable the peripheral */
mbed_official 573:ad23fe03a082 249 __HAL_DMA_ENABLE(hdma);
mbed_official 573:ad23fe03a082 250
mbed_official 573:ad23fe03a082 251 return HAL_OK;
mbed_official 573:ad23fe03a082 252 }
mbed_official 573:ad23fe03a082 253
mbed_official 573:ad23fe03a082 254 /**
mbed_official 573:ad23fe03a082 255 * @brief Change the memory0 or memory1 address on the fly.
mbed_official 573:ad23fe03a082 256 * @param hdma: pointer to a DMA_HandleTypeDef structure that contains
mbed_official 573:ad23fe03a082 257 * the configuration information for the specified DMA Stream.
mbed_official 573:ad23fe03a082 258 * @param Address: The new address
mbed_official 573:ad23fe03a082 259 * @param memory: the memory to be changed, This parameter can be one of
mbed_official 573:ad23fe03a082 260 * the following values:
mbed_official 573:ad23fe03a082 261 * MEMORY0 /
mbed_official 573:ad23fe03a082 262 * MEMORY1
mbed_official 573:ad23fe03a082 263 * @note The MEMORY0 address can be changed only when the current transfer use
mbed_official 573:ad23fe03a082 264 * MEMORY1 and the MEMORY1 address can be changed only when the current
mbed_official 573:ad23fe03a082 265 * transfer use MEMORY0.
mbed_official 573:ad23fe03a082 266 * @retval HAL status
mbed_official 573:ad23fe03a082 267 */
mbed_official 573:ad23fe03a082 268 HAL_StatusTypeDef HAL_DMAEx_ChangeMemory(DMA_HandleTypeDef *hdma, uint32_t Address, HAL_DMA_MemoryTypeDef memory)
mbed_official 573:ad23fe03a082 269 {
mbed_official 573:ad23fe03a082 270 if(memory == MEMORY0)
mbed_official 573:ad23fe03a082 271 {
mbed_official 573:ad23fe03a082 272 /* change the memory0 address */
mbed_official 573:ad23fe03a082 273 hdma->Instance->M0AR = Address;
mbed_official 573:ad23fe03a082 274 }
mbed_official 573:ad23fe03a082 275 else
mbed_official 573:ad23fe03a082 276 {
mbed_official 573:ad23fe03a082 277 /* change the memory1 address */
mbed_official 573:ad23fe03a082 278 hdma->Instance->M1AR = Address;
mbed_official 573:ad23fe03a082 279 }
mbed_official 573:ad23fe03a082 280
mbed_official 573:ad23fe03a082 281 return HAL_OK;
mbed_official 573:ad23fe03a082 282 }
mbed_official 573:ad23fe03a082 283
mbed_official 573:ad23fe03a082 284 /**
mbed_official 573:ad23fe03a082 285 * @}
mbed_official 573:ad23fe03a082 286 */
mbed_official 573:ad23fe03a082 287
mbed_official 573:ad23fe03a082 288 /**
mbed_official 573:ad23fe03a082 289 * @}
mbed_official 573:ad23fe03a082 290 */
mbed_official 573:ad23fe03a082 291
mbed_official 573:ad23fe03a082 292 #endif /* HAL_DMA_MODULE_ENABLED */
mbed_official 573:ad23fe03a082 293 /**
mbed_official 573:ad23fe03a082 294 * @}
mbed_official 573:ad23fe03a082 295 */
mbed_official 573:ad23fe03a082 296
mbed_official 573:ad23fe03a082 297 /**
mbed_official 573:ad23fe03a082 298 * @}
mbed_official 573:ad23fe03a082 299 */
mbed_official 573:ad23fe03a082 300
mbed_official 573:ad23fe03a082 301 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/