NANO102/112 BSP V3.03.003
The Board Support Package for Nano102/112 Series
Macros | Functions
Collaboration diagram for SPI Exported Functions:

Macros

#define SPI_ABORT_3WIRE_TRANSFER(spi)
 Abort the current transfer in slave 3-wire mode. More...
 
#define SPI_CLR_3WIRE_START_INT_FLAG(spi)
 Clear the slave 3-wire mode start interrupt flag. More...
 
#define SPI_CLR_UNIT_TRANS_INT_FLAG(spi)
 Clear the unit transfer interrupt flag. More...
 
#define SPI_DISABLE_3WIRE_MODE(spi)
 Disable slave 3-wire mode. More...
 
#define SPI_ENABLE_3WIRE_MODE(spi)
 Enable slave 3-wire mode. More...
 
#define SPI_GET_RX_FIFO_COUNT(spi)
 Get the count of available data in RX FIFO. More...
 
#define SPI_GET_RX_FIFO_EMPTY_FLAG(spi)
 Get the Rx FIFO empty flag. More...
 
#define SPI_GET_TX_FIFO_EMPTY_FLAG(spi)
 Get the Tx FIFO empty flag. More...
 
#define SPI_GET_TX_FIFO_FULL_FLAG(spi)
 Get the Tx FIFO full flag. More...
 
#define SPI_READ_RX0(spi)
 Get the datum read from RX0 FIFO. More...
 
#define SPI_READ_RX1(spi)   ((spi)->RX1)
 Get the datum read from RX1 FIFO. More...
 
#define SPI_WRITE_TX0(spi, u32TxData)
 Write datum to TX0 register. More...
 
#define SPI_WRITE_TX1(spi, u32TxData)
 Write datum to TX1 register. More...
 
#define SPI_SET_SS0_HIGH(spi)
 Set SPIn_SS0 pin to high state. More...
 
#define SPI_SET_SS0_LOW(spi)
 Set SPIn_SS0 pin to low state. More...
 
#define SPI_SET_SS1_HIGH(spi)
 Set SPIn_SS1 pin to high state. More...
 
#define SPI_SET_SS1_LOW(spi)
 Set SPIn_SS1 pin to low state. More...
 
#define SPI_SET_SS_LEVEL(spi, ss0, ss1)   ((spi)->SSR = ((spi)->SSR & ~(SPI_SSR_AUTOSS_Msk|SPI_SSR_SS_LVL_Msk|SPI_SSR_SSR_Msk)) | (((ss1)^1) << 1) | ((ss0)^1))
 Set SPIn_SS0, SPIn_SS1 pin to high or low state. More...
 
#define SPI_ENABLE_BYTE_REORDER(spi)
 Enable byte reorder function. More...
 
#define SPI_DISABLE_BYTE_REORDER(spi)
 Disable byte reorder function. More...
 
#define SPI_SET_SUSPEND_CYCLE(spi, u32SuspCycle)
 Set the length of suspend interval. More...
 
#define SPI_SET_LSB_FIRST(spi)
 Set the SPI transfer sequence with LSB first. More...
 
#define SPI_SET_MSB_FIRST(spi)
 Set the SPI transfer sequence with MSB first. More...
 
#define SPI_IS_BUSY(spi)
 Get the SPI busy state. More...
 
#define SPI_TRIGGER(spi)
 Set the GO_BUSY bit to trigger SPI transfer. More...
 
#define SPI_ENABLE_DUAL_MODE(spi)
 Enable SPI Dual IO function. More...
 
#define SPI_DISABLE_DUAL_MODE(spi)
 Disable SPI Dual IO function. More...
 
#define SPI_ENABLE_DUAL_INPUT_MODE(spi)
 Set SPI Dual IO direction to input. More...
 
#define SPI_ENABLE_DUAL_OUTPUT_MODE(spi)
 Set SPI Dual IO direction to output. More...
 
#define SPI_TRIGGER_RX_PDMA(spi)
 Trigger RX PDMA transfer. More...
 
#define SPI_TRIGGER_TX_PDMA(spi)
 Trigger TX PDMA transfer. More...
 
#define SPI_ENABLE_2BIT_MODE(spi)
 Enable 2-bit transfer mode. More...
 
#define SPI_DISABLE_2BIT_MODE(spi)
 Disable 2-bit transfer mode. More...
 
#define SPI_GET_STATUS(spi)
 Get the status register value. More...
 

Functions

static __INLINE void SPI_SET_DATA_WIDTH (SPI_T *spi, uint32_t u32Width)
 Set the data width of a SPI transaction. More...
 
uint32_t SPI_Open (SPI_T *spi, uint32_t u32MasterSlave, uint32_t u32SPIMode, uint32_t u32DataWidth, uint32_t u32BusClock)
 This function make SPI module be ready to transfer. By default, the SPI transfer sequence is MSB first and the automatic slave select function is disabled. In Slave mode, the u32BusClock must be NULL and the SPI clock divider setting will be 0. More...
 
void SPI_Close (SPI_T *spi)
 Reset SPI module and disable SPI peripheral clock. More...
 
void SPI_ClearRxFIFO (SPI_T *spi)
 Clear Rx FIFO buffer. More...
 
void SPI_ClearTxFIFO (SPI_T *spi)
 Clear Tx FIFO buffer. More...
 
void SPI_DisableAutoSS (SPI_T *spi)
 Disable the automatic slave select function. More...
 
void SPI_EnableAutoSS (SPI_T *spi, uint32_t u32SSPinMask, uint32_t u32ActiveLevel)
 Enable the automatic slave select function. Only available in Master mode. More...
 
uint32_t SPI_SetBusClock (SPI_T *spi, uint32_t u32BusClock)
 Set the SPI bus clock. Only available in Master mode. More...
 
void SPI_EnableFIFO (SPI_T *spi, uint32_t u32TxThreshold, uint32_t u32RxThreshold)
 Enable FIFO mode with user-specified Tx FIFO threshold and Rx FIFO threshold configurations. More...
 
void SPI_DisableFIFO (SPI_T *spi)
 Disable FIFO mode. More...
 
uint32_t SPI_GetBusClock (SPI_T *spi)
 Get the actual frequency of SPI bus clock. Only available in Master mode. More...
 
void SPI_EnableInt (SPI_T *spi, uint32_t u32Mask)
 Enable FIFO related interrupts specified by u32Mask parameter. More...
 
void SPI_DisableInt (SPI_T *spi, uint32_t u32Mask)
 Disable FIFO related interrupts specified by u32Mask parameter. More...
 
void SPI_EnableWakeup (SPI_T *spi)
 Enable wake-up function. More...
 
void SPI_DisableWakeup (SPI_T *spi)
 Disable wake-up function. More...
 

Detailed Description

Macro Definition Documentation

◆ SPI_ABORT_3WIRE_TRANSFER

#define SPI_ABORT_3WIRE_TRANSFER (   spi)

Abort the current transfer in slave 3-wire mode.

Parameters
[in]spiis the base address of SPI module.
Returns
none

Definition at line 71 of file spi.h.

◆ SPI_CLR_3WIRE_START_INT_FLAG

#define SPI_CLR_3WIRE_START_INT_FLAG (   spi)

Clear the slave 3-wire mode start interrupt flag.

Parameters
[in]spiis the base address of SPI module.
Returns
none

Definition at line 79 of file spi.h.

◆ SPI_CLR_UNIT_TRANS_INT_FLAG

#define SPI_CLR_UNIT_TRANS_INT_FLAG (   spi)

Clear the unit transfer interrupt flag.

Parameters
[in]spiis the base address of SPI module.
Returns
none

Definition at line 87 of file spi.h.

◆ SPI_DISABLE_2BIT_MODE

#define SPI_DISABLE_2BIT_MODE (   spi)

Disable 2-bit transfer mode.

Parameters
[in]spiis the base address of SPI module.
Returns
none

Definition at line 359 of file spi.h.

◆ SPI_DISABLE_3WIRE_MODE

#define SPI_DISABLE_3WIRE_MODE (   spi)

Disable slave 3-wire mode.

Parameters
[in]spiis the base address of SPI module.
Returns
none

Definition at line 95 of file spi.h.

◆ SPI_DISABLE_BYTE_REORDER

#define SPI_DISABLE_BYTE_REORDER (   spi)

Disable byte reorder function.

Parameters
[in]spiis the base address of SPI module.
Returns
none

Definition at line 237 of file spi.h.

◆ SPI_DISABLE_DUAL_MODE

#define SPI_DISABLE_DUAL_MODE (   spi)

Disable SPI Dual IO function.

Parameters
[in]spiis the base address of SPI module.
Returns
none

Definition at line 311 of file spi.h.

◆ SPI_ENABLE_2BIT_MODE

#define SPI_ENABLE_2BIT_MODE (   spi)

Enable 2-bit transfer mode.

Parameters
[in]spiis the base address of SPI module.
Returns
none

Definition at line 351 of file spi.h.

◆ SPI_ENABLE_3WIRE_MODE

#define SPI_ENABLE_3WIRE_MODE (   spi)

Enable slave 3-wire mode.

Parameters
[in]spiis the base address of SPI module.
Returns
none

Definition at line 103 of file spi.h.

◆ SPI_ENABLE_BYTE_REORDER

#define SPI_ENABLE_BYTE_REORDER (   spi)

Enable byte reorder function.

Parameters
[in]spiis the base address of SPI module.
Returns
none

Definition at line 229 of file spi.h.

◆ SPI_ENABLE_DUAL_INPUT_MODE

#define SPI_ENABLE_DUAL_INPUT_MODE (   spi)

Set SPI Dual IO direction to input.

Parameters
[in]spiis the base address of SPI module.
Returns
none

Definition at line 319 of file spi.h.

◆ SPI_ENABLE_DUAL_MODE

#define SPI_ENABLE_DUAL_MODE (   spi)

Enable SPI Dual IO function.

Parameters
[in]spiis the base address of SPI module.
Returns
none

Definition at line 303 of file spi.h.

◆ SPI_ENABLE_DUAL_OUTPUT_MODE

#define SPI_ENABLE_DUAL_OUTPUT_MODE (   spi)

Set SPI Dual IO direction to output.

Parameters
[in]spiis the base address of SPI module.
Returns
none

Definition at line 327 of file spi.h.

◆ SPI_GET_RX_FIFO_COUNT

#define SPI_GET_RX_FIFO_COUNT (   spi)

Get the count of available data in RX FIFO.

Parameters
[in]spiis the base address of SPI module.
Returns
The count of available data in RX FIFO.

Definition at line 111 of file spi.h.

◆ SPI_GET_RX_FIFO_EMPTY_FLAG

#define SPI_GET_RX_FIFO_EMPTY_FLAG (   spi)

Get the Rx FIFO empty flag.

Parameters
[in]spiis the base address of SPI module.
Returns
Rx FIFO flag
Return values
0Rx FIFO is not empty
1Rx FIFO is empty

Definition at line 121 of file spi.h.

◆ SPI_GET_STATUS

#define SPI_GET_STATUS (   spi)

Get the status register value.

Parameters
[in]spiis the base address of SPI module.
Returns
status value.

Definition at line 367 of file spi.h.

◆ SPI_GET_TX_FIFO_EMPTY_FLAG

#define SPI_GET_TX_FIFO_EMPTY_FLAG (   spi)

Get the Tx FIFO empty flag.

Parameters
[in]spiis the base address of SPI module.
Returns
Tx FIFO flag
Return values
0Tx FIFO is not empty
1Tx FIFO is empty

Definition at line 131 of file spi.h.

◆ SPI_GET_TX_FIFO_FULL_FLAG

#define SPI_GET_TX_FIFO_FULL_FLAG (   spi)

Get the Tx FIFO full flag.

Parameters
[in]spiis the base address of SPI module.
Returns
Tx FIFO flag
Return values
0Tx FIFO is not full
1Tx FIFO is full

Definition at line 141 of file spi.h.

◆ SPI_IS_BUSY

#define SPI_IS_BUSY (   spi)

Get the SPI busy state.

Parameters
[in]spiis the base address of SPI module.
Returns
SPI busy status
Return values
0SPI module is not busy
1SPI module is busy

Definition at line 287 of file spi.h.

◆ SPI_READ_RX0

#define SPI_READ_RX0 (   spi)

Get the datum read from RX0 FIFO.

Parameters
[in]spiis the base address of SPI module.
Returns
Data in Rx0 register.

Definition at line 149 of file spi.h.

◆ SPI_READ_RX1

#define SPI_READ_RX1 (   spi)    ((spi)->RX1)

Get the datum read from RX1 FIFO.

Parameters
[in]spiis the base address of SPI module.
Returns
Data in Rx1 register.

Definition at line 156 of file spi.h.

◆ SPI_SET_LSB_FIRST

#define SPI_SET_LSB_FIRST (   spi)

Set the SPI transfer sequence with LSB first.

Parameters
[in]spiis the base address of SPI module.
Returns
none

Definition at line 254 of file spi.h.

◆ SPI_SET_MSB_FIRST

#define SPI_SET_MSB_FIRST (   spi)

Set the SPI transfer sequence with MSB first.

Parameters
[in]spiis the base address of SPI module.
Returns
none

Definition at line 262 of file spi.h.

◆ SPI_SET_SS0_HIGH

#define SPI_SET_SS0_HIGH (   spi)

Set SPIn_SS0 pin to high state.

Parameters
[in]spiThe pointer of the specified SPI module.
Returns
None.

Disable automatic slave selection function and set SPIn_SS0 pin to high state. Only available in Master mode.

Definition at line 183 of file spi.h.

◆ SPI_SET_SS0_LOW

#define SPI_SET_SS0_LOW (   spi)

Set SPIn_SS0 pin to low state.

Parameters
[in]spiThe pointer of the specified SPI module.
Returns
None.

Disable automatic slave selection function and set SPIn_SS0 pin to low state. Only available in Master mode.

Definition at line 192 of file spi.h.

◆ SPI_SET_SS1_HIGH

#define SPI_SET_SS1_HIGH (   spi)

Set SPIn_SS1 pin to high state.

Parameters
[in]spiThe pointer of the specified SPI module.
Returns
None.

Disable automatic slave selection function and set SPIn_SS1 pin to high state. Only available in Master mode.

Definition at line 201 of file spi.h.

◆ SPI_SET_SS1_LOW

#define SPI_SET_SS1_LOW (   spi)

Set SPIn_SS1 pin to low state.

Parameters
[in]spiThe pointer of the specified SPI module.
Returns
None.

Disable automatic slave selection function and set SPIn_SS1 pin to low state. Only available in Master mode.

Definition at line 210 of file spi.h.

◆ SPI_SET_SS_LEVEL

#define SPI_SET_SS_LEVEL (   spi,
  ss0,
  ss1 
)    ((spi)->SSR = ((spi)->SSR & ~(SPI_SSR_AUTOSS_Msk|SPI_SSR_SS_LVL_Msk|SPI_SSR_SSR_Msk)) | (((ss1)^1) << 1) | ((ss0)^1))

Set SPIn_SS0, SPIn_SS1 pin to high or low state.

Parameters
[in]spiThe pointer of the specified SPI module.
[in]ss00 = Set SPIn_SS0 to low. 1 = Set SPIn_SS0 to high.
[in]ss10 = Set SPIn_SS1 to low. 1 = Set SPIn_SS1 to high.
Returns
None.

Disable automatic slave selection function and set SPIn_SS0/SPIn_SS1 pin to specified high/low state. Only available in Master mode.

Definition at line 221 of file spi.h.

◆ SPI_SET_SUSPEND_CYCLE

#define SPI_SET_SUSPEND_CYCLE (   spi,
  u32SuspCycle 
)

Set the length of suspend interval.

Parameters
[in]spiis the base address of SPI module.
[in]u32SuspCycledecides the length of suspend interval.
Returns
none

Definition at line 246 of file spi.h.

◆ SPI_TRIGGER

#define SPI_TRIGGER (   spi)

Set the GO_BUSY bit to trigger SPI transfer.

Parameters
[in]spiis the base address of SPI module.
Returns
none

Definition at line 295 of file spi.h.

◆ SPI_TRIGGER_RX_PDMA

#define SPI_TRIGGER_RX_PDMA (   spi)

Trigger RX PDMA transfer.

Parameters
[in]spiis the base address of SPI module.
Returns
none

Definition at line 335 of file spi.h.

◆ SPI_TRIGGER_TX_PDMA

#define SPI_TRIGGER_TX_PDMA (   spi)

Trigger TX PDMA transfer.

Parameters
[in]spiis the base address of SPI module.
Returns
none

Definition at line 343 of file spi.h.

◆ SPI_WRITE_TX0

#define SPI_WRITE_TX0 (   spi,
  u32TxData 
)

Write datum to TX0 register.

Parameters
[in]spiis the base address of SPI module.
[in]u32TxDatais the datum which user attempt to transfer through SPI bus.
Returns
none

Definition at line 165 of file spi.h.

◆ SPI_WRITE_TX1

#define SPI_WRITE_TX1 (   spi,
  u32TxData 
)

Write datum to TX1 register.

Parameters
[in]spiis the base address of SPI module.
[in]u32TxDatais the datum which user attempt to transfer through SPI bus.
Returns
none

Definition at line 174 of file spi.h.

Function Documentation

◆ SPI_ClearRxFIFO()

void SPI_ClearRxFIFO ( SPI_T spi)

Clear Rx FIFO buffer.

Parameters
[in]spiis the base address of SPI module.
Returns
none

Definition at line 86 of file spi.c.

◆ SPI_ClearTxFIFO()

void SPI_ClearTxFIFO ( SPI_T spi)

Clear Tx FIFO buffer.

Parameters
[in]spiis the base address of SPI module.
Returns
none

Definition at line 96 of file spi.c.

◆ SPI_Close()

void SPI_Close ( SPI_T spi)

Reset SPI module and disable SPI peripheral clock.

Parameters
[in]spiis the base address of SPI module.
Returns
none

Definition at line 66 of file spi.c.

◆ SPI_DisableAutoSS()

void SPI_DisableAutoSS ( SPI_T spi)

Disable the automatic slave select function.

Parameters
[in]spiis the base address of SPI module.
Returns
none

Definition at line 106 of file spi.c.

◆ SPI_DisableFIFO()

void SPI_DisableFIFO ( SPI_T spi)

Disable FIFO mode.

Parameters
[in]spiis the base address of SPI module.
Returns
none

Definition at line 190 of file spi.c.

◆ SPI_DisableInt()

void SPI_DisableInt ( SPI_T spi,
uint32_t  u32Mask 
)

Disable FIFO related interrupts specified by u32Mask parameter.

Parameters
[in]spiis the base address of SPI module.
[in]u32Maskis the combination of all related interrupt enable bits. Each bit corresponds to a interrupt bit. This parameter decides which interrupts will be enabled. Valid values are:
Returns
none

Definition at line 273 of file spi.c.

◆ SPI_DisableWakeup()

void SPI_DisableWakeup ( SPI_T spi)

Disable wake-up function.

Parameters
[in]spiis the base address of SPI module.
Returns
none

Definition at line 309 of file spi.c.

◆ SPI_EnableAutoSS()

void SPI_EnableAutoSS ( SPI_T spi,
uint32_t  u32SSPinMask,
uint32_t  u32ActiveLevel 
)

Enable the automatic slave select function. Only available in Master mode.

Parameters
[in]spiis the base address of SPI module.
[in]u32SSPinMaskspecifies slave select pins. (SPI_SS)
[in]u32ActiveLevelspecifies the active level of slave select signal. Valid values are:
Returns
none

Definition at line 122 of file spi.c.

◆ SPI_EnableFIFO()

void SPI_EnableFIFO ( SPI_T spi,
uint32_t  u32TxThreshold,
uint32_t  u32RxThreshold 
)

Enable FIFO mode with user-specified Tx FIFO threshold and Rx FIFO threshold configurations.

Parameters
[in]spiis the base address of SPI module.
[in]u32TxThresholddecides the Tx FIFO threshold.
[in]u32RxThresholddecides the Rx FIFO threshold.
Returns
none

Definition at line 176 of file spi.c.

◆ SPI_EnableInt()

void SPI_EnableInt ( SPI_T spi,
uint32_t  u32Mask 
)

Enable FIFO related interrupts specified by u32Mask parameter.

Parameters
[in]spiis the base address of SPI module.
[in]u32Maskis the combination of all related interrupt enable bits. Each bit corresponds to a interrupt bit. This parameter decides which interrupts will be enabled. Valid values are:
Returns
none

Definition at line 238 of file spi.c.

◆ SPI_EnableWakeup()

void SPI_EnableWakeup ( SPI_T spi)

Enable wake-up function.

Parameters
[in]spiis the base address of SPI module.
Returns
none

Definition at line 299 of file spi.c.

◆ SPI_GetBusClock()

uint32_t SPI_GetBusClock ( SPI_T spi)

Get the actual frequency of SPI bus clock. Only available in Master mode.

Parameters
[in]spiis the base address of SPI module.
Returns
Actual SPI bus clock frequency.

Definition at line 200 of file spi.c.

Here is the call graph for this function:

◆ SPI_Open()

uint32_t SPI_Open ( SPI_T spi,
uint32_t  u32MasterSlave,
uint32_t  u32SPIMode,
uint32_t  u32DataWidth,
uint32_t  u32BusClock 
)

This function make SPI module be ready to transfer. By default, the SPI transfer sequence is MSB first and the automatic slave select function is disabled. In Slave mode, the u32BusClock must be NULL and the SPI clock divider setting will be 0.

Parameters
[in]spiis the base address of SPI module.
[in]u32MasterSlavedecides the SPI module is operating in master mode or in slave mode. Valid values are:
[in]u32SPIModedecides the transfer timing. Valid values are:
[in]u32DataWidthdecides the data width of a SPI transaction.
[in]u32BusClockis the expected frequency of SPI bus clock in Hz.
Returns
Actual frequency of SPI peripheral clock.

Definition at line 47 of file spi.c.

Here is the call graph for this function:

◆ SPI_SET_DATA_WIDTH()

static __INLINE void SPI_SET_DATA_WIDTH ( SPI_T spi,
uint32_t  u32Width 
)
static

Set the data width of a SPI transaction.

Parameters
[in]spiis the base address of SPI module.
[in]u32Widthis the data width (from 8-32 bits).
Returns
none

Definition at line 271 of file spi.h.

◆ SPI_SetBusClock()

uint32_t SPI_SetBusClock ( SPI_T spi,
uint32_t  u32BusClock 
)

Set the SPI bus clock. Only available in Master mode.

Parameters
[in]spiis the base address of SPI module.
[in]u32BusClockis the expected frequency of SPI bus clock.
Returns
Actual frequency of SPI peripheral clock.

Definition at line 133 of file spi.c.

Here is the call graph for this function:
Here is the caller graph for this function: