Serial Peripheral Interface master (SPI) driver.
More...
|
#define | NRFX_SPI_INSTANCE(id) |
| Macro for creating an instance of the SPI master driver.
|
|
#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(_pin_sck, _pin_mosi, _pin_miso, _pin_ss) |
| SPI master instance default configuration. This configuration sets up SPI with the following options:
|
|
#define | NRFX_SPI_SINGLE_XFER(p_tx, tx_len, p_rx, rx_len) |
| Macro for setting up single transfer descriptor.
|
|
#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.
|
|
#define | NRFX_SPI_INST_HANDLER_GET(idx) NRFX_CONCAT_3(nrfx_spi_, idx, _irq_handler) |
| Macro returning SPI interrupt handler.
|
|
|
typedef void(* | nrfx_spi_evt_handler_t) (nrfx_spi_evt_t const *p_event, void *p_context) |
| SPI master driver event handler type.
|
|
Serial Peripheral Interface master (SPI) driver.
◆ NRFX_SPI_DEFAULT_CONFIG
#define NRFX_SPI_DEFAULT_CONFIG |
( |
|
_pin_sck, |
|
|
|
_pin_mosi, |
|
|
|
_pin_miso, |
|
|
|
_pin_ss |
|
) |
| |
Value:{ \
.sck_pin = _pin_sck, \
.mosi_pin = _pin_mosi, \
.miso_pin = _pin_miso, \
.ss_pin = _pin_ss, \
.orc = 0xFF, \
}
@ NRF_GPIO_PIN_NOPULL
Pin pull-up resistor disabled.
Definition: nrf_gpio.h:161
@ NRF_SPI_MODE_0
SCK active high, sample on leading edge of clock.
Definition: nrf_spi.h:66
@ NRF_SPI_FREQ_4M
4 Mbps.
Definition: nrf_spi.h:57
@ NRF_SPI_BIT_ORDER_MSB_FIRST
Most significant bit shifted out first.
Definition: nrf_spi.h:75
#define NRFX_SPI_DEFAULT_CONFIG_IRQ_PRIORITY
Interrupt priority.
Definition: nrfx_spi_dox_config.h:53
SPI master instance default configuration. This configuration sets up SPI with the following options:
- over-run character set to 0xFF
- clock frequency 4 MHz
- mode 0 enabled (SCK active high, sample on leading edge of clock)
- MSB shifted out first
- MISO pull-up disabled
- Parameters
-
[in] | _pin_sck | SCK pin. |
[in] | _pin_mosi | MOSI pin. |
[in] | _pin_miso | MISO pin. |
[in] | _pin_ss | SS pin. |
◆ NRFX_SPI_INST_HANDLER_GET
#define NRFX_SPI_INST_HANDLER_GET |
( |
|
idx | ) |
NRFX_CONCAT_3(nrfx_spi_, idx, _irq_handler) |
Macro returning SPI interrupt handler.
param[in] idx SPI index.
- Returns
- Interrupt handler.
◆ NRFX_SPI_INSTANCE
#define NRFX_SPI_INSTANCE |
( |
|
id | ) |
|
Value:{ \
}
#define NRFX_CONCAT_2(p1, p2)
Macro for concatenating two tokens in macro expansion.
Definition: nrfx_common.h:134
#define NRFX_CONCAT_3(p1, p2, p3)
Macro for concatenating three tokens in macro expansion.
Definition: nrfx_common.h:155
Macro for creating an instance of the SPI master driver.
◆ NRFX_SPI_SINGLE_XFER
#define NRFX_SPI_SINGLE_XFER |
( |
|
p_tx, |
|
|
|
tx_len, |
|
|
|
p_rx, |
|
|
|
rx_len |
|
) |
| |
Value:{ \
.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.
◆ nrfx_spi_evt_type_t
SPI master driver event types, passed to the handler routine provided during initialization.
Enumerator |
---|
NRFX_SPI_EVENT_DONE | Transfer done.
|
◆ nrfx_spi_abort()
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_spi_init()
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_ALREADY | The driver is already initialized. |
NRFX_ERROR_INVALID_STATE | The driver is already initialized. Deprecated - use NRFX_ERROR_ALREADY instead. |
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. |
◆ nrfx_spi_init_check()
bool nrfx_spi_init_check |
( |
nrfx_spi_t const * |
p_instance | ) |
|
Function for checking if the SPI driver instance is initialized.
- Parameters
-
[in] | p_instance | Pointer to the driver instance structure. |
- Return values
-
true | Instance is already initialized. |
false | Instance is not initialized. |
◆ nrfx_spi_reconfigure()
Function for reconfiguring the SPI master driver instance.
- Parameters
-
[in] | p_instance | Pointer to the driver instance structure. |
[in] | p_config | Pointer to the structure with the configuration. |
- Return values
-
NRFX_SUCCESS | Reconfiguration was successful. |
NRFX_ERROR_BUSY | The driver is during transfer. |
NRFX_ERROR_INVALID_STATE | The driver is uninitialized. |
◆ nrfx_spi_uninit()
void nrfx_spi_uninit |
( |
nrfx_spi_t const * |
p_instance | ) |
|
Function for uninitializing the SPI master driver instance.
- Parameters
-
[in] | p_instance | Pointer to the driver instance structure. |
◆ nrfx_spi_xfer()
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. |