mbed library sources

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Superseded

This library was superseded by mbed-dev - https://os.mbed.com/users/mbed_official/code/mbed-dev/.

Development branch of the mbed library sources. This library is kept in synch with the latest changes from the mbed SDK and it is not guaranteed to work.

If you are looking for a stable and tested release, please import one of the official mbed library releases:

Import librarymbed

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

Committer:
mbed_official
Date:
Thu Jul 02 16:30:08 2015 +0100
Revision:
581:39197bcd20f2
Parent:
532:fe11edbda85c
Child:
613:bc40b8d2aec4
Synchronized with git revision ae2d3cdffe70184eb8736d94f76c45c93f4b7724

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

Make it possible to build the core mbed library with yotta

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 87:085cde657901 1 /**
mbed_official 87:085cde657901 2 ******************************************************************************
mbed_official 87:085cde657901 3 * @file stm32f4xx_hal_spi.h
mbed_official 87:085cde657901 4 * @author MCD Application Team
mbed_official 532:fe11edbda85c 5 * @version V1.3.0
mbed_official 532:fe11edbda85c 6 * @date 09-March-2015
mbed_official 87:085cde657901 7 * @brief Header file of SPI HAL module.
mbed_official 87:085cde657901 8 ******************************************************************************
mbed_official 87:085cde657901 9 * @attention
mbed_official 87:085cde657901 10 *
mbed_official 532:fe11edbda85c 11 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
mbed_official 87:085cde657901 12 *
mbed_official 87:085cde657901 13 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 87:085cde657901 14 * are permitted provided that the following conditions are met:
mbed_official 87:085cde657901 15 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 87:085cde657901 16 * this list of conditions and the following disclaimer.
mbed_official 87:085cde657901 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 87:085cde657901 18 * this list of conditions and the following disclaimer in the documentation
mbed_official 87:085cde657901 19 * and/or other materials provided with the distribution.
mbed_official 87:085cde657901 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 87:085cde657901 21 * may be used to endorse or promote products derived from this software
mbed_official 87:085cde657901 22 * without specific prior written permission.
mbed_official 87:085cde657901 23 *
mbed_official 87:085cde657901 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 87:085cde657901 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 87:085cde657901 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 87:085cde657901 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 87:085cde657901 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 87:085cde657901 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 87:085cde657901 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 87:085cde657901 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 87:085cde657901 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 87:085cde657901 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 87:085cde657901 34 *
mbed_official 87:085cde657901 35 ******************************************************************************
mbed_official 87:085cde657901 36 */
mbed_official 87:085cde657901 37
mbed_official 87:085cde657901 38 /* Define to prevent recursive inclusion -------------------------------------*/
mbed_official 87:085cde657901 39 #ifndef __STM32F4xx_HAL_SPI_H
mbed_official 87:085cde657901 40 #define __STM32F4xx_HAL_SPI_H
mbed_official 87:085cde657901 41
mbed_official 87:085cde657901 42 #ifdef __cplusplus
mbed_official 87:085cde657901 43 extern "C" {
mbed_official 87:085cde657901 44 #endif
mbed_official 87:085cde657901 45
mbed_official 87:085cde657901 46 /* Includes ------------------------------------------------------------------*/
mbed_official 87:085cde657901 47 #include "stm32f4xx_hal_def.h"
mbed_official 87:085cde657901 48
mbed_official 87:085cde657901 49 /** @addtogroup STM32F4xx_HAL_Driver
mbed_official 87:085cde657901 50 * @{
mbed_official 87:085cde657901 51 */
mbed_official 87:085cde657901 52
mbed_official 87:085cde657901 53 /** @addtogroup SPI
mbed_official 87:085cde657901 54 * @{
mbed_official 87:085cde657901 55 */
mbed_official 87:085cde657901 56
mbed_official 87:085cde657901 57 /* Exported types ------------------------------------------------------------*/
mbed_official 532:fe11edbda85c 58 /** @defgroup SPI_Exported_Types SPI Exported Types
mbed_official 532:fe11edbda85c 59 * @{
mbed_official 532:fe11edbda85c 60 */
mbed_official 532:fe11edbda85c 61
mbed_official 87:085cde657901 62 /**
mbed_official 87:085cde657901 63 * @brief SPI Configuration Structure definition
mbed_official 87:085cde657901 64 */
mbed_official 87:085cde657901 65 typedef struct
mbed_official 87:085cde657901 66 {
mbed_official 87:085cde657901 67 uint32_t Mode; /*!< Specifies the SPI operating mode.
mbed_official 87:085cde657901 68 This parameter can be a value of @ref SPI_mode */
mbed_official 87:085cde657901 69
mbed_official 87:085cde657901 70 uint32_t Direction; /*!< Specifies the SPI Directional mode state.
mbed_official 87:085cde657901 71 This parameter can be a value of @ref SPI_Direction_mode */
mbed_official 87:085cde657901 72
mbed_official 87:085cde657901 73 uint32_t DataSize; /*!< Specifies the SPI data size.
mbed_official 87:085cde657901 74 This parameter can be a value of @ref SPI_data_size */
mbed_official 87:085cde657901 75
mbed_official 87:085cde657901 76 uint32_t CLKPolarity; /*!< Specifies the serial clock steady state.
mbed_official 87:085cde657901 77 This parameter can be a value of @ref SPI_Clock_Polarity */
mbed_official 87:085cde657901 78
mbed_official 87:085cde657901 79 uint32_t CLKPhase; /*!< Specifies the clock active edge for the bit capture.
mbed_official 87:085cde657901 80 This parameter can be a value of @ref SPI_Clock_Phase */
mbed_official 87:085cde657901 81
mbed_official 87:085cde657901 82 uint32_t NSS; /*!< Specifies whether the NSS signal is managed by
mbed_official 87:085cde657901 83 hardware (NSS pin) or by software using the SSI bit.
mbed_official 87:085cde657901 84 This parameter can be a value of @ref SPI_Slave_Select_management */
mbed_official 87:085cde657901 85
mbed_official 87:085cde657901 86 uint32_t BaudRatePrescaler; /*!< Specifies the Baud Rate prescaler value which will be
mbed_official 87:085cde657901 87 used to configure the transmit and receive SCK clock.
mbed_official 87:085cde657901 88 This parameter can be a value of @ref SPI_BaudRate_Prescaler
mbed_official 87:085cde657901 89 @note The communication clock is derived from the master
mbed_official 87:085cde657901 90 clock. The slave clock does not need to be set */
mbed_official 87:085cde657901 91
mbed_official 87:085cde657901 92 uint32_t FirstBit; /*!< Specifies whether data transfers start from MSB or LSB bit.
mbed_official 87:085cde657901 93 This parameter can be a value of @ref SPI_MSB_LSB_transmission */
mbed_official 87:085cde657901 94
mbed_official 87:085cde657901 95 uint32_t TIMode; /*!< Specifies if the TI mode is enabled or not.
mbed_official 87:085cde657901 96 This parameter can be a value of @ref SPI_TI_mode */
mbed_official 87:085cde657901 97
mbed_official 87:085cde657901 98 uint32_t CRCCalculation; /*!< Specifies if the CRC calculation is enabled or not.
mbed_official 87:085cde657901 99 This parameter can be a value of @ref SPI_CRC_Calculation */
mbed_official 87:085cde657901 100
mbed_official 87:085cde657901 101 uint32_t CRCPolynomial; /*!< Specifies the polynomial used for the CRC calculation.
mbed_official 87:085cde657901 102 This parameter must be a number between Min_Data = 0 and Max_Data = 65535 */
mbed_official 87:085cde657901 103
mbed_official 87:085cde657901 104 }SPI_InitTypeDef;
mbed_official 87:085cde657901 105
mbed_official 87:085cde657901 106 /**
mbed_official 87:085cde657901 107 * @brief HAL SPI State structure definition
mbed_official 87:085cde657901 108 */
mbed_official 87:085cde657901 109 typedef enum
mbed_official 87:085cde657901 110 {
mbed_official 87:085cde657901 111 HAL_SPI_STATE_RESET = 0x00, /*!< SPI not yet initialized or disabled */
mbed_official 87:085cde657901 112 HAL_SPI_STATE_READY = 0x01, /*!< SPI initialized and ready for use */
mbed_official 87:085cde657901 113 HAL_SPI_STATE_BUSY = 0x02, /*!< SPI process is ongoing */
mbed_official 87:085cde657901 114 HAL_SPI_STATE_BUSY_TX = 0x12, /*!< Data Transmission process is ongoing */
mbed_official 87:085cde657901 115 HAL_SPI_STATE_BUSY_RX = 0x22, /*!< Data Reception process is ongoing */
mbed_official 87:085cde657901 116 HAL_SPI_STATE_BUSY_TX_RX = 0x32, /*!< Data Transmission and Reception process is ongoing */
mbed_official 87:085cde657901 117 HAL_SPI_STATE_ERROR = 0x03 /*!< SPI error state */
mbed_official 87:085cde657901 118
mbed_official 87:085cde657901 119 }HAL_SPI_StateTypeDef;
mbed_official 87:085cde657901 120
mbed_official 87:085cde657901 121 /**
mbed_official 87:085cde657901 122 * @brief SPI handle Structure definition
mbed_official 87:085cde657901 123 */
mbed_official 87:085cde657901 124 typedef struct __SPI_HandleTypeDef
mbed_official 87:085cde657901 125 {
mbed_official 87:085cde657901 126 SPI_TypeDef *Instance; /* SPI registers base address */
mbed_official 87:085cde657901 127
mbed_official 87:085cde657901 128 SPI_InitTypeDef Init; /* SPI communication parameters */
mbed_official 87:085cde657901 129
mbed_official 87:085cde657901 130 uint8_t *pTxBuffPtr; /* Pointer to SPI Tx transfer Buffer */
mbed_official 87:085cde657901 131
mbed_official 87:085cde657901 132 uint16_t TxXferSize; /* SPI Tx transfer size */
mbed_official 87:085cde657901 133
mbed_official 87:085cde657901 134 uint16_t TxXferCount; /* SPI Tx Transfer Counter */
mbed_official 87:085cde657901 135
mbed_official 87:085cde657901 136 uint8_t *pRxBuffPtr; /* Pointer to SPI Rx transfer Buffer */
mbed_official 87:085cde657901 137
mbed_official 87:085cde657901 138 uint16_t RxXferSize; /* SPI Rx transfer size */
mbed_official 87:085cde657901 139
mbed_official 87:085cde657901 140 uint16_t RxXferCount; /* SPI Rx Transfer Counter */
mbed_official 87:085cde657901 141
mbed_official 87:085cde657901 142 DMA_HandleTypeDef *hdmatx; /* SPI Tx DMA handle parameters */
mbed_official 87:085cde657901 143
mbed_official 87:085cde657901 144 DMA_HandleTypeDef *hdmarx; /* SPI Rx DMA handle parameters */
mbed_official 87:085cde657901 145
mbed_official 87:085cde657901 146 void (*RxISR)(struct __SPI_HandleTypeDef * hspi); /* function pointer on Rx ISR */
mbed_official 87:085cde657901 147
mbed_official 87:085cde657901 148 void (*TxISR)(struct __SPI_HandleTypeDef * hspi); /* function pointer on Tx ISR */
mbed_official 87:085cde657901 149
mbed_official 87:085cde657901 150 HAL_LockTypeDef Lock; /* SPI locking object */
mbed_official 87:085cde657901 151
mbed_official 87:085cde657901 152 __IO HAL_SPI_StateTypeDef State; /* SPI communication state */
mbed_official 87:085cde657901 153
mbed_official 532:fe11edbda85c 154 __IO uint32_t ErrorCode; /* SPI Error code */
mbed_official 87:085cde657901 155
mbed_official 87:085cde657901 156 }SPI_HandleTypeDef;
mbed_official 532:fe11edbda85c 157 /**
mbed_official 532:fe11edbda85c 158 * @}
mbed_official 532:fe11edbda85c 159 */
mbed_official 87:085cde657901 160
mbed_official 87:085cde657901 161 /* Exported constants --------------------------------------------------------*/
mbed_official 532:fe11edbda85c 162 /** @defgroup SPI_Exported_Constants SPI Exported Constants
mbed_official 87:085cde657901 163 * @{
mbed_official 87:085cde657901 164 */
mbed_official 87:085cde657901 165
mbed_official 532:fe11edbda85c 166 /** @defgroup SPI_Error_Code SPI Error Code
mbed_official 532:fe11edbda85c 167 * @brief SPI Error Code
mbed_official 532:fe11edbda85c 168 * @{
mbed_official 532:fe11edbda85c 169 */
mbed_official 532:fe11edbda85c 170 #define HAL_SPI_ERROR_NONE ((uint32_t)0x00000000) /*!< No error */
mbed_official 532:fe11edbda85c 171 #define HAL_SPI_ERROR_MODF ((uint32_t)0x00000001) /*!< MODF error */
mbed_official 532:fe11edbda85c 172 #define HAL_SPI_ERROR_CRC ((uint32_t)0x00000002) /*!< CRC error */
mbed_official 532:fe11edbda85c 173 #define HAL_SPI_ERROR_OVR ((uint32_t)0x00000004) /*!< OVR error */
mbed_official 532:fe11edbda85c 174 #define HAL_SPI_ERROR_FRE ((uint32_t)0x00000008) /*!< FRE error */
mbed_official 532:fe11edbda85c 175 #define HAL_SPI_ERROR_DMA ((uint32_t)0x00000010) /*!< DMA transfer error */
mbed_official 532:fe11edbda85c 176 #define HAL_SPI_ERROR_FLAG ((uint32_t)0x00000010) /*!< Flag: RXNE,TXE, BSY */
mbed_official 532:fe11edbda85c 177 /**
mbed_official 532:fe11edbda85c 178 * @}
mbed_official 532:fe11edbda85c 179 */
mbed_official 532:fe11edbda85c 180
mbed_official 532:fe11edbda85c 181 /** @defgroup SPI_mode SPI Mode
mbed_official 87:085cde657901 182 * @{
mbed_official 87:085cde657901 183 */
mbed_official 87:085cde657901 184 #define SPI_MODE_SLAVE ((uint32_t)0x00000000)
mbed_official 87:085cde657901 185 #define SPI_MODE_MASTER (SPI_CR1_MSTR | SPI_CR1_SSI)
mbed_official 87:085cde657901 186 /**
mbed_official 87:085cde657901 187 * @}
mbed_official 87:085cde657901 188 */
mbed_official 87:085cde657901 189
mbed_official 532:fe11edbda85c 190 /** @defgroup SPI_Direction_mode SPI Direction Mode
mbed_official 87:085cde657901 191 * @{
mbed_official 87:085cde657901 192 */
mbed_official 87:085cde657901 193 #define SPI_DIRECTION_2LINES ((uint32_t)0x00000000)
mbed_official 87:085cde657901 194 #define SPI_DIRECTION_2LINES_RXONLY SPI_CR1_RXONLY
mbed_official 87:085cde657901 195 #define SPI_DIRECTION_1LINE SPI_CR1_BIDIMODE
mbed_official 87:085cde657901 196 /**
mbed_official 87:085cde657901 197 * @}
mbed_official 87:085cde657901 198 */
mbed_official 87:085cde657901 199
mbed_official 532:fe11edbda85c 200 /** @defgroup SPI_data_size SPI Data Size
mbed_official 87:085cde657901 201 * @{
mbed_official 87:085cde657901 202 */
mbed_official 87:085cde657901 203 #define SPI_DATASIZE_8BIT ((uint32_t)0x00000000)
mbed_official 87:085cde657901 204 #define SPI_DATASIZE_16BIT SPI_CR1_DFF
mbed_official 87:085cde657901 205 /**
mbed_official 87:085cde657901 206 * @}
mbed_official 87:085cde657901 207 */
mbed_official 87:085cde657901 208
mbed_official 532:fe11edbda85c 209 /** @defgroup SPI_Clock_Polarity SPI Clock Polarity
mbed_official 87:085cde657901 210 * @{
mbed_official 87:085cde657901 211 */
mbed_official 87:085cde657901 212 #define SPI_POLARITY_LOW ((uint32_t)0x00000000)
mbed_official 87:085cde657901 213 #define SPI_POLARITY_HIGH SPI_CR1_CPOL
mbed_official 87:085cde657901 214 /**
mbed_official 87:085cde657901 215 * @}
mbed_official 87:085cde657901 216 */
mbed_official 87:085cde657901 217
mbed_official 532:fe11edbda85c 218 /** @defgroup SPI_Clock_Phase SPI Clock Phase
mbed_official 87:085cde657901 219 * @{
mbed_official 87:085cde657901 220 */
mbed_official 87:085cde657901 221 #define SPI_PHASE_1EDGE ((uint32_t)0x00000000)
mbed_official 87:085cde657901 222 #define SPI_PHASE_2EDGE SPI_CR1_CPHA
mbed_official 87:085cde657901 223 /**
mbed_official 87:085cde657901 224 * @}
mbed_official 87:085cde657901 225 */
mbed_official 87:085cde657901 226
mbed_official 532:fe11edbda85c 227 /** @defgroup SPI_Slave_Select_management SPI Slave Select Management
mbed_official 87:085cde657901 228 * @{
mbed_official 87:085cde657901 229 */
mbed_official 87:085cde657901 230 #define SPI_NSS_SOFT SPI_CR1_SSM
mbed_official 87:085cde657901 231 #define SPI_NSS_HARD_INPUT ((uint32_t)0x00000000)
mbed_official 87:085cde657901 232 #define SPI_NSS_HARD_OUTPUT ((uint32_t)0x00040000)
mbed_official 87:085cde657901 233 /**
mbed_official 87:085cde657901 234 * @}
mbed_official 87:085cde657901 235 */
mbed_official 87:085cde657901 236
mbed_official 532:fe11edbda85c 237 /** @defgroup SPI_BaudRate_Prescaler SPI BaudRate Prescaler
mbed_official 87:085cde657901 238 * @{
mbed_official 87:085cde657901 239 */
mbed_official 87:085cde657901 240 #define SPI_BAUDRATEPRESCALER_2 ((uint32_t)0x00000000)
mbed_official 87:085cde657901 241 #define SPI_BAUDRATEPRESCALER_4 ((uint32_t)0x00000008)
mbed_official 87:085cde657901 242 #define SPI_BAUDRATEPRESCALER_8 ((uint32_t)0x00000010)
mbed_official 87:085cde657901 243 #define SPI_BAUDRATEPRESCALER_16 ((uint32_t)0x00000018)
mbed_official 87:085cde657901 244 #define SPI_BAUDRATEPRESCALER_32 ((uint32_t)0x00000020)
mbed_official 87:085cde657901 245 #define SPI_BAUDRATEPRESCALER_64 ((uint32_t)0x00000028)
mbed_official 87:085cde657901 246 #define SPI_BAUDRATEPRESCALER_128 ((uint32_t)0x00000030)
mbed_official 87:085cde657901 247 #define SPI_BAUDRATEPRESCALER_256 ((uint32_t)0x00000038)
mbed_official 87:085cde657901 248 /**
mbed_official 87:085cde657901 249 * @}
mbed_official 87:085cde657901 250 */
mbed_official 87:085cde657901 251
mbed_official 532:fe11edbda85c 252 /** @defgroup SPI_MSB_LSB_transmission SPI MSB LSB Transsmission
mbed_official 87:085cde657901 253 * @{
mbed_official 87:085cde657901 254 */
mbed_official 87:085cde657901 255 #define SPI_FIRSTBIT_MSB ((uint32_t)0x00000000)
mbed_official 87:085cde657901 256 #define SPI_FIRSTBIT_LSB SPI_CR1_LSBFIRST
mbed_official 87:085cde657901 257 /**
mbed_official 87:085cde657901 258 * @}
mbed_official 87:085cde657901 259 */
mbed_official 87:085cde657901 260
mbed_official 532:fe11edbda85c 261 /** @defgroup SPI_TI_mode SPI TI Mode
mbed_official 87:085cde657901 262 * @{
mbed_official 87:085cde657901 263 */
mbed_official 532:fe11edbda85c 264 #define SPI_TIMODE_DISABLE ((uint32_t)0x00000000)
mbed_official 532:fe11edbda85c 265 #define SPI_TIMODE_ENABLE SPI_CR2_FRF
mbed_official 87:085cde657901 266 /**
mbed_official 87:085cde657901 267 * @}
mbed_official 87:085cde657901 268 */
mbed_official 87:085cde657901 269
mbed_official 532:fe11edbda85c 270 /** @defgroup SPI_CRC_Calculation SPI CRC Calculation
mbed_official 87:085cde657901 271 * @{
mbed_official 87:085cde657901 272 */
mbed_official 532:fe11edbda85c 273 #define SPI_CRCCALCULATION_DISABLE ((uint32_t)0x00000000)
mbed_official 532:fe11edbda85c 274 #define SPI_CRCCALCULATION_ENABLE SPI_CR1_CRCEN
mbed_official 87:085cde657901 275 /**
mbed_official 87:085cde657901 276 * @}
mbed_official 87:085cde657901 277 */
mbed_official 87:085cde657901 278
mbed_official 532:fe11edbda85c 279 /** @defgroup SPI_Interrupt_definition SPI Interrupt Definition
mbed_official 87:085cde657901 280 * @{
mbed_official 87:085cde657901 281 */
mbed_official 87:085cde657901 282 #define SPI_IT_TXE SPI_CR2_TXEIE
mbed_official 87:085cde657901 283 #define SPI_IT_RXNE SPI_CR2_RXNEIE
mbed_official 87:085cde657901 284 #define SPI_IT_ERR SPI_CR2_ERRIE
mbed_official 87:085cde657901 285 /**
mbed_official 87:085cde657901 286 * @}
mbed_official 87:085cde657901 287 */
mbed_official 87:085cde657901 288
mbed_official 532:fe11edbda85c 289 /** @defgroup SPI_Flags_definition SPI Flags Definition
mbed_official 87:085cde657901 290 * @{
mbed_official 87:085cde657901 291 */
mbed_official 87:085cde657901 292 #define SPI_FLAG_RXNE SPI_SR_RXNE
mbed_official 87:085cde657901 293 #define SPI_FLAG_TXE SPI_SR_TXE
mbed_official 87:085cde657901 294 #define SPI_FLAG_CRCERR SPI_SR_CRCERR
mbed_official 87:085cde657901 295 #define SPI_FLAG_MODF SPI_SR_MODF
mbed_official 87:085cde657901 296 #define SPI_FLAG_OVR SPI_SR_OVR
mbed_official 87:085cde657901 297 #define SPI_FLAG_BSY SPI_SR_BSY
mbed_official 87:085cde657901 298 #define SPI_FLAG_FRE SPI_SR_FRE
mbed_official 87:085cde657901 299 /**
mbed_official 87:085cde657901 300 * @}
mbed_official 87:085cde657901 301 */
mbed_official 87:085cde657901 302
mbed_official 87:085cde657901 303 /**
mbed_official 87:085cde657901 304 * @}
mbed_official 87:085cde657901 305 */
mbed_official 87:085cde657901 306
mbed_official 87:085cde657901 307 /* Exported macro ------------------------------------------------------------*/
mbed_official 532:fe11edbda85c 308 /** @defgroup SPI_Exported_Macros SPI Exported Macros
mbed_official 532:fe11edbda85c 309 * @{
mbed_official 532:fe11edbda85c 310 */
mbed_official 226:b062af740e40 311 /** @brief Reset SPI handle state
mbed_official 226:b062af740e40 312 * @param __HANDLE__: specifies the SPI handle.
mbed_official 226:b062af740e40 313 * This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral.
mbed_official 226:b062af740e40 314 * @retval None
mbed_official 226:b062af740e40 315 */
mbed_official 226:b062af740e40 316 #define __HAL_SPI_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_SPI_STATE_RESET)
mbed_official 226:b062af740e40 317
mbed_official 87:085cde657901 318 /** @brief Enable or disable the specified SPI interrupts.
mbed_official 87:085cde657901 319 * @param __HANDLE__: specifies the SPI handle.
mbed_official 87:085cde657901 320 * This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral.
mbed_official 87:085cde657901 321 * @param __INTERRUPT__: specifies the interrupt source to enable or disable.
mbed_official 87:085cde657901 322 * This parameter can be one of the following values:
mbed_official 87:085cde657901 323 * @arg SPI_IT_TXE: Tx buffer empty interrupt enable
mbed_official 87:085cde657901 324 * @arg SPI_IT_RXNE: RX buffer not empty interrupt enable
mbed_official 87:085cde657901 325 * @arg SPI_IT_ERR: Error interrupt enable
mbed_official 87:085cde657901 326 * @retval None
mbed_official 87:085cde657901 327 */
mbed_official 87:085cde657901 328 #define __HAL_SPI_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR2 |= (__INTERRUPT__))
mbed_official 87:085cde657901 329 #define __HAL_SPI_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR2 &= (~(__INTERRUPT__)))
mbed_official 87:085cde657901 330
mbed_official 87:085cde657901 331 /** @brief Check if the specified SPI interrupt source is enabled or disabled.
mbed_official 87:085cde657901 332 * @param __HANDLE__: specifies the SPI handle.
mbed_official 87:085cde657901 333 * This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral.
mbed_official 87:085cde657901 334 * @param __INTERRUPT__: specifies the SPI interrupt source to check.
mbed_official 87:085cde657901 335 * This parameter can be one of the following values:
mbed_official 87:085cde657901 336 * @arg SPI_IT_TXE: Tx buffer empty interrupt enable
mbed_official 87:085cde657901 337 * @arg SPI_IT_RXNE: RX buffer not empty interrupt enable
mbed_official 87:085cde657901 338 * @arg SPI_IT_ERR: Error interrupt enable
mbed_official 87:085cde657901 339 * @retval The new state of __IT__ (TRUE or FALSE).
mbed_official 87:085cde657901 340 */
mbed_official 87:085cde657901 341 #define __HAL_SPI_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((((__HANDLE__)->Instance->CR2 & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET)
mbed_official 87:085cde657901 342
mbed_official 87:085cde657901 343 /** @brief Check whether the specified SPI flag is set or not.
mbed_official 87:085cde657901 344 * @param __HANDLE__: specifies the SPI handle.
mbed_official 87:085cde657901 345 * This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral.
mbed_official 87:085cde657901 346 * @param __FLAG__: specifies the flag to check.
mbed_official 87:085cde657901 347 * This parameter can be one of the following values:
mbed_official 87:085cde657901 348 * @arg SPI_FLAG_RXNE: Receive buffer not empty flag
mbed_official 87:085cde657901 349 * @arg SPI_FLAG_TXE: Transmit buffer empty flag
mbed_official 87:085cde657901 350 * @arg SPI_FLAG_CRCERR: CRC error flag
mbed_official 87:085cde657901 351 * @arg SPI_FLAG_MODF: Mode fault flag
mbed_official 87:085cde657901 352 * @arg SPI_FLAG_OVR: Overrun flag
mbed_official 87:085cde657901 353 * @arg SPI_FLAG_BSY: Busy flag
mbed_official 87:085cde657901 354 * @arg SPI_FLAG_FRE: Frame format error flag
mbed_official 87:085cde657901 355 * @retval The new state of __FLAG__ (TRUE or FALSE).
mbed_official 87:085cde657901 356 */
mbed_official 87:085cde657901 357 #define __HAL_SPI_GET_FLAG(__HANDLE__, __FLAG__) ((((__HANDLE__)->Instance->SR) & (__FLAG__)) == (__FLAG__))
mbed_official 87:085cde657901 358
mbed_official 87:085cde657901 359 /** @brief Clear the SPI CRCERR pending flag.
mbed_official 87:085cde657901 360 * @param __HANDLE__: specifies the SPI handle.
mbed_official 87:085cde657901 361 * This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral.
mbed_official 87:085cde657901 362 * @retval None
mbed_official 87:085cde657901 363 */
mbed_official 369:2e96f1b71984 364 #define __HAL_SPI_CLEAR_CRCERRFLAG(__HANDLE__) ((__HANDLE__)->Instance->SR = ~(SPI_FLAG_CRCERR))
mbed_official 87:085cde657901 365
mbed_official 87:085cde657901 366 /** @brief Clear the SPI MODF pending flag.
mbed_official 87:085cde657901 367 * @param __HANDLE__: specifies the SPI handle.
mbed_official 87:085cde657901 368 * This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral.
mbed_official 87:085cde657901 369 * @retval None
mbed_official 87:085cde657901 370 */
mbed_official 532:fe11edbda85c 371 #define __HAL_SPI_CLEAR_MODFFLAG(__HANDLE__) \
mbed_official 532:fe11edbda85c 372 do{ \
mbed_official 532:fe11edbda85c 373 __IO uint32_t tmpreg; \
mbed_official 532:fe11edbda85c 374 tmpreg = (__HANDLE__)->Instance->SR; \
mbed_official 532:fe11edbda85c 375 (__HANDLE__)->Instance->CR1 &= (~SPI_CR1_SPE); \
mbed_official 532:fe11edbda85c 376 UNUSED(tmpreg); \
mbed_official 532:fe11edbda85c 377 } while(0)
mbed_official 87:085cde657901 378
mbed_official 87:085cde657901 379 /** @brief Clear the SPI OVR pending flag.
mbed_official 87:085cde657901 380 * @param __HANDLE__: specifies the SPI handle.
mbed_official 87:085cde657901 381 * This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral.
mbed_official 87:085cde657901 382 * @retval None
mbed_official 87:085cde657901 383 */
mbed_official 532:fe11edbda85c 384 #define __HAL_SPI_CLEAR_OVRFLAG(__HANDLE__) \
mbed_official 532:fe11edbda85c 385 do{ \
mbed_official 532:fe11edbda85c 386 __IO uint32_t tmpreg; \
mbed_official 532:fe11edbda85c 387 tmpreg = (__HANDLE__)->Instance->DR; \
mbed_official 532:fe11edbda85c 388 tmpreg = (__HANDLE__)->Instance->SR; \
mbed_official 532:fe11edbda85c 389 UNUSED(tmpreg); \
mbed_official 532:fe11edbda85c 390 } while(0)
mbed_official 87:085cde657901 391
mbed_official 87:085cde657901 392 /** @brief Clear the SPI FRE pending flag.
mbed_official 87:085cde657901 393 * @param __HANDLE__: specifies the SPI handle.
mbed_official 87:085cde657901 394 * This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral.
mbed_official 87:085cde657901 395 * @retval None
mbed_official 532:fe11edbda85c 396 */
mbed_official 532:fe11edbda85c 397 #define __HAL_SPI_CLEAR_FREFLAG(__HANDLE__) \
mbed_official 532:fe11edbda85c 398 do{ \
mbed_official 532:fe11edbda85c 399 __IO uint32_t tmpreg; \
mbed_official 532:fe11edbda85c 400 tmpreg = (__HANDLE__)->Instance->SR; \
mbed_official 532:fe11edbda85c 401 UNUSED(tmpreg); \
mbed_official 532:fe11edbda85c 402 }while(0)
mbed_official 532:fe11edbda85c 403
mbed_official 532:fe11edbda85c 404 /** @brief Enable SPI
mbed_official 532:fe11edbda85c 405 * @param __HANDLE__: specifies the SPI Handle.
mbed_official 532:fe11edbda85c 406 * @retval None
mbed_official 87:085cde657901 407 */
mbed_official 87:085cde657901 408 #define __HAL_SPI_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1 |= SPI_CR1_SPE)
mbed_official 87:085cde657901 409
mbed_official 532:fe11edbda85c 410 /** @brief Disable SPI
mbed_official 532:fe11edbda85c 411 * @param __HANDLE__: specifies the SPI Handle.
mbed_official 532:fe11edbda85c 412 * @retval None
mbed_official 532:fe11edbda85c 413 */
mbed_official 532:fe11edbda85c 414 #define __HAL_SPI_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1 &= ~SPI_CR1_SPE)
mbed_official 532:fe11edbda85c 415 /**
mbed_official 532:fe11edbda85c 416 * @}
mbed_official 532:fe11edbda85c 417 */
mbed_official 532:fe11edbda85c 418
mbed_official 532:fe11edbda85c 419 /* Exported functions --------------------------------------------------------*/
mbed_official 532:fe11edbda85c 420 /** @addtogroup SPI_Exported_Functions
mbed_official 532:fe11edbda85c 421 * @{
mbed_official 532:fe11edbda85c 422 */
mbed_official 87:085cde657901 423
mbed_official 532:fe11edbda85c 424 /** @addtogroup SPI_Exported_Functions_Group1
mbed_official 532:fe11edbda85c 425 * @{
mbed_official 532:fe11edbda85c 426 */
mbed_official 87:085cde657901 427 /* Initialization/de-initialization functions **********************************/
mbed_official 87:085cde657901 428 HAL_StatusTypeDef HAL_SPI_Init(SPI_HandleTypeDef *hspi);
mbed_official 87:085cde657901 429 HAL_StatusTypeDef HAL_SPI_DeInit (SPI_HandleTypeDef *hspi);
mbed_official 87:085cde657901 430 void HAL_SPI_MspInit(SPI_HandleTypeDef *hspi);
mbed_official 87:085cde657901 431 void HAL_SPI_MspDeInit(SPI_HandleTypeDef *hspi);
mbed_official 532:fe11edbda85c 432 /**
mbed_official 532:fe11edbda85c 433 * @}
mbed_official 532:fe11edbda85c 434 */
mbed_official 87:085cde657901 435
mbed_official 532:fe11edbda85c 436 /** @addtogroup SPI_Exported_Functions_Group2
mbed_official 532:fe11edbda85c 437 * @{
mbed_official 532:fe11edbda85c 438 */
mbed_official 87:085cde657901 439 /* I/O operation functions *****************************************************/
mbed_official 87:085cde657901 440 HAL_StatusTypeDef HAL_SPI_Transmit(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size, uint32_t Timeout);
mbed_official 87:085cde657901 441 HAL_StatusTypeDef HAL_SPI_Receive(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size, uint32_t Timeout);
mbed_official 87:085cde657901 442 HAL_StatusTypeDef HAL_SPI_TransmitReceive(SPI_HandleTypeDef *hspi, uint8_t *pTxData, uint8_t *pRxData, uint16_t Size, uint32_t Timeout);
mbed_official 87:085cde657901 443 HAL_StatusTypeDef HAL_SPI_Transmit_IT(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size);
mbed_official 87:085cde657901 444 HAL_StatusTypeDef HAL_SPI_Receive_IT(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size);
mbed_official 87:085cde657901 445 HAL_StatusTypeDef HAL_SPI_TransmitReceive_IT(SPI_HandleTypeDef *hspi, uint8_t *pTxData, uint8_t *pRxData, uint16_t Size);
mbed_official 87:085cde657901 446 HAL_StatusTypeDef HAL_SPI_Transmit_DMA(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size);
mbed_official 87:085cde657901 447 HAL_StatusTypeDef HAL_SPI_Receive_DMA(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size);
mbed_official 87:085cde657901 448 HAL_StatusTypeDef HAL_SPI_TransmitReceive_DMA(SPI_HandleTypeDef *hspi, uint8_t *pTxData, uint8_t *pRxData, uint16_t Size);
mbed_official 369:2e96f1b71984 449 HAL_StatusTypeDef HAL_SPI_DMAPause(SPI_HandleTypeDef *hspi);
mbed_official 369:2e96f1b71984 450 HAL_StatusTypeDef HAL_SPI_DMAResume(SPI_HandleTypeDef *hspi);
mbed_official 369:2e96f1b71984 451 HAL_StatusTypeDef HAL_SPI_DMAStop(SPI_HandleTypeDef *hspi);
mbed_official 369:2e96f1b71984 452
mbed_official 87:085cde657901 453 void HAL_SPI_IRQHandler(SPI_HandleTypeDef *hspi);
mbed_official 106:ced8cbb51063 454 void HAL_SPI_TxCpltCallback(SPI_HandleTypeDef *hspi);
mbed_official 106:ced8cbb51063 455 void HAL_SPI_RxCpltCallback(SPI_HandleTypeDef *hspi);
mbed_official 106:ced8cbb51063 456 void HAL_SPI_TxRxCpltCallback(SPI_HandleTypeDef *hspi);
mbed_official 106:ced8cbb51063 457 void HAL_SPI_ErrorCallback(SPI_HandleTypeDef *hspi);
mbed_official 369:2e96f1b71984 458 void HAL_SPI_TxHalfCpltCallback(SPI_HandleTypeDef *hspi);
mbed_official 369:2e96f1b71984 459 void HAL_SPI_RxHalfCpltCallback(SPI_HandleTypeDef *hspi);
mbed_official 369:2e96f1b71984 460 void HAL_SPI_TxRxHalfCpltCallback(SPI_HandleTypeDef *hspi);
mbed_official 532:fe11edbda85c 461 /**
mbed_official 532:fe11edbda85c 462 * @}
mbed_official 532:fe11edbda85c 463 */
mbed_official 532:fe11edbda85c 464
mbed_official 532:fe11edbda85c 465 /** @addtogroup SPI_Exported_Functions_Group3
mbed_official 532:fe11edbda85c 466 * @{
mbed_official 532:fe11edbda85c 467 */
mbed_official 87:085cde657901 468 /* Peripheral State and Control functions **************************************/
mbed_official 87:085cde657901 469 HAL_SPI_StateTypeDef HAL_SPI_GetState(SPI_HandleTypeDef *hspi);
mbed_official 532:fe11edbda85c 470 uint32_t HAL_SPI_GetError(SPI_HandleTypeDef *hspi);
mbed_official 87:085cde657901 471
mbed_official 87:085cde657901 472 /**
mbed_official 87:085cde657901 473 * @}
mbed_official 87:085cde657901 474 */
mbed_official 87:085cde657901 475
mbed_official 87:085cde657901 476 /**
mbed_official 87:085cde657901 477 * @}
mbed_official 87:085cde657901 478 */
mbed_official 87:085cde657901 479
mbed_official 532:fe11edbda85c 480 /* Private types -------------------------------------------------------------*/
mbed_official 532:fe11edbda85c 481 /* Private variables ---------------------------------------------------------*/
mbed_official 532:fe11edbda85c 482 /* Private constants ---------------------------------------------------------*/
mbed_official 532:fe11edbda85c 483 /** @defgroup SPI_Private_Constants SPI Private Constants
mbed_official 532:fe11edbda85c 484 * @{
mbed_official 532:fe11edbda85c 485 */
mbed_official 532:fe11edbda85c 486 /**
mbed_official 532:fe11edbda85c 487 * @}
mbed_official 532:fe11edbda85c 488 */
mbed_official 532:fe11edbda85c 489
mbed_official 532:fe11edbda85c 490 /* Private macros ------------------------------------------------------------*/
mbed_official 532:fe11edbda85c 491 /** @defgroup SPI_Private_Macros SPI Private Macros
mbed_official 532:fe11edbda85c 492 * @{
mbed_official 532:fe11edbda85c 493 */
mbed_official 532:fe11edbda85c 494
mbed_official 532:fe11edbda85c 495 #define IS_SPI_MODE(MODE) (((MODE) == SPI_MODE_SLAVE) || \
mbed_official 532:fe11edbda85c 496 ((MODE) == SPI_MODE_MASTER))
mbed_official 532:fe11edbda85c 497
mbed_official 532:fe11edbda85c 498
mbed_official 532:fe11edbda85c 499 #define IS_SPI_DIRECTION_MODE(MODE) (((MODE) == SPI_DIRECTION_2LINES) || \
mbed_official 532:fe11edbda85c 500 ((MODE) == SPI_DIRECTION_2LINES_RXONLY) || \
mbed_official 532:fe11edbda85c 501 ((MODE) == SPI_DIRECTION_1LINE))
mbed_official 532:fe11edbda85c 502
mbed_official 532:fe11edbda85c 503 #define IS_SPI_DIRECTION_2LINES_OR_1LINE(MODE) (((MODE) == SPI_DIRECTION_2LINES) || \
mbed_official 532:fe11edbda85c 504 ((MODE) == SPI_DIRECTION_1LINE))
mbed_official 532:fe11edbda85c 505
mbed_official 532:fe11edbda85c 506 #define IS_SPI_DIRECTION_2LINES(MODE) ((MODE) == SPI_DIRECTION_2LINES)
mbed_official 532:fe11edbda85c 507
mbed_official 532:fe11edbda85c 508 #define IS_SPI_DATASIZE(DATASIZE) (((DATASIZE) == SPI_DATASIZE_16BIT) || \
mbed_official 532:fe11edbda85c 509 ((DATASIZE) == SPI_DATASIZE_8BIT))
mbed_official 532:fe11edbda85c 510
mbed_official 532:fe11edbda85c 511 #define IS_SPI_CPOL(CPOL) (((CPOL) == SPI_POLARITY_LOW) || \
mbed_official 532:fe11edbda85c 512 ((CPOL) == SPI_POLARITY_HIGH))
mbed_official 532:fe11edbda85c 513
mbed_official 532:fe11edbda85c 514 #define IS_SPI_CPHA(CPHA) (((CPHA) == SPI_PHASE_1EDGE) || \
mbed_official 532:fe11edbda85c 515 ((CPHA) == SPI_PHASE_2EDGE))
mbed_official 532:fe11edbda85c 516
mbed_official 532:fe11edbda85c 517 #define IS_SPI_NSS(NSS) (((NSS) == SPI_NSS_SOFT) || \
mbed_official 532:fe11edbda85c 518 ((NSS) == SPI_NSS_HARD_INPUT) || \
mbed_official 532:fe11edbda85c 519 ((NSS) == SPI_NSS_HARD_OUTPUT))
mbed_official 532:fe11edbda85c 520
mbed_official 532:fe11edbda85c 521 #define IS_SPI_BAUDRATE_PRESCALER(PRESCALER) (((PRESCALER) == SPI_BAUDRATEPRESCALER_2) || \
mbed_official 532:fe11edbda85c 522 ((PRESCALER) == SPI_BAUDRATEPRESCALER_4) || \
mbed_official 532:fe11edbda85c 523 ((PRESCALER) == SPI_BAUDRATEPRESCALER_8) || \
mbed_official 532:fe11edbda85c 524 ((PRESCALER) == SPI_BAUDRATEPRESCALER_16) || \
mbed_official 532:fe11edbda85c 525 ((PRESCALER) == SPI_BAUDRATEPRESCALER_32) || \
mbed_official 532:fe11edbda85c 526 ((PRESCALER) == SPI_BAUDRATEPRESCALER_64) || \
mbed_official 532:fe11edbda85c 527 ((PRESCALER) == SPI_BAUDRATEPRESCALER_128) || \
mbed_official 532:fe11edbda85c 528 ((PRESCALER) == SPI_BAUDRATEPRESCALER_256))
mbed_official 532:fe11edbda85c 529
mbed_official 532:fe11edbda85c 530 #define IS_SPI_FIRST_BIT(BIT) (((BIT) == SPI_FIRSTBIT_MSB) || \
mbed_official 532:fe11edbda85c 531 ((BIT) == SPI_FIRSTBIT_LSB))
mbed_official 532:fe11edbda85c 532
mbed_official 532:fe11edbda85c 533 #define IS_SPI_TIMODE(MODE) (((MODE) == SPI_TIMODE_DISABLE) || \
mbed_official 532:fe11edbda85c 534 ((MODE) == SPI_TIMODE_ENABLE))
mbed_official 532:fe11edbda85c 535
mbed_official 532:fe11edbda85c 536 #define IS_SPI_CRC_CALCULATION(CALCULATION) (((CALCULATION) == SPI_CRCCALCULATION_DISABLE) || \
mbed_official 532:fe11edbda85c 537 ((CALCULATION) == SPI_CRCCALCULATION_ENABLE))
mbed_official 532:fe11edbda85c 538
mbed_official 532:fe11edbda85c 539 #define IS_SPI_CRC_POLYNOMIAL(POLYNOMIAL) (((POLYNOMIAL) >= 0x1) && ((POLYNOMIAL) <= 0xFFFF))
mbed_official 532:fe11edbda85c 540
mbed_official 532:fe11edbda85c 541 #define SPI_1LINE_TX(__HANDLE__) ((__HANDLE__)->Instance->CR1 |= SPI_CR1_BIDIOE)
mbed_official 532:fe11edbda85c 542
mbed_official 532:fe11edbda85c 543 #define SPI_1LINE_RX(__HANDLE__) ((__HANDLE__)->Instance->CR1 &= ~SPI_CR1_BIDIOE)
mbed_official 532:fe11edbda85c 544
mbed_official 532:fe11edbda85c 545 #define SPI_RESET_CRC(__HANDLE__) do{(__HANDLE__)->Instance->CR1 &= (~SPI_CR1_CRCEN);\
mbed_official 532:fe11edbda85c 546 (__HANDLE__)->Instance->CR1 |= SPI_CR1_CRCEN;}while(0)
mbed_official 532:fe11edbda85c 547 /**
mbed_official 532:fe11edbda85c 548 * @}
mbed_official 532:fe11edbda85c 549 */
mbed_official 532:fe11edbda85c 550
mbed_official 532:fe11edbda85c 551 /* Private functions ---------------------------------------------------------*/
mbed_official 532:fe11edbda85c 552 /** @defgroup SPI_Private_Functions SPI Private Functions
mbed_official 532:fe11edbda85c 553 * @{
mbed_official 532:fe11edbda85c 554 */
mbed_official 532:fe11edbda85c 555
mbed_official 532:fe11edbda85c 556 /**
mbed_official 532:fe11edbda85c 557 * @}
mbed_official 532:fe11edbda85c 558 */
mbed_official 532:fe11edbda85c 559
mbed_official 532:fe11edbda85c 560 /**
mbed_official 532:fe11edbda85c 561 * @}
mbed_official 532:fe11edbda85c 562 */
mbed_official 532:fe11edbda85c 563
mbed_official 532:fe11edbda85c 564 /**
mbed_official 532:fe11edbda85c 565 * @}
mbed_official 532:fe11edbda85c 566 */
mbed_official 532:fe11edbda85c 567
mbed_official 532:fe11edbda85c 568
mbed_official 87:085cde657901 569 #ifdef __cplusplus
mbed_official 87:085cde657901 570 }
mbed_official 87:085cde657901 571 #endif
mbed_official 87:085cde657901 572
mbed_official 87:085cde657901 573 #endif /* __STM32F4xx_HAL_SPI_H */
mbed_official 87:085cde657901 574
mbed_official 87:085cde657901 575 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/