mbed library sources. Supersedes mbed-src.

Dependents:   Nucleo_Hello_Encoder BLE_iBeaconScan AM1805_DEMO DISCO-F429ZI_ExportTemplate1 ... more

Committer:
AnnaBridge
Date:
Wed Feb 20 22:31:08 2019 +0000
Revision:
189:f392fc9709a3
Parent:
182:a56a73fd2a6f
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 167:e84263d55307 1 /**
AnnaBridge 167:e84263d55307 2 ******************************************************************************
AnnaBridge 167:e84263d55307 3 * @file stm32f4xx_ll_i2c.c
AnnaBridge 167:e84263d55307 4 * @author MCD Application Team
AnnaBridge 167:e84263d55307 5 * @brief I2C LL module driver.
AnnaBridge 167:e84263d55307 6 ******************************************************************************
AnnaBridge 167:e84263d55307 7 * @attention
AnnaBridge 167:e84263d55307 8 *
AnnaBridge 167:e84263d55307 9 * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
AnnaBridge 167:e84263d55307 10 *
AnnaBridge 167:e84263d55307 11 * Redistribution and use in source and binary forms, with or without modification,
AnnaBridge 167:e84263d55307 12 * are permitted provided that the following conditions are met:
AnnaBridge 167:e84263d55307 13 * 1. Redistributions of source code must retain the above copyright notice,
AnnaBridge 167:e84263d55307 14 * this list of conditions and the following disclaimer.
AnnaBridge 167:e84263d55307 15 * 2. Redistributions in binary form must reproduce the above copyright notice,
AnnaBridge 167:e84263d55307 16 * this list of conditions and the following disclaimer in the documentation
AnnaBridge 167:e84263d55307 17 * and/or other materials provided with the distribution.
AnnaBridge 167:e84263d55307 18 * 3. Neither the name of STMicroelectronics nor the names of its contributors
AnnaBridge 167:e84263d55307 19 * may be used to endorse or promote products derived from this software
AnnaBridge 167:e84263d55307 20 * without specific prior written permission.
AnnaBridge 167:e84263d55307 21 *
AnnaBridge 167:e84263d55307 22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AnnaBridge 167:e84263d55307 23 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
AnnaBridge 167:e84263d55307 24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
AnnaBridge 167:e84263d55307 25 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
AnnaBridge 167:e84263d55307 26 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
AnnaBridge 167:e84263d55307 27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
AnnaBridge 167:e84263d55307 28 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
AnnaBridge 167:e84263d55307 29 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
AnnaBridge 167:e84263d55307 30 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
AnnaBridge 167:e84263d55307 31 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
AnnaBridge 167:e84263d55307 32 *
AnnaBridge 167:e84263d55307 33 ******************************************************************************
AnnaBridge 167:e84263d55307 34 */
AnnaBridge 167:e84263d55307 35 #if defined(USE_FULL_LL_DRIVER)
AnnaBridge 167:e84263d55307 36
AnnaBridge 167:e84263d55307 37 /* Includes ------------------------------------------------------------------*/
AnnaBridge 167:e84263d55307 38 #include "stm32f4xx_ll_i2c.h"
AnnaBridge 167:e84263d55307 39 #include "stm32f4xx_ll_bus.h"
AnnaBridge 167:e84263d55307 40 #include "stm32f4xx_ll_rcc.h"
AnnaBridge 167:e84263d55307 41 #ifdef USE_FULL_ASSERT
AnnaBridge 167:e84263d55307 42 #include "stm32_assert.h"
AnnaBridge 167:e84263d55307 43 #else
AnnaBridge 167:e84263d55307 44 #define assert_param(expr) ((void)0U)
AnnaBridge 167:e84263d55307 45 #endif
AnnaBridge 167:e84263d55307 46
AnnaBridge 167:e84263d55307 47 /** @addtogroup STM32F4xx_LL_Driver
AnnaBridge 167:e84263d55307 48 * @{
AnnaBridge 167:e84263d55307 49 */
AnnaBridge 167:e84263d55307 50
AnnaBridge 167:e84263d55307 51 #if defined (I2C1) || defined (I2C2) || defined (I2C3)
AnnaBridge 167:e84263d55307 52
AnnaBridge 167:e84263d55307 53 /** @defgroup I2C_LL I2C
AnnaBridge 167:e84263d55307 54 * @{
AnnaBridge 167:e84263d55307 55 */
AnnaBridge 167:e84263d55307 56
AnnaBridge 167:e84263d55307 57 /* Private types -------------------------------------------------------------*/
AnnaBridge 167:e84263d55307 58 /* Private variables ---------------------------------------------------------*/
AnnaBridge 167:e84263d55307 59 /* Private constants ---------------------------------------------------------*/
AnnaBridge 167:e84263d55307 60 /* Private macros ------------------------------------------------------------*/
AnnaBridge 167:e84263d55307 61 /** @addtogroup I2C_LL_Private_Macros
AnnaBridge 167:e84263d55307 62 * @{
AnnaBridge 167:e84263d55307 63 */
AnnaBridge 167:e84263d55307 64
AnnaBridge 167:e84263d55307 65 #define IS_LL_I2C_PERIPHERAL_MODE(__VALUE__) (((__VALUE__) == LL_I2C_MODE_I2C) || \
AnnaBridge 167:e84263d55307 66 ((__VALUE__) == LL_I2C_MODE_SMBUS_HOST) || \
AnnaBridge 167:e84263d55307 67 ((__VALUE__) == LL_I2C_MODE_SMBUS_DEVICE) || \
AnnaBridge 167:e84263d55307 68 ((__VALUE__) == LL_I2C_MODE_SMBUS_DEVICE_ARP))
AnnaBridge 167:e84263d55307 69
AnnaBridge 182:a56a73fd2a6f 70 #define IS_LL_I2C_CLOCK_SPEED(__VALUE__) (((__VALUE__) > 0U) && ((__VALUE__) <= LL_I2C_MAX_SPEED_FAST))
AnnaBridge 167:e84263d55307 71
AnnaBridge 182:a56a73fd2a6f 72 #define IS_LL_I2C_DUTY_CYCLE(__VALUE__) (((__VALUE__) == LL_I2C_DUTYCYCLE_2) || \
AnnaBridge 167:e84263d55307 73 ((__VALUE__) == LL_I2C_DUTYCYCLE_16_9))
AnnaBridge 167:e84263d55307 74
AnnaBridge 167:e84263d55307 75 #if defined(I2C_FLTR_ANOFF)&&defined(I2C_FLTR_DNF)
AnnaBridge 167:e84263d55307 76 #define IS_LL_I2C_ANALOG_FILTER(__VALUE__) (((__VALUE__) == LL_I2C_ANALOGFILTER_ENABLE) || \
AnnaBridge 167:e84263d55307 77 ((__VALUE__) == LL_I2C_ANALOGFILTER_DISABLE))
AnnaBridge 167:e84263d55307 78
AnnaBridge 167:e84263d55307 79 #define IS_LL_I2C_DIGITAL_FILTER(__VALUE__) ((__VALUE__) <= 0x0000000FU)
AnnaBridge 167:e84263d55307 80
AnnaBridge 167:e84263d55307 81 #endif
AnnaBridge 167:e84263d55307 82 #define IS_LL_I2C_OWN_ADDRESS1(__VALUE__) ((__VALUE__) <= 0x000003FFU)
AnnaBridge 167:e84263d55307 83
AnnaBridge 167:e84263d55307 84 #define IS_LL_I2C_TYPE_ACKNOWLEDGE(__VALUE__) (((__VALUE__) == LL_I2C_ACK) || \
AnnaBridge 167:e84263d55307 85 ((__VALUE__) == LL_I2C_NACK))
AnnaBridge 167:e84263d55307 86
AnnaBridge 167:e84263d55307 87 #define IS_LL_I2C_OWN_ADDRSIZE(__VALUE__) (((__VALUE__) == LL_I2C_OWNADDRESS1_7BIT) || \
AnnaBridge 167:e84263d55307 88 ((__VALUE__) == LL_I2C_OWNADDRESS1_10BIT))
AnnaBridge 167:e84263d55307 89 /**
AnnaBridge 167:e84263d55307 90 * @}
AnnaBridge 167:e84263d55307 91 */
AnnaBridge 167:e84263d55307 92
AnnaBridge 167:e84263d55307 93 /* Private function prototypes -----------------------------------------------*/
AnnaBridge 167:e84263d55307 94
AnnaBridge 167:e84263d55307 95 /* Exported functions --------------------------------------------------------*/
AnnaBridge 167:e84263d55307 96 /** @addtogroup I2C_LL_Exported_Functions
AnnaBridge 167:e84263d55307 97 * @{
AnnaBridge 167:e84263d55307 98 */
AnnaBridge 167:e84263d55307 99
AnnaBridge 167:e84263d55307 100 /** @addtogroup I2C_LL_EF_Init
AnnaBridge 167:e84263d55307 101 * @{
AnnaBridge 167:e84263d55307 102 */
AnnaBridge 167:e84263d55307 103
AnnaBridge 167:e84263d55307 104 /**
AnnaBridge 167:e84263d55307 105 * @brief De-initialize the I2C registers to their default reset values.
AnnaBridge 167:e84263d55307 106 * @param I2Cx I2C Instance.
AnnaBridge 167:e84263d55307 107 * @retval An ErrorStatus enumeration value:
AnnaBridge 167:e84263d55307 108 * - SUCCESS: I2C registers are de-initialized
AnnaBridge 167:e84263d55307 109 * - ERROR: I2C registers are not de-initialized
AnnaBridge 167:e84263d55307 110 */
AnnaBridge 167:e84263d55307 111 uint32_t LL_I2C_DeInit(I2C_TypeDef *I2Cx)
AnnaBridge 167:e84263d55307 112 {
AnnaBridge 167:e84263d55307 113 ErrorStatus status = SUCCESS;
AnnaBridge 167:e84263d55307 114
AnnaBridge 167:e84263d55307 115 /* Check the I2C Instance I2Cx */
AnnaBridge 167:e84263d55307 116 assert_param(IS_I2C_ALL_INSTANCE(I2Cx));
AnnaBridge 167:e84263d55307 117
AnnaBridge 167:e84263d55307 118 if (I2Cx == I2C1)
AnnaBridge 167:e84263d55307 119 {
AnnaBridge 167:e84263d55307 120 /* Force reset of I2C clock */
AnnaBridge 167:e84263d55307 121 LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_I2C1);
AnnaBridge 167:e84263d55307 122
AnnaBridge 167:e84263d55307 123 /* Release reset of I2C clock */
AnnaBridge 167:e84263d55307 124 LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_I2C1);
AnnaBridge 167:e84263d55307 125 }
AnnaBridge 167:e84263d55307 126 else if (I2Cx == I2C2)
AnnaBridge 167:e84263d55307 127 {
AnnaBridge 167:e84263d55307 128 /* Force reset of I2C clock */
AnnaBridge 167:e84263d55307 129 LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_I2C2);
AnnaBridge 167:e84263d55307 130
AnnaBridge 167:e84263d55307 131 /* Release reset of I2C clock */
AnnaBridge 167:e84263d55307 132 LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_I2C2);
AnnaBridge 167:e84263d55307 133
AnnaBridge 167:e84263d55307 134 }
AnnaBridge 167:e84263d55307 135 #if defined(I2C3)
AnnaBridge 167:e84263d55307 136 else if (I2Cx == I2C3)
AnnaBridge 167:e84263d55307 137 {
AnnaBridge 167:e84263d55307 138 /* Force reset of I2C clock */
AnnaBridge 167:e84263d55307 139 LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_I2C3);
AnnaBridge 167:e84263d55307 140
AnnaBridge 167:e84263d55307 141 /* Release reset of I2C clock */
AnnaBridge 167:e84263d55307 142 LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_I2C3);
AnnaBridge 167:e84263d55307 143 }
AnnaBridge 167:e84263d55307 144 #endif
AnnaBridge 167:e84263d55307 145 else
AnnaBridge 167:e84263d55307 146 {
AnnaBridge 167:e84263d55307 147 status = ERROR;
AnnaBridge 167:e84263d55307 148 }
AnnaBridge 167:e84263d55307 149
AnnaBridge 167:e84263d55307 150 return status;
AnnaBridge 167:e84263d55307 151 }
AnnaBridge 167:e84263d55307 152
AnnaBridge 167:e84263d55307 153 /**
AnnaBridge 167:e84263d55307 154 * @brief Initialize the I2C registers according to the specified parameters in I2C_InitStruct.
AnnaBridge 167:e84263d55307 155 * @param I2Cx I2C Instance.
AnnaBridge 167:e84263d55307 156 * @param I2C_InitStruct pointer to a @ref LL_I2C_InitTypeDef structure.
AnnaBridge 167:e84263d55307 157 * @retval An ErrorStatus enumeration value:
AnnaBridge 167:e84263d55307 158 * - SUCCESS: I2C registers are initialized
AnnaBridge 167:e84263d55307 159 * - ERROR: Not applicable
AnnaBridge 167:e84263d55307 160 */
AnnaBridge 167:e84263d55307 161 uint32_t LL_I2C_Init(I2C_TypeDef *I2Cx, LL_I2C_InitTypeDef *I2C_InitStruct)
AnnaBridge 167:e84263d55307 162 {
AnnaBridge 167:e84263d55307 163 LL_RCC_ClocksTypeDef rcc_clocks;
AnnaBridge 167:e84263d55307 164
AnnaBridge 167:e84263d55307 165 /* Check the I2C Instance I2Cx */
AnnaBridge 167:e84263d55307 166 assert_param(IS_I2C_ALL_INSTANCE(I2Cx));
AnnaBridge 167:e84263d55307 167
AnnaBridge 167:e84263d55307 168 /* Check the I2C parameters from I2C_InitStruct */
AnnaBridge 167:e84263d55307 169 assert_param(IS_LL_I2C_PERIPHERAL_MODE(I2C_InitStruct->PeripheralMode));
AnnaBridge 182:a56a73fd2a6f 170 assert_param(IS_LL_I2C_CLOCK_SPEED(I2C_InitStruct->ClockSpeed));
AnnaBridge 182:a56a73fd2a6f 171 assert_param(IS_LL_I2C_DUTY_CYCLE(I2C_InitStruct->DutyCycle));
AnnaBridge 167:e84263d55307 172 #if defined(I2C_FLTR_ANOFF)&&defined(I2C_FLTR_DNF)
AnnaBridge 167:e84263d55307 173 assert_param(IS_LL_I2C_ANALOG_FILTER(I2C_InitStruct->AnalogFilter));
AnnaBridge 167:e84263d55307 174 assert_param(IS_LL_I2C_DIGITAL_FILTER(I2C_InitStruct->DigitalFilter));
AnnaBridge 167:e84263d55307 175 #endif
AnnaBridge 167:e84263d55307 176 assert_param(IS_LL_I2C_OWN_ADDRESS1(I2C_InitStruct->OwnAddress1));
AnnaBridge 167:e84263d55307 177 assert_param(IS_LL_I2C_TYPE_ACKNOWLEDGE(I2C_InitStruct->TypeAcknowledge));
AnnaBridge 167:e84263d55307 178 assert_param(IS_LL_I2C_OWN_ADDRSIZE(I2C_InitStruct->OwnAddrSize));
AnnaBridge 167:e84263d55307 179
AnnaBridge 167:e84263d55307 180 /* Disable the selected I2Cx Peripheral */
AnnaBridge 167:e84263d55307 181 LL_I2C_Disable(I2Cx);
AnnaBridge 167:e84263d55307 182
AnnaBridge 167:e84263d55307 183 /* Retrieve Clock frequencies */
AnnaBridge 167:e84263d55307 184 LL_RCC_GetSystemClocksFreq(&rcc_clocks);
AnnaBridge 167:e84263d55307 185
AnnaBridge 167:e84263d55307 186 #if defined(I2C_FLTR_ANOFF)&&defined(I2C_FLTR_DNF)
AnnaBridge 167:e84263d55307 187 /*---------------------------- I2Cx FLTR Configuration -----------------------
AnnaBridge 167:e84263d55307 188 * Configure the analog and digital noise filters with parameters :
AnnaBridge 167:e84263d55307 189 * - AnalogFilter: I2C_FLTR_ANFOFF bit
AnnaBridge 167:e84263d55307 190 * - DigitalFilter: I2C_FLTR_DNF[3:0] bits
AnnaBridge 167:e84263d55307 191 */
AnnaBridge 167:e84263d55307 192 LL_I2C_ConfigFilters(I2Cx, I2C_InitStruct->AnalogFilter, I2C_InitStruct->DigitalFilter);
AnnaBridge 167:e84263d55307 193
AnnaBridge 167:e84263d55307 194 #endif
AnnaBridge 167:e84263d55307 195 /*---------------------------- I2Cx SCL Clock Speed Configuration ------------
AnnaBridge 167:e84263d55307 196 * Configure the SCL speed :
AnnaBridge 167:e84263d55307 197 * - ClockSpeed: I2C_CR2_FREQ[5:0], I2C_TRISE_TRISE[5:0], I2C_CCR_FS,
AnnaBridge 167:e84263d55307 198 * and I2C_CCR_CCR[11:0] bits
AnnaBridge 167:e84263d55307 199 * - DutyCycle: I2C_CCR_DUTY[7:0] bits
AnnaBridge 167:e84263d55307 200 */
AnnaBridge 167:e84263d55307 201 LL_I2C_ConfigSpeed(I2Cx, rcc_clocks.PCLK1_Frequency, I2C_InitStruct->ClockSpeed, I2C_InitStruct->DutyCycle);
AnnaBridge 167:e84263d55307 202
AnnaBridge 167:e84263d55307 203 /*---------------------------- I2Cx OAR1 Configuration -----------------------
AnnaBridge 167:e84263d55307 204 * Disable, Configure and Enable I2Cx device own address 1 with parameters :
AnnaBridge 167:e84263d55307 205 * - OwnAddress1: I2C_OAR1_ADD[9:8], I2C_OAR1_ADD[7:1] and I2C_OAR1_ADD0 bits
AnnaBridge 167:e84263d55307 206 * - OwnAddrSize: I2C_OAR1_ADDMODE bit
AnnaBridge 167:e84263d55307 207 */
AnnaBridge 167:e84263d55307 208 LL_I2C_SetOwnAddress1(I2Cx, I2C_InitStruct->OwnAddress1, I2C_InitStruct->OwnAddrSize);
AnnaBridge 167:e84263d55307 209
AnnaBridge 167:e84263d55307 210 /*---------------------------- I2Cx MODE Configuration -----------------------
AnnaBridge 167:e84263d55307 211 * Configure I2Cx peripheral mode with parameter :
AnnaBridge 167:e84263d55307 212 * - PeripheralMode: I2C_CR1_SMBUS, I2C_CR1_SMBTYPE and I2C_CR1_ENARP bits
AnnaBridge 167:e84263d55307 213 */
AnnaBridge 167:e84263d55307 214 LL_I2C_SetMode(I2Cx, I2C_InitStruct->PeripheralMode);
AnnaBridge 167:e84263d55307 215
AnnaBridge 167:e84263d55307 216 /* Enable the selected I2Cx Peripheral */
AnnaBridge 167:e84263d55307 217 LL_I2C_Enable(I2Cx);
AnnaBridge 167:e84263d55307 218
AnnaBridge 167:e84263d55307 219 /*---------------------------- I2Cx CR2 Configuration ------------------------
AnnaBridge 167:e84263d55307 220 * Configure the ACKnowledge or Non ACKnowledge condition
AnnaBridge 167:e84263d55307 221 * after the address receive match code or next received byte with parameter :
AnnaBridge 167:e84263d55307 222 * - TypeAcknowledge: I2C_CR2_NACK bit
AnnaBridge 167:e84263d55307 223 */
AnnaBridge 167:e84263d55307 224 LL_I2C_AcknowledgeNextData(I2Cx, I2C_InitStruct->TypeAcknowledge);
AnnaBridge 167:e84263d55307 225
AnnaBridge 167:e84263d55307 226 return SUCCESS;
AnnaBridge 167:e84263d55307 227 }
AnnaBridge 167:e84263d55307 228
AnnaBridge 167:e84263d55307 229 /**
AnnaBridge 167:e84263d55307 230 * @brief Set each @ref LL_I2C_InitTypeDef field to default value.
AnnaBridge 167:e84263d55307 231 * @param I2C_InitStruct Pointer to a @ref LL_I2C_InitTypeDef structure.
AnnaBridge 167:e84263d55307 232 * @retval None
AnnaBridge 167:e84263d55307 233 */
AnnaBridge 167:e84263d55307 234 void LL_I2C_StructInit(LL_I2C_InitTypeDef *I2C_InitStruct)
AnnaBridge 167:e84263d55307 235 {
AnnaBridge 167:e84263d55307 236 /* Set I2C_InitStruct fields to default values */
AnnaBridge 167:e84263d55307 237 I2C_InitStruct->PeripheralMode = LL_I2C_MODE_I2C;
AnnaBridge 167:e84263d55307 238 I2C_InitStruct->ClockSpeed = 5000U;
AnnaBridge 167:e84263d55307 239 I2C_InitStruct->DutyCycle = LL_I2C_DUTYCYCLE_2;
AnnaBridge 167:e84263d55307 240 #if defined(I2C_FLTR_ANOFF)&&defined(I2C_FLTR_DNF)
AnnaBridge 167:e84263d55307 241 I2C_InitStruct->AnalogFilter = LL_I2C_ANALOGFILTER_ENABLE;
AnnaBridge 167:e84263d55307 242 I2C_InitStruct->DigitalFilter = 0U;
AnnaBridge 167:e84263d55307 243 #endif
AnnaBridge 167:e84263d55307 244 I2C_InitStruct->OwnAddress1 = 0U;
AnnaBridge 167:e84263d55307 245 I2C_InitStruct->TypeAcknowledge = LL_I2C_NACK;
AnnaBridge 167:e84263d55307 246 I2C_InitStruct->OwnAddrSize = LL_I2C_OWNADDRESS1_7BIT;
AnnaBridge 167:e84263d55307 247 }
AnnaBridge 167:e84263d55307 248
AnnaBridge 167:e84263d55307 249 /**
AnnaBridge 167:e84263d55307 250 * @}
AnnaBridge 167:e84263d55307 251 */
AnnaBridge 167:e84263d55307 252
AnnaBridge 167:e84263d55307 253 /**
AnnaBridge 167:e84263d55307 254 * @}
AnnaBridge 167:e84263d55307 255 */
AnnaBridge 167:e84263d55307 256
AnnaBridge 167:e84263d55307 257 /**
AnnaBridge 167:e84263d55307 258 * @}
AnnaBridge 167:e84263d55307 259 */
AnnaBridge 167:e84263d55307 260
AnnaBridge 167:e84263d55307 261 #endif /* I2C1 || I2C2 || I2C3 */
AnnaBridge 167:e84263d55307 262
AnnaBridge 167:e84263d55307 263 /**
AnnaBridge 167:e84263d55307 264 * @}
AnnaBridge 167:e84263d55307 265 */
AnnaBridge 167:e84263d55307 266
AnnaBridge 167:e84263d55307 267 #endif /* USE_FULL_LL_DRIVER */
AnnaBridge 167:e84263d55307 268
AnnaBridge 167:e84263d55307 269 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/