STM32L486xx HAL User Manual
Data Structures | Defines | Functions
stm32l4xx_ll_spi.h File Reference

Header file of SPI LL module. More...

#include "stm32l4xx.h"

Go to the source code of this file.

Data Structures

struct  LL_SPI_InitTypeDef
 SPI Init structures definition. More...

Defines

#define LL_SPI_SR_RXNE   SPI_SR_RXNE
#define LL_SPI_SR_TXE   SPI_SR_TXE
#define LL_SPI_SR_BSY   SPI_SR_BSY
#define LL_SPI_SR_CRCERR   SPI_SR_CRCERR
#define LL_SPI_SR_MODF   SPI_SR_MODF
#define LL_SPI_SR_OVR   SPI_SR_OVR
#define LL_SPI_SR_FRE   SPI_SR_FRE
#define LL_SPI_CR2_RXNEIE   SPI_CR2_RXNEIE
#define LL_SPI_CR2_TXEIE   SPI_CR2_TXEIE
#define LL_SPI_CR2_ERRIE   SPI_CR2_ERRIE
#define LL_SPI_MODE_MASTER   (SPI_CR1_MSTR | SPI_CR1_SSI)
#define LL_SPI_MODE_SLAVE   0x00000000U
#define LL_SPI_PROTOCOL_MOTOROLA   0x00000000U
#define LL_SPI_PROTOCOL_TI   (SPI_CR2_FRF)
#define LL_SPI_PHASE_1EDGE   0x00000000U
#define LL_SPI_PHASE_2EDGE   (SPI_CR1_CPHA)
#define LL_SPI_POLARITY_LOW   0x00000000U
#define LL_SPI_POLARITY_HIGH   (SPI_CR1_CPOL)
#define LL_SPI_BAUDRATEPRESCALER_DIV2   0x00000000U
#define LL_SPI_BAUDRATEPRESCALER_DIV4   (SPI_CR1_BR_0)
#define LL_SPI_BAUDRATEPRESCALER_DIV8   (SPI_CR1_BR_1)
#define LL_SPI_BAUDRATEPRESCALER_DIV16   (SPI_CR1_BR_1 | SPI_CR1_BR_0)
#define LL_SPI_BAUDRATEPRESCALER_DIV32   (SPI_CR1_BR_2)
#define LL_SPI_BAUDRATEPRESCALER_DIV64   (SPI_CR1_BR_2 | SPI_CR1_BR_0)
#define LL_SPI_BAUDRATEPRESCALER_DIV128   (SPI_CR1_BR_2 | SPI_CR1_BR_1)
#define LL_SPI_BAUDRATEPRESCALER_DIV256   (SPI_CR1_BR_2 | SPI_CR1_BR_1 | SPI_CR1_BR_0)
#define LL_SPI_LSB_FIRST   (SPI_CR1_LSBFIRST)
#define LL_SPI_MSB_FIRST   0x00000000U
#define LL_SPI_FULL_DUPLEX   0x00000000U
#define LL_SPI_SIMPLEX_RX   (SPI_CR1_RXONLY)
#define LL_SPI_HALF_DUPLEX_RX   (SPI_CR1_BIDIMODE)
#define LL_SPI_HALF_DUPLEX_TX   (SPI_CR1_BIDIMODE | SPI_CR1_BIDIOE)
#define LL_SPI_NSS_SOFT   (SPI_CR1_SSM)
#define LL_SPI_NSS_HARD_INPUT   0x00000000U
#define LL_SPI_NSS_HARD_OUTPUT   (((uint32_t)SPI_CR2_SSOE << 16U))
#define LL_SPI_DATAWIDTH_4BIT   (SPI_CR2_DS_0 | SPI_CR2_DS_1)
#define LL_SPI_DATAWIDTH_5BIT   (SPI_CR2_DS_2)
#define LL_SPI_DATAWIDTH_6BIT   (SPI_CR2_DS_2 | SPI_CR2_DS_0)
#define LL_SPI_DATAWIDTH_7BIT   (SPI_CR2_DS_2 | SPI_CR2_DS_1)
#define LL_SPI_DATAWIDTH_8BIT   (SPI_CR2_DS_2 | SPI_CR2_DS_1 | SPI_CR2_DS_0)
#define LL_SPI_DATAWIDTH_9BIT   (SPI_CR2_DS_3)
#define LL_SPI_DATAWIDTH_10BIT   (SPI_CR2_DS_3 | SPI_CR2_DS_0)
#define LL_SPI_DATAWIDTH_11BIT   (SPI_CR2_DS_3 | SPI_CR2_DS_1)
#define LL_SPI_DATAWIDTH_12BIT   (SPI_CR2_DS_3 | SPI_CR2_DS_1 | SPI_CR2_DS_0)
#define LL_SPI_DATAWIDTH_13BIT   (SPI_CR2_DS_3 | SPI_CR2_DS_2)
#define LL_SPI_DATAWIDTH_14BIT   (SPI_CR2_DS_3 | SPI_CR2_DS_2 | SPI_CR2_DS_0)
#define LL_SPI_DATAWIDTH_15BIT   (SPI_CR2_DS_3 | SPI_CR2_DS_2 | SPI_CR2_DS_1)
#define LL_SPI_DATAWIDTH_16BIT   (SPI_CR2_DS_3 | SPI_CR2_DS_2 | SPI_CR2_DS_1 | SPI_CR2_DS_0)
#define LL_SPI_CRCCALCULATION_DISABLE   0x00000000U
#define LL_SPI_CRCCALCULATION_ENABLE   (SPI_CR1_CRCEN)
#define LL_SPI_CRC_8BIT   0x00000000U
#define LL_SPI_CRC_16BIT   (SPI_CR1_CRCL)
#define LL_SPI_RX_FIFO_TH_HALF   0x00000000U
#define LL_SPI_RX_FIFO_TH_QUARTER   (SPI_CR2_FRXTH)
#define LL_SPI_RX_FIFO_EMPTY   0x00000000U
#define LL_SPI_RX_FIFO_QUARTER_FULL   (SPI_SR_FRLVL_0)
#define LL_SPI_RX_FIFO_HALF_FULL   (SPI_SR_FRLVL_1)
#define LL_SPI_RX_FIFO_FULL   (SPI_SR_FRLVL_1 | SPI_SR_FRLVL_0)
#define LL_SPI_TX_FIFO_EMPTY   0x00000000U
#define LL_SPI_TX_FIFO_QUARTER_FULL   (SPI_SR_FTLVL_0)
#define LL_SPI_TX_FIFO_HALF_FULL   (SPI_SR_FTLVL_1)
#define LL_SPI_TX_FIFO_FULL   (SPI_SR_FTLVL_1 | SPI_SR_FTLVL_0)
#define LL_SPI_DMA_PARITY_EVEN   0x00000000U
#define LL_SPI_DMA_PARITY_ODD   0x00000001U
#define LL_SPI_WriteReg(__INSTANCE__, __REG__, __VALUE__)   WRITE_REG(__INSTANCE__->__REG__, (__VALUE__))
 Write a value in SPI register.
#define LL_SPI_ReadReg(__INSTANCE__, __REG__)   READ_REG(__INSTANCE__->__REG__)
 Read a value in SPI register.

Functions

__STATIC_INLINE void LL_SPI_Enable (SPI_TypeDef *SPIx)
 Enable SPI peripheral.
__STATIC_INLINE void LL_SPI_Disable (SPI_TypeDef *SPIx)
 Disable SPI peripheral.
__STATIC_INLINE uint32_t LL_SPI_IsEnabled (SPI_TypeDef *SPIx)
 Check if SPI peripheral is enabled.
__STATIC_INLINE void LL_SPI_SetMode (SPI_TypeDef *SPIx, uint32_t Mode)
 Set SPI operation mode to Master or Slave.
__STATIC_INLINE uint32_t LL_SPI_GetMode (SPI_TypeDef *SPIx)
 Get SPI operation mode (Master or Slave)
__STATIC_INLINE void LL_SPI_SetStandard (SPI_TypeDef *SPIx, uint32_t Standard)
 Set serial protocol used.
__STATIC_INLINE uint32_t LL_SPI_GetStandard (SPI_TypeDef *SPIx)
 Get serial protocol used.
__STATIC_INLINE void LL_SPI_SetClockPhase (SPI_TypeDef *SPIx, uint32_t ClockPhase)
 Set clock phase.
__STATIC_INLINE uint32_t LL_SPI_GetClockPhase (SPI_TypeDef *SPIx)
 Get clock phase.
__STATIC_INLINE void LL_SPI_SetClockPolarity (SPI_TypeDef *SPIx, uint32_t ClockPolarity)
 Set clock polarity.
__STATIC_INLINE uint32_t LL_SPI_GetClockPolarity (SPI_TypeDef *SPIx)
 Get clock polarity.
__STATIC_INLINE void LL_SPI_SetBaudRatePrescaler (SPI_TypeDef *SPIx, uint32_t BaudRate)
 Set baud rate prescaler.
__STATIC_INLINE uint32_t LL_SPI_GetBaudRatePrescaler (SPI_TypeDef *SPIx)
 Get baud rate prescaler.
__STATIC_INLINE void LL_SPI_SetTransferBitOrder (SPI_TypeDef *SPIx, uint32_t BitOrder)
 Set transfer bit order.
__STATIC_INLINE uint32_t LL_SPI_GetTransferBitOrder (SPI_TypeDef *SPIx)
 Get transfer bit order.
__STATIC_INLINE void LL_SPI_SetTransferDirection (SPI_TypeDef *SPIx, uint32_t TransferDirection)
 Set transfer direction mode.
__STATIC_INLINE uint32_t LL_SPI_GetTransferDirection (SPI_TypeDef *SPIx)
 Get transfer direction mode.
__STATIC_INLINE void LL_SPI_SetDataWidth (SPI_TypeDef *SPIx, uint32_t DataWidth)
 Set frame data width.
__STATIC_INLINE uint32_t LL_SPI_GetDataWidth (SPI_TypeDef *SPIx)
 Get frame data width.
__STATIC_INLINE void LL_SPI_SetRxFIFOThreshold (SPI_TypeDef *SPIx, uint32_t Threshold)
 Set threshold of RXFIFO that triggers an RXNE event.
__STATIC_INLINE uint32_t LL_SPI_GetRxFIFOThreshold (SPI_TypeDef *SPIx)
 Get threshold of RXFIFO that triggers an RXNE event.
__STATIC_INLINE void LL_SPI_EnableCRC (SPI_TypeDef *SPIx)
 Enable CRC.
__STATIC_INLINE void LL_SPI_DisableCRC (SPI_TypeDef *SPIx)
 Disable CRC.
__STATIC_INLINE uint32_t LL_SPI_IsEnabledCRC (SPI_TypeDef *SPIx)
 Check if CRC is enabled.
__STATIC_INLINE void LL_SPI_SetCRCWidth (SPI_TypeDef *SPIx, uint32_t CRCLength)
 Set CRC Length.
__STATIC_INLINE uint32_t LL_SPI_GetCRCWidth (SPI_TypeDef *SPIx)
 Get CRC Length.
__STATIC_INLINE void LL_SPI_SetCRCNext (SPI_TypeDef *SPIx)
 Set CRCNext to transfer CRC on the line.
__STATIC_INLINE void LL_SPI_SetCRCPolynomial (SPI_TypeDef *SPIx, uint32_t CRCPoly)
 Set polynomial for CRC calculation.
__STATIC_INLINE uint32_t LL_SPI_GetCRCPolynomial (SPI_TypeDef *SPIx)
 Get polynomial for CRC calculation.
__STATIC_INLINE uint32_t LL_SPI_GetRxCRC (SPI_TypeDef *SPIx)
 Get Rx CRC.
__STATIC_INLINE uint32_t LL_SPI_GetTxCRC (SPI_TypeDef *SPIx)
 Get Tx CRC.
__STATIC_INLINE void LL_SPI_SetNSSMode (SPI_TypeDef *SPIx, uint32_t NSS)
 Set NSS mode.
__STATIC_INLINE uint32_t LL_SPI_GetNSSMode (SPI_TypeDef *SPIx)
 Get NSS mode.
__STATIC_INLINE void LL_SPI_EnableNSSPulseMgt (SPI_TypeDef *SPIx)
 Enable NSS pulse management.
__STATIC_INLINE void LL_SPI_DisableNSSPulseMgt (SPI_TypeDef *SPIx)
 Disable NSS pulse management.
__STATIC_INLINE uint32_t LL_SPI_IsEnabledNSSPulse (SPI_TypeDef *SPIx)
 Check if NSS pulse is enabled.
__STATIC_INLINE uint32_t LL_SPI_IsActiveFlag_RXNE (SPI_TypeDef *SPIx)
 Check if Rx buffer is not empty.
__STATIC_INLINE uint32_t LL_SPI_IsActiveFlag_TXE (SPI_TypeDef *SPIx)
 Check if Tx buffer is empty.
__STATIC_INLINE uint32_t LL_SPI_IsActiveFlag_CRCERR (SPI_TypeDef *SPIx)
 Get CRC error flag.
__STATIC_INLINE uint32_t LL_SPI_IsActiveFlag_MODF (SPI_TypeDef *SPIx)
 Get mode fault error flag.
__STATIC_INLINE uint32_t LL_SPI_IsActiveFlag_OVR (SPI_TypeDef *SPIx)
 Get overrun error flag.
__STATIC_INLINE uint32_t LL_SPI_IsActiveFlag_BSY (SPI_TypeDef *SPIx)
 Get busy flag.
__STATIC_INLINE uint32_t LL_SPI_IsActiveFlag_FRE (SPI_TypeDef *SPIx)
 Get frame format error flag.
__STATIC_INLINE uint32_t LL_SPI_GetRxFIFOLevel (SPI_TypeDef *SPIx)
 Get FIFO reception Level.
__STATIC_INLINE uint32_t LL_SPI_GetTxFIFOLevel (SPI_TypeDef *SPIx)
 Get FIFO Transmission Level.
__STATIC_INLINE void LL_SPI_ClearFlag_CRCERR (SPI_TypeDef *SPIx)
 Clear CRC error flag.
__STATIC_INLINE void LL_SPI_ClearFlag_MODF (SPI_TypeDef *SPIx)
 Clear mode fault error flag.
__STATIC_INLINE void LL_SPI_ClearFlag_OVR (SPI_TypeDef *SPIx)
 Clear overrun error flag.
__STATIC_INLINE void LL_SPI_ClearFlag_FRE (SPI_TypeDef *SPIx)
 Clear frame format error flag.
__STATIC_INLINE void LL_SPI_EnableIT_ERR (SPI_TypeDef *SPIx)
 Enable error interrupt.
__STATIC_INLINE void LL_SPI_EnableIT_RXNE (SPI_TypeDef *SPIx)
 Enable Rx buffer not empty interrupt.
__STATIC_INLINE void LL_SPI_EnableIT_TXE (SPI_TypeDef *SPIx)
 Enable Tx buffer empty interrupt.
__STATIC_INLINE void LL_SPI_DisableIT_ERR (SPI_TypeDef *SPIx)
 Disable error interrupt.
__STATIC_INLINE void LL_SPI_DisableIT_RXNE (SPI_TypeDef *SPIx)
 Disable Rx buffer not empty interrupt.
__STATIC_INLINE void LL_SPI_DisableIT_TXE (SPI_TypeDef *SPIx)
 Disable Tx buffer empty interrupt.
__STATIC_INLINE uint32_t LL_SPI_IsEnabledIT_ERR (SPI_TypeDef *SPIx)
 Check if error interrupt is enabled.
__STATIC_INLINE uint32_t LL_SPI_IsEnabledIT_RXNE (SPI_TypeDef *SPIx)
 Check if Rx buffer not empty interrupt is enabled.
__STATIC_INLINE uint32_t LL_SPI_IsEnabledIT_TXE (SPI_TypeDef *SPIx)
 Check if Tx buffer empty interrupt.
__STATIC_INLINE void LL_SPI_EnableDMAReq_RX (SPI_TypeDef *SPIx)
 Enable DMA Rx.
__STATIC_INLINE void LL_SPI_DisableDMAReq_RX (SPI_TypeDef *SPIx)
 Disable DMA Rx.
__STATIC_INLINE uint32_t LL_SPI_IsEnabledDMAReq_RX (SPI_TypeDef *SPIx)
 Check if DMA Rx is enabled.
__STATIC_INLINE void LL_SPI_EnableDMAReq_TX (SPI_TypeDef *SPIx)
 Enable DMA Tx.
__STATIC_INLINE void LL_SPI_DisableDMAReq_TX (SPI_TypeDef *SPIx)
 Disable DMA Tx.
__STATIC_INLINE uint32_t LL_SPI_IsEnabledDMAReq_TX (SPI_TypeDef *SPIx)
 Check if DMA Tx is enabled.
__STATIC_INLINE void LL_SPI_SetDMAParity_RX (SPI_TypeDef *SPIx, uint32_t Parity)
 Set parity of Last DMA reception.
__STATIC_INLINE uint32_t LL_SPI_GetDMAParity_RX (SPI_TypeDef *SPIx)
 Get parity configuration for Last DMA reception.
__STATIC_INLINE void LL_SPI_SetDMAParity_TX (SPI_TypeDef *SPIx, uint32_t Parity)
 Set parity of Last DMA transmission.
__STATIC_INLINE uint32_t LL_SPI_GetDMAParity_TX (SPI_TypeDef *SPIx)
 Get parity configuration for Last DMA transmission.
__STATIC_INLINE uint32_t LL_SPI_DMA_GetRegAddr (SPI_TypeDef *SPIx)
 Get the data register address used for DMA transfer.
__STATIC_INLINE uint8_t LL_SPI_ReceiveData8 (SPI_TypeDef *SPIx)
 Read 8-Bits in the data register.
__STATIC_INLINE uint16_t LL_SPI_ReceiveData16 (SPI_TypeDef *SPIx)
 Read 16-Bits in the data register.
__STATIC_INLINE void LL_SPI_TransmitData8 (SPI_TypeDef *SPIx, uint8_t TxData)
 Write 8-Bits in the data register.
__STATIC_INLINE void LL_SPI_TransmitData16 (SPI_TypeDef *SPIx, uint16_t TxData)
 Write 16-Bits in the data register.
ErrorStatus LL_SPI_DeInit (SPI_TypeDef *SPIx)
 De-initialize the SPI registers to their default reset values.
ErrorStatus LL_SPI_Init (SPI_TypeDef *SPIx, LL_SPI_InitTypeDef *SPI_InitStruct)
 Initialize the SPI registers according to the specified parameters in SPI_InitStruct.
void LL_SPI_StructInit (LL_SPI_InitTypeDef *SPI_InitStruct)
 Set each LL_SPI_InitTypeDef field to default value.

Detailed Description

Header file of SPI LL module.

Author:
MCD Application Team
Attention:

© COPYRIGHT(c) 2017 STMicroelectronics

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of STMicroelectronics nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Definition in file stm32l4xx_ll_spi.h.