STM32F103xB HAL User Manual
|
SPI HAL module driver. This file provides firmware functions to manage the following functionalities of the Serial Peripheral Interface (SPI) peripheral: + Initialization and de-initialization functions + IO operation functions + Peripheral Control functions + Peripheral State functions. More...
#include "stm32f1xx_hal.h"
Go to the source code of this file.
Defines | |
#define | SPI_DEFAULT_TIMEOUT 100U |
Functions | |
static void | SPI_DMATransmitCplt (DMA_HandleTypeDef *hdma) |
DMA SPI transmit process complete callback. | |
static void | SPI_DMAReceiveCplt (DMA_HandleTypeDef *hdma) |
DMA SPI receive process complete callback. | |
static void | SPI_DMATransmitReceiveCplt (DMA_HandleTypeDef *hdma) |
DMA SPI transmit receive process complete callback. | |
static void | SPI_DMAHalfTransmitCplt (DMA_HandleTypeDef *hdma) |
DMA SPI half transmit process complete callback. | |
static void | SPI_DMAHalfReceiveCplt (DMA_HandleTypeDef *hdma) |
DMA SPI half receive process complete callback. | |
static void | SPI_DMAHalfTransmitReceiveCplt (DMA_HandleTypeDef *hdma) |
DMA SPI half transmit receive process complete callback. | |
static void | SPI_DMAError (DMA_HandleTypeDef *hdma) |
DMA SPI communication error callback. | |
static void | SPI_DMAAbortOnError (DMA_HandleTypeDef *hdma) |
DMA SPI communication abort callback, when initiated by HAL services on Error (To be called at end of DMA Abort procedure following error occurrence). | |
static void | SPI_DMATxAbortCallback (DMA_HandleTypeDef *hdma) |
DMA SPI Tx communication abort callback, when initiated by user (To be called at end of DMA Tx Abort procedure following user abort request). | |
static void | SPI_DMARxAbortCallback (DMA_HandleTypeDef *hdma) |
DMA SPI Rx communication abort callback, when initiated by user (To be called at end of DMA Rx Abort procedure following user abort request). | |
static HAL_StatusTypeDef | SPI_WaitFlagStateUntilTimeout (SPI_HandleTypeDef *hspi, uint32_t Flag, FlagStatus State, uint32_t Timeout, uint32_t Tickstart) |
Handle SPI Communication Timeout. | |
static void | SPI_TxISR_8BIT (struct __SPI_HandleTypeDef *hspi) |
Handle the data 8-bit transmit in Interrupt mode. | |
static void | SPI_TxISR_16BIT (struct __SPI_HandleTypeDef *hspi) |
Handle the data 16-bit transmit in Interrupt mode. | |
static void | SPI_RxISR_8BIT (struct __SPI_HandleTypeDef *hspi) |
Manage the receive 8-bit in Interrupt context. | |
static void | SPI_RxISR_16BIT (struct __SPI_HandleTypeDef *hspi) |
Manage the 16-bit receive in Interrupt context. | |
static void | SPI_2linesRxISR_8BIT (struct __SPI_HandleTypeDef *hspi) |
Rx 8-bit handler for Transmit and Receive in Interrupt mode. | |
static void | SPI_2linesTxISR_8BIT (struct __SPI_HandleTypeDef *hspi) |
Tx 8-bit handler for Transmit and Receive in Interrupt mode. | |
static void | SPI_2linesTxISR_16BIT (struct __SPI_HandleTypeDef *hspi) |
Tx 16-bit handler for Transmit and Receive in Interrupt mode. | |
static void | SPI_2linesRxISR_16BIT (struct __SPI_HandleTypeDef *hspi) |
Rx 16-bit handler for Transmit and Receive in Interrupt mode. | |
static void | SPI_RxISR_8BITCRC (struct __SPI_HandleTypeDef *hspi) |
Manage the CRC 8-bit receive in Interrupt context. | |
static void | SPI_RxISR_16BITCRC (struct __SPI_HandleTypeDef *hspi) |
Manage the CRC 16-bit receive in Interrupt context. | |
static void | SPI_2linesRxISR_8BITCRC (struct __SPI_HandleTypeDef *hspi) |
Rx 8-bit handler for Transmit and Receive in Interrupt mode. | |
static void | SPI_2linesRxISR_16BITCRC (struct __SPI_HandleTypeDef *hspi) |
Manage the CRC 16-bit receive for Transmit and Receive in Interrupt mode. | |
static void | SPI_AbortRx_ISR (SPI_HandleTypeDef *hspi) |
Handle abort a Rx transaction. | |
static void | SPI_AbortTx_ISR (SPI_HandleTypeDef *hspi) |
Handle abort a Tx or Rx/Tx transaction. | |
static void | SPI_CloseRxTx_ISR (SPI_HandleTypeDef *hspi) |
Handle the end of the RXTX transaction. | |
static void | SPI_CloseRx_ISR (SPI_HandleTypeDef *hspi) |
Handle the end of the RX transaction. | |
static void | SPI_CloseTx_ISR (SPI_HandleTypeDef *hspi) |
Handle the end of the TX transaction. | |
static HAL_StatusTypeDef | SPI_EndRxTransaction (SPI_HandleTypeDef *hspi, uint32_t Timeout, uint32_t Tickstart) |
Handle the check of the RX transaction complete. | |
static HAL_StatusTypeDef | SPI_EndRxTxTransaction (SPI_HandleTypeDef *hspi, uint32_t Timeout, uint32_t Tickstart) |
Handle the check of the RXTX or TX transaction complete. | |
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. | |
__weak void | HAL_SPI_MspInit (SPI_HandleTypeDef *hspi) |
Initialize the SPI MSP. | |
__weak void | HAL_SPI_MspDeInit (SPI_HandleTypeDef *hspi) |
De-Initialize the SPI MSP. | |
HAL_StatusTypeDef | HAL_SPI_RegisterCallback (SPI_HandleTypeDef *hspi, HAL_SPI_CallbackIDTypeDef CallbackID, pSPI_CallbackTypeDef pCallback) |
Register a User SPI Callback To be used instead of the weak predefined callback. | |
HAL_StatusTypeDef | HAL_SPI_UnRegisterCallback (SPI_HandleTypeDef *hspi, HAL_SPI_CallbackIDTypeDef CallbackID) |
Unregister an SPI Callback SPI callback is redirected to the weak predefined callback. | |
HAL_StatusTypeDef | HAL_SPI_Transmit (SPI_HandleTypeDef *hspi, 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, 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, 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, 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, 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, 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_Abort (SPI_HandleTypeDef *hspi) |
Abort ongoing transfer (blocking mode). | |
HAL_StatusTypeDef | HAL_SPI_Abort_IT (SPI_HandleTypeDef *hspi) |
Abort ongoing transfer (Interrupt mode). | |
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. | |
void | HAL_SPI_IRQHandler (SPI_HandleTypeDef *hspi) |
Handle SPI interrupt request. | |
__weak void | HAL_SPI_TxCpltCallback (SPI_HandleTypeDef *hspi) |
Tx Transfer completed callback. | |
__weak void | HAL_SPI_RxCpltCallback (SPI_HandleTypeDef *hspi) |
Rx Transfer completed callback. | |
__weak void | HAL_SPI_TxRxCpltCallback (SPI_HandleTypeDef *hspi) |
Tx and Rx Transfer completed callback. | |
__weak void | HAL_SPI_TxHalfCpltCallback (SPI_HandleTypeDef *hspi) |
Tx Half Transfer completed callback. | |
__weak void | HAL_SPI_RxHalfCpltCallback (SPI_HandleTypeDef *hspi) |
Rx Half Transfer completed callback. | |
__weak void | HAL_SPI_TxRxHalfCpltCallback (SPI_HandleTypeDef *hspi) |
Tx and Rx Half Transfer callback. | |
__weak void | HAL_SPI_ErrorCallback (SPI_HandleTypeDef *hspi) |
SPI error callback. | |
__weak void | HAL_SPI_AbortCpltCallback (SPI_HandleTypeDef *hspi) |
SPI Abort Complete callback. | |
HAL_SPI_StateTypeDef | HAL_SPI_GetState (SPI_HandleTypeDef *hspi) |
Return the SPI handle state. | |
uint32_t | HAL_SPI_GetError (SPI_HandleTypeDef *hspi) |
Return the SPI error code. | |
uint8_t | SPI_ISCRCErrorValid (SPI_HandleTypeDef *hspi) |
Checks if encountered CRC error could be corresponding to wrongly detected errors according to SPI instance, Device type, and revision ID. |
SPI HAL module driver. This file provides firmware functions to manage the following functionalities of the Serial Peripheral Interface (SPI) peripheral: + Initialization and de-initialization functions + IO operation functions + Peripheral Control functions + Peripheral State functions.
Additional table :
DataSize = SPI_DATASIZE_8BIT: +----------------------------------------------------------------------------------------------+ | | | 2Lines Fullduplex | 2Lines RxOnly | 1Line | | Process | Transfer mode |---------------------|----------------------|----------------------| | | | Master | Slave | Master | Slave | Master | Slave | |==============================================================================================| | T | Polling | Fpclk/2 | Fpclk/2 | NA | NA | NA | NA | | X |----------------|----------|----------|-----------|----------|-----------|----------| | / | Interrupt | Fpclk/4 | Fpclk/8 | NA | NA | NA | NA | | R |----------------|----------|----------|-----------|----------|-----------|----------| | X | DMA | Fpclk/2 | Fpclk/2 | NA | NA | NA | NA | |=========|================|==========|==========|===========|==========|===========|==========| | | Polling | Fpclk/2 | Fpclk/2 | Fpclk/64 | Fpclk/2 | Fpclk/64 | Fpclk/2 | | |----------------|----------|----------|-----------|----------|-----------|----------| | R | Interrupt | Fpclk/8 | Fpclk/8 | Fpclk/64 | Fpclk/2 | Fpclk/64 | Fpclk/2 | | X |----------------|----------|----------|-----------|----------|-----------|----------| | | DMA | Fpclk/2 | Fpclk/2 | Fpclk/64 | Fpclk/2 | Fpclk/128 | Fpclk/2 | |=========|================|==========|==========|===========|==========|===========|==========| | | Polling | Fpclk/2 | Fpclk/4 | NA | NA | Fpclk/2 | Fpclk/64 | | |----------------|----------|----------|-----------|----------|-----------|----------| | T | Interrupt | Fpclk/2 | Fpclk/4 | NA | NA | Fpclk/2 | Fpclk/64 | | X |----------------|----------|----------|-----------|----------|-----------|----------| | | DMA | Fpclk/2 | Fpclk/2 | NA | NA | Fpclk/2 | Fpclk/128| +----------------------------------------------------------------------------------------------+
DataSize = SPI_DATASIZE_16BIT: +----------------------------------------------------------------------------------------------+ | | | 2Lines Fullduplex | 2Lines RxOnly | 1Line | | Process | Transfer mode |---------------------|----------------------|----------------------| | | | Master | Slave | Master | Slave | Master | Slave | |==============================================================================================| | T | Polling | Fpclk/2 | Fpclk/2 | NA | NA | NA | NA | | X |----------------|----------|----------|-----------|----------|-----------|----------| | / | Interrupt | Fpclk/4 | Fpclk/4 | NA | NA | NA | NA | | R |----------------|----------|----------|-----------|----------|-----------|----------| | X | DMA | Fpclk/2 | Fpclk/2 | NA | NA | NA | NA | |=========|================|==========|==========|===========|==========|===========|==========| | | Polling | Fpclk/2 | Fpclk/2 | Fpclk/64 | Fpclk/2 | Fpclk/32 | Fpclk/2 | | |----------------|----------|----------|-----------|----------|-----------|----------| | R | Interrupt | Fpclk/4 | Fpclk/4 | Fpclk/64 | Fpclk/2 | Fpclk/64 | Fpclk/2 | | X |----------------|----------|----------|-----------|----------|-----------|----------| | | DMA | Fpclk/2 | Fpclk/2 | Fpclk/64 | Fpclk/2 | Fpclk/128 | Fpclk/2 | |=========|================|==========|==========|===========|==========|===========|==========| | | Polling | Fpclk/2 | Fpclk/2 | NA | NA | Fpclk/2 | Fpclk/32 | | |----------------|----------|----------|-----------|----------|-----------|----------| | T | Interrupt | Fpclk/2 | Fpclk/2 | NA | NA | Fpclk/2 | Fpclk/64 | | X |----------------|----------|----------|-----------|----------|-----------|----------| | | DMA | Fpclk/2 | Fpclk/2 | NA | NA | Fpclk/2 | Fpclk/128| +----------------------------------------------------------------------------------------------+
This software component is licensed by ST under BSD 3-Clause license, the "License"; You may not use this file except in compliance with the License. You may obtain a copy of the License at: opensource.org/licenses/BSD-3-Clause
Definition in file stm32f1xx_hal_spi.c.