STM32F4xx HAL Documentation
Hardware Abstraction Layer for STM32F4 familiy
Loading...
Searching...
No Matches
stm32f4xx_hal_spi.h File Reference

Header file of SPI HAL module. More...

Include dependency graph for stm32f4xx_hal_spi.h:

Go to the source code of this file.

Data Structures

struct  SPI_InitTypeDef
 SPI Configuration Structure definition. More...
 
struct  __SPI_HandleTypeDef
 SPI handle Structure definition. More...
 

Macros

#define HAL_SPI_ERROR_NONE   (0x00000000U)
 
#define HAL_SPI_ERROR_MODF   (0x00000001U)
 
#define HAL_SPI_ERROR_CRC   (0x00000002U)
 
#define HAL_SPI_ERROR_OVR   (0x00000004U)
 
#define HAL_SPI_ERROR_FRE   (0x00000008U)
 
#define HAL_SPI_ERROR_DMA   (0x00000010U)
 
#define HAL_SPI_ERROR_FLAG   (0x00000020U)
 
#define HAL_SPI_ERROR_ABORT   (0x00000040U)
 
#define SPI_MODE_SLAVE   (0x00000000U)
 
#define SPI_MODE_MASTER   (SPI_CR1_MSTR | SPI_CR1_SSI)
 
#define SPI_DIRECTION_2LINES   (0x00000000U)
 
#define SPI_DIRECTION_2LINES_RXONLY   SPI_CR1_RXONLY
 
#define SPI_DIRECTION_1LINE   SPI_CR1_BIDIMODE
 
#define SPI_DATASIZE_8BIT   (0x00000000U)
 
#define SPI_DATASIZE_16BIT   SPI_CR1_DFF
 
#define SPI_POLARITY_LOW   (0x00000000U)
 
#define SPI_POLARITY_HIGH   SPI_CR1_CPOL
 
#define SPI_PHASE_1EDGE   (0x00000000U)
 
#define SPI_PHASE_2EDGE   SPI_CR1_CPHA
 
#define SPI_NSS_SOFT   SPI_CR1_SSM
 
#define SPI_NSS_HARD_INPUT   (0x00000000U)
 
#define SPI_NSS_HARD_OUTPUT   (SPI_CR2_SSOE << 16U)
 
#define SPI_BAUDRATEPRESCALER_2   (0x00000000U)
 
#define SPI_BAUDRATEPRESCALER_4   (SPI_CR1_BR_0)
 
#define SPI_BAUDRATEPRESCALER_8   (SPI_CR1_BR_1)
 
#define SPI_BAUDRATEPRESCALER_16   (SPI_CR1_BR_1 | SPI_CR1_BR_0)
 
#define SPI_BAUDRATEPRESCALER_32   (SPI_CR1_BR_2)
 
#define SPI_BAUDRATEPRESCALER_64   (SPI_CR1_BR_2 | SPI_CR1_BR_0)
 
#define SPI_BAUDRATEPRESCALER_128   (SPI_CR1_BR_2 | SPI_CR1_BR_1)
 
#define SPI_BAUDRATEPRESCALER_256   (SPI_CR1_BR_2 | SPI_CR1_BR_1 | SPI_CR1_BR_0)
 
#define SPI_FIRSTBIT_MSB   (0x00000000U)
 
#define SPI_FIRSTBIT_LSB   SPI_CR1_LSBFIRST
 
#define SPI_TIMODE_DISABLE   (0x00000000U)
 
#define SPI_TIMODE_ENABLE   SPI_CR2_FRF
 
#define SPI_CRCCALCULATION_DISABLE   (0x00000000U)
 
#define SPI_CRCCALCULATION_ENABLE   SPI_CR1_CRCEN
 
#define SPI_IT_TXE   SPI_CR2_TXEIE
 
#define SPI_IT_RXNE   SPI_CR2_RXNEIE
 
#define SPI_IT_ERR   SPI_CR2_ERRIE
 
#define SPI_FLAG_RXNE   SPI_SR_RXNE /* SPI status flag: Rx buffer not empty flag */
 
#define SPI_FLAG_TXE   SPI_SR_TXE /* SPI status flag: Tx buffer empty flag */
 
#define SPI_FLAG_BSY   SPI_SR_BSY /* SPI status flag: Busy flag */
 
#define SPI_FLAG_CRCERR   SPI_SR_CRCERR /* SPI Error flag: CRC error flag */
 
#define SPI_FLAG_MODF   SPI_SR_MODF /* SPI Error flag: Mode fault flag */
 
#define SPI_FLAG_OVR   SPI_SR_OVR /* SPI Error flag: Overrun flag */
 
#define SPI_FLAG_FRE   SPI_SR_FRE /* SPI Error flag: TI mode frame format error flag */
 
#define SPI_FLAG_MASK
 
#define __HAL_SPI_RESET_HANDLE_STATE(__HANDLE__)
 Reset SPI handle state.
 
#define __HAL_SPI_ENABLE_IT(__HANDLE__, __INTERRUPT__)
 Enable the specified SPI interrupts.
 
#define __HAL_SPI_DISABLE_IT(__HANDLE__, __INTERRUPT__)
 Disable the specified SPI interrupts.
 
#define __HAL_SPI_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__)
 Check whether the specified SPI interrupt source is enabled or not.
 
#define __HAL_SPI_GET_FLAG(__HANDLE__, __FLAG__)
 Check whether the specified SPI flag is set or not.
 
#define __HAL_SPI_CLEAR_CRCERRFLAG(__HANDLE__)
 Clear the SPI CRCERR pending flag.
 
#define __HAL_SPI_CLEAR_MODFFLAG(__HANDLE__)
 Clear the SPI MODF pending flag.
 
#define __HAL_SPI_CLEAR_OVRFLAG(__HANDLE__)
 Clear the SPI OVR pending flag.
 
#define __HAL_SPI_CLEAR_FREFLAG(__HANDLE__)
 Clear the SPI FRE pending flag.
 
#define __HAL_SPI_ENABLE(__HANDLE__)
 Enable the SPI peripheral.
 
#define __HAL_SPI_DISABLE(__HANDLE__)
 Disable the SPI peripheral.
 
#define SPI_1LINE_TX(__HANDLE__)
 Set the SPI transmit-only mode.
 
#define SPI_1LINE_RX(__HANDLE__)
 Set the SPI receive-only mode.
 
#define SPI_RESET_CRC(__HANDLE__)
 Reset the CRC calculation of the SPI.
 
#define SPI_CHECK_FLAG(__SR__, __FLAG__)
 Check whether the specified SPI flag is set or not.
 
#define SPI_CHECK_IT_SOURCE(__CR2__, __INTERRUPT__)
 Check whether the specified SPI Interrupt is set or not.
 
#define IS_SPI_MODE(__MODE__)
 Checks if SPI Mode parameter is in allowed range.
 
#define IS_SPI_DIRECTION(__MODE__)
 Checks if SPI Direction Mode parameter is in allowed range.
 
#define IS_SPI_DIRECTION_2LINES(__MODE__)
 Checks if SPI Direction Mode parameter is 2 lines.
 
#define IS_SPI_DIRECTION_2LINES_OR_1LINE(__MODE__)
 Checks if SPI Direction Mode parameter is 1 or 2 lines.
 
#define IS_SPI_DATASIZE(__DATASIZE__)
 Checks if SPI Data Size parameter is in allowed range.
 
#define IS_SPI_CPOL(__CPOL__)
 Checks if SPI Serial clock steady state parameter is in allowed range.
 
#define IS_SPI_CPHA(__CPHA__)
 Checks if SPI Clock Phase parameter is in allowed range.
 
#define IS_SPI_NSS(__NSS__)
 Checks if SPI Slave Select parameter is in allowed range.
 
#define IS_SPI_BAUDRATE_PRESCALER(__PRESCALER__)
 Checks if SPI Baudrate prescaler parameter is in allowed range.
 
#define IS_SPI_FIRST_BIT(__BIT__)
 Checks if SPI MSB LSB transmission parameter is in allowed range.
 
#define IS_SPI_TIMODE(__MODE__)
 Checks if SPI TI mode parameter is in allowed range.
 
#define IS_SPI_CRC_CALCULATION(__CALCULATION__)
 Checks if SPI CRC calculation enabled state is in allowed range.
 
#define IS_SPI_CRC_POLYNOMIAL(__POLYNOMIAL__)
 Checks if SPI polynomial value to be used for the CRC calculation, is in allowed range.
 
#define IS_SPI_DMA_HANDLE(__HANDLE__)
 Checks if DMA handle is valid.
 

Typedefs

typedef struct __SPI_HandleTypeDef SPI_HandleTypeDef
 SPI handle Structure definition.
 

Enumerations

enum  HAL_SPI_StateTypeDef {
  HAL_SPI_STATE_RESET = 0x00U , HAL_SPI_STATE_READY = 0x01U , HAL_SPI_STATE_BUSY = 0x02U , HAL_SPI_STATE_BUSY_TX = 0x03U ,
  HAL_SPI_STATE_BUSY_RX = 0x04U , HAL_SPI_STATE_BUSY_TX_RX = 0x05U , HAL_SPI_STATE_ERROR = 0x06U , HAL_SPI_STATE_ABORT = 0x07U
}
 HAL SPI State structure definition. More...
 

Functions

HAL_StatusTypeDef HAL_SPI_Init (SPI_HandleTypeDef *hspi)
 Initialize the SPI according to the specified parameters in the SPI_InitTypeDef and initialize the associated handle.
 
HAL_StatusTypeDef HAL_SPI_DeInit (SPI_HandleTypeDef *hspi)
 De-Initialize the SPI peripheral.
 
void HAL_SPI_MspInit (SPI_HandleTypeDef *hspi)
 Initialize the SPI MSP.
 
void HAL_SPI_MspDeInit (SPI_HandleTypeDef *hspi)
 De-Initialize the SPI MSP.
 
HAL_StatusTypeDef HAL_SPI_Transmit (SPI_HandleTypeDef *hspi, const uint8_t *pData, uint16_t Size, uint32_t Timeout)
 Transmit an amount of data in blocking mode.
 
HAL_StatusTypeDef HAL_SPI_Receive (SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size, uint32_t Timeout)
 Receive an amount of data in blocking mode.
 
HAL_StatusTypeDef HAL_SPI_TransmitReceive (SPI_HandleTypeDef *hspi, const uint8_t *pTxData, uint8_t *pRxData, uint16_t Size, uint32_t Timeout)
 Transmit and Receive an amount of data in blocking mode.
 
HAL_StatusTypeDef HAL_SPI_Transmit_IT (SPI_HandleTypeDef *hspi, const uint8_t *pData, uint16_t Size)
 Transmit an amount of data in non-blocking mode with Interrupt.
 
HAL_StatusTypeDef HAL_SPI_Receive_IT (SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size)
 Receive an amount of data in non-blocking mode with Interrupt.
 
HAL_StatusTypeDef HAL_SPI_TransmitReceive_IT (SPI_HandleTypeDef *hspi, const uint8_t *pTxData, uint8_t *pRxData, uint16_t Size)
 Transmit and Receive an amount of data in non-blocking mode with Interrupt.
 
HAL_StatusTypeDef HAL_SPI_Transmit_DMA (SPI_HandleTypeDef *hspi, const uint8_t *pData, uint16_t Size)
 Transmit an amount of data in non-blocking mode with DMA.
 
HAL_StatusTypeDef HAL_SPI_Receive_DMA (SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size)
 Receive an amount of data in non-blocking mode with DMA.
 
HAL_StatusTypeDef HAL_SPI_TransmitReceive_DMA (SPI_HandleTypeDef *hspi, const uint8_t *pTxData, uint8_t *pRxData, uint16_t Size)
 Transmit and Receive an amount of data in non-blocking mode with DMA.
 
HAL_StatusTypeDef HAL_SPI_DMAPause (SPI_HandleTypeDef *hspi)
 Pause the DMA Transfer.
 
HAL_StatusTypeDef HAL_SPI_DMAResume (SPI_HandleTypeDef *hspi)
 Resume the DMA Transfer.
 
HAL_StatusTypeDef HAL_SPI_DMAStop (SPI_HandleTypeDef *hspi)
 Stop the DMA Transfer.
 
HAL_StatusTypeDef HAL_SPI_Abort (SPI_HandleTypeDef *hspi)
 Abort ongoing transfer (blocking mode).
 
HAL_StatusTypeDef HAL_SPI_Abort_IT (SPI_HandleTypeDef *hspi)
 Abort ongoing transfer (Interrupt mode).
 
void HAL_SPI_IRQHandler (SPI_HandleTypeDef *hspi)
 Handle SPI interrupt request.
 
void HAL_SPI_TxCpltCallback (SPI_HandleTypeDef *hspi)
 Tx Transfer completed callback.
 
void HAL_SPI_RxCpltCallback (SPI_HandleTypeDef *hspi)
 Rx Transfer completed callback.
 
void HAL_SPI_TxRxCpltCallback (SPI_HandleTypeDef *hspi)
 Tx and Rx Transfer completed callback.
 
void HAL_SPI_TxHalfCpltCallback (SPI_HandleTypeDef *hspi)
 Tx Half Transfer completed callback.
 
void HAL_SPI_RxHalfCpltCallback (SPI_HandleTypeDef *hspi)
 Rx Half Transfer completed callback.
 
void HAL_SPI_TxRxHalfCpltCallback (SPI_HandleTypeDef *hspi)
 Tx and Rx Half Transfer callback.
 
void HAL_SPI_ErrorCallback (SPI_HandleTypeDef *hspi)
 SPI error callback.
 
void HAL_SPI_AbortCpltCallback (SPI_HandleTypeDef *hspi)
 SPI Abort Complete callback.
 
HAL_SPI_StateTypeDef HAL_SPI_GetState (const SPI_HandleTypeDef *hspi)
 Return the SPI handle state.
 
uint32_t HAL_SPI_GetError (const SPI_HandleTypeDef *hspi)
 Return the SPI error code.
 

Detailed Description

Header file of SPI HAL module.

Author
MCD Application Team
Attention

Copyright (c) 2016 STMicroelectronics. All rights reserved.

This software is licensed under terms that can be found in the LICENSE file in the root directory of this software component. If no LICENSE file comes with this software, it is provided AS-IS.

Definition in file stm32f4xx_hal_spi.h.