Serial Peripheral Interface master (SPI) driver. More...
Data Structures |
|
| struct | nrfx_spi_t |
|
Data structure of the Serial Peripheral Interface master (SPI) driver instance.
More...
|
|
| struct | nrfx_spi_config_t |
|
Configuration structure of the SPI master driver instance.
More...
|
|
| struct | nrfx_spi_xfer_desc_t |
|
Single transfer descriptor structure.
More...
|
|
| struct | nrfx_spi_evt_t |
|
SPI master event description with transmission details.
More...
|
|
Macros |
|
| #define | NRFX_SPI_INSTANCE (id) |
|
Macro for creating an instance of the SPI master driver.
More...
|
|
| #define | NRFX_SPI_PIN_NOT_USED 0xFF |
|
This value can be provided instead of a pin number for signals MOSI, MISO, and Slave Select to specify that the given signal is not used and therefore does not need to be connected to a pin.
|
|
| #define | NRFX_SPI_DEFAULT_CONFIG |
|
SPI master instance default configuration.
More...
|
|
| #define | NRFX_SPI_SINGLE_XFER (p_tx, tx_len, p_rx, rx_len) |
|
Macro for setting up single transfer descriptor.
More...
|
|
| #define | NRFX_SPI_XFER_TRX (p_tx_buf, tx_length, p_rx_buf, rx_length) NRFX_SPI_SINGLE_XFER (p_tx_buf, tx_length, p_rx_buf, rx_length) |
|
Macro for setting the duplex TX RX transfer.
|
|
| #define | NRFX_SPI_XFER_TX (p_buf, length) NRFX_SPI_SINGLE_XFER (p_buf, length, NULL, 0) |
|
Macro for setting the TX transfer.
|
|
| #define | NRFX_SPI_XFER_RX (p_buf, length) NRFX_SPI_SINGLE_XFER (NULL, 0, p_buf, length) |
|
Macro for setting the RX transfer.
|
|
Typedefs |
|
| typedef void(* | nrfx_spi_evt_handler_t )( nrfx_spi_evt_t const *p_event, void *p_context) |
|
SPI master driver event handler type.
|
|
Enumerations |
|
| enum | { NRFX_SPI_ENABLED_COUNT } |
| enum | nrfx_spi_evt_type_t { NRFX_SPI_EVENT_DONE } |
|
SPI master driver event types, passed to the handler routine provided during initialization.
More...
|
|
Functions |
|
| nrfx_err_t | nrfx_spi_init ( nrfx_spi_t const *const p_instance, nrfx_spi_config_t const *p_config, nrfx_spi_evt_handler_t handler, void *p_context) |
|
Function for initializing the SPI master driver instance.
More...
|
|
| void | nrfx_spi_uninit ( nrfx_spi_t const *const p_instance) |
|
Function for uninitializing the SPI master driver instance.
More...
|
|
| nrfx_err_t | nrfx_spi_xfer ( nrfx_spi_t const *const p_instance, nrfx_spi_xfer_desc_t const *p_xfer_desc, uint32_t flags) |
|
Function for starting the SPI data transfer.
More...
|
|
| void | nrfx_spi_abort ( nrfx_spi_t const *p_instance) |
|
Function for aborting the ongoing transfer.
More...
|
|
Detailed Description
Serial Peripheral Interface master (SPI) driver.
Macro Definition Documentation
| #define NRFX_SPI_DEFAULT_CONFIG |
{ \
.sck_pin = NRFX_SPI_PIN_NOT_USED, \
.mosi_pin = NRFX_SPI_PIN_NOT_USED, \
.miso_pin = NRFX_SPI_PIN_NOT_USED, \
.ss_pin = NRFX_SPI_PIN_NOT_USED, \
.irq_priority = NRFX_SPI_DEFAULT_CONFIG_IRQ_PRIORITY, \
.orc = 0xFF, \
.frequency = NRF_SPI_FREQ_4M, \
.mode = NRF_SPI_MODE_0, \
.bit_order = NRF_SPI_BIT_ORDER_MSB_FIRST, \
}
SPI master instance default configuration.
| #define NRFX_SPI_INSTANCE | ( | id | ) |
{ \
.p_reg = NRFX_CONCAT_2(NRF_SPI, id), \
.drv_inst_idx = NRFX_CONCAT_3(NRFX_SPI, id, _INST_IDX), \
}
Macro for creating an instance of the SPI master driver.
| #define NRFX_SPI_SINGLE_XFER | ( | p_tx, | |
| tx_len, | |||
| p_rx, | |||
| rx_len | |||
| ) |
{ \
.p_tx_buffer = (uint8_t const *)(p_tx), \
.tx_length = (tx_len), \
.p_rx_buffer = (p_rx), \
.rx_length = (rx_len), \
}
Macro for setting up single transfer descriptor.
This macro is for internal use only.
Enumeration Type Documentation
| enum nrfx_spi_evt_type_t |
Function Documentation
| void nrfx_spi_abort | ( | nrfx_spi_t const * | p_instance | ) |
Function for aborting the ongoing transfer.
- Parameters
-
[in] p_instance Pointer to the driver instance structure.
| nrfx_err_t nrfx_spi_init | ( | nrfx_spi_t const *const | p_instance , |
| nrfx_spi_config_t const * | p_config , | ||
| nrfx_spi_evt_handler_t | handler , | ||
| void * | p_context | ||
| ) |
Function for initializing the SPI master driver instance.
This function configures and enables the specified peripheral.
- Parameters
-
[in] p_instance Pointer to the driver instance structure. [in] p_config Pointer to the structure with the initial configuration. [in] handler Event handler provided by the user. If NULL, transfers will be performed in blocking mode. [in] p_context Context passed to the event handler.
- Return values
-
NRFX_SUCCESS Initialization was successful. NRFX_ERROR_INVALID_STATE The driver was already initialized. NRFX_ERROR_BUSY Some other peripheral with the same instance ID is already in use. This is possible only if Peripheral Resource Sharing (PRS) module is enabled.
| void nrfx_spi_uninit | ( | nrfx_spi_t const *const | p_instance | ) |
Function for uninitializing the SPI master driver instance.
- Parameters
-
[in] p_instance Pointer to the driver instance structure.
| nrfx_err_t nrfx_spi_xfer | ( | nrfx_spi_t const *const | p_instance , |
| nrfx_spi_xfer_desc_t const * | p_xfer_desc , | ||
| uint32_t | flags | ||
| ) |
Function for starting the SPI data transfer.
If an event handler was provided in the nrfx_spi_init call, this function returns immediately and the handler is called when the transfer is done. Otherwise, the transfer is performed in blocking mode, which means that this function returns when the transfer is finished.
- Parameters
-
p_instance Pointer to the driver instance structure. p_xfer_desc Pointer to the transfer descriptor. flags Transfer options (0 for default settings). Currently, no additional flags are available.
- Return values
-
NRFX_SUCCESS The procedure is successful. NRFX_ERROR_BUSY The driver is not ready for a new transfer. NRFX_ERROR_NOT_SUPPORTED The provided parameters are not supported.