SPI¶
API Reference¶
Header File¶
Functions¶
-
esp_err_t
spi_get_clk_div
(spi_host_t host, spi_clk_div_t *clk_div)¶ Get the SPI clock division factor.
- Return
- ESP_OK Success
- ESP_ERR_INVALID_ARG Parameter error
- ESP_FAIL spi has not been initialized yet
- Parameters
host
: SPI peripheral number- CSPI_HOST SPI0
- HSPI_HOST SPI1
clk_div
: Pointer to accept clock division factor
-
esp_err_t
spi_get_intr_enable
(spi_host_t host, spi_intr_enable_t *intr_enable)¶ Get SPI Interrupt Enable.
- Return
- ESP_OK Success
- ESP_ERR_INVALID_ARG Parameter error
- ESP_FAIL spi has not been initialized yet
- Parameters
host
: SPI peripheral number- CSPI_HOST SPI0
- HSPI_HOST SPI1
intr_enable
: Pointer to accept interrupt enable
-
esp_err_t
spi_get_mode
(spi_host_t host, spi_mode_t *mode)¶ Get SPI working mode.
- Return
- ESP_OK Success
- ESP_ERR_INVALID_ARG Parameter error
- ESP_FAIL spi has not been initialized yet
- Parameters
host
: SPI peripheral number- CSPI_HOST SPI0
- HSPI_HOST SPI1
mode
: Pointer to accept working mode
-
esp_err_t
spi_get_interface
(spi_host_t host, spi_interface_t *interface)¶ Get SPI bus interface configuration.
- Return
- ESP_OK Success
- ESP_ERR_INVALID_ARG Parameter error
- ESP_FAIL spi has not been initialized yet
- Parameters
host
: SPI peripheral number- CSPI_HOST SPI0
- HSPI_HOST SPI1
interface
: Pointer to accept bus interface configuration
-
esp_err_t
spi_get_event_callback
(spi_host_t host, spi_event_callback_t *event_cb)¶ Get the SPI event callback function.
- Return
- ESP_OK Success
- ESP_ERR_INVALID_ARG Parameter error
- ESP_FAIL spi has not been initialized yet
- Parameters
host
: SPI peripheral number- CSPI_HOST SPI0
- HSPI_HOST SPI1
event_cb
: Pointer to accept event callback function
-
esp_err_t
spi_set_clk_div
(spi_host_t host, spi_clk_div_t *clk_div)¶ Set the SPI clock division factor.
- Return
- ESP_OK Success
- ESP_ERR_INVALID_ARG Parameter error
- ESP_FAIL spi has not been initialized yet
- Parameters
host
: SPI peripheral number- CSPI_HOST SPI0
- HSPI_HOST SPI1
clk_div
: Pointer to deliver clock division factor
-
esp_err_t
spi_set_intr_enable
(spi_host_t host, spi_intr_enable_t *intr_enable)¶ Set SPI interrupt enable.
- Return
- ESP_OK Success
- ESP_ERR_INVALID_ARG Parameter error
- ESP_FAIL spi has not been initialized yet
- Parameters
host
: SPI peripheral number- CSPI_HOST SPI0
- HSPI_HOST SPI1
intr_enable
: Pointer to deliver interrupt enable
-
esp_err_t
spi_set_mode
(spi_host_t host, spi_mode_t *mode)¶ Set the SPI mode of operation.
- Return
- ESP_OK Success
- ESP_ERR_INVALID_ARG Parameter error
- ESP_FAIL spi has not been initialized yet
- Parameters
host
: SPI peripheral number- CSPI_HOST SPI0
- HSPI_HOST SPI1
mode
: Pointer to deliver working mode
-
esp_err_t
spi_get_dummy
(spi_host_t host, uint16_t *bitlen)¶ Get SPI dummy bitlen.
- Return
- ESP_OK Success
- ESP_ERR_INVALID_ARG Parameter error
- ESP_FAIL spi has not been initialized yet
- Parameters
host
: SPI peripheral number- CSPI_HOST SPI0
- HSPI_HOST SPI1
bitlen
: Pointer to accept dummy bitlen
-
esp_err_t
spi_set_dummy
(spi_host_t host, uint16_t *bitlen)¶ Set SPI dummy bitlen.
- Return
- ESP_OK Success
- ESP_ERR_INVALID_ARG Parameter error
- ESP_FAIL spi has not been initialized yet
- Parameters
host
: SPI peripheral number- CSPI_HOST SPI0
- HSPI_HOST SPI1
bitlen
: Pointer to deliver dummy bitlen
-
esp_err_t
spi_set_interface
(spi_host_t host, spi_interface_t *interface)¶ Set SPI bus interface configuration.
- Return
- ESP_OK Success
- ESP_ERR_INVALID_ARG Parameter error
- ESP_FAIL spi has not been initialized yet
- Parameters
host
: SPI peripheral number- CSPI_HOST SPI0
- HSPI_HOST SPI1
interface
: Pointer to deliver bus interface configuration
-
esp_err_t
spi_set_event_callback
(spi_host_t host, spi_event_callback_t *event_cb)¶ Set the SPI event callback function.
- Note
- This event_cb will be called from an ISR. So there is a stack size limit (configurable as “ISR stack size” in menuconfig). This limit is smaller compared to a global SPI interrupt handler due to the additional level of indirection.
- Return
- ESP_OK Success
- ESP_ERR_INVALID_ARG Parameter error
- ESP_FAIL spi has not been initialized yet
- Parameters
host
: SPI peripheral number- CSPI_HOST SPI0
- HSPI_HOST SPI1
event_cb
: Pointer to deliver event callback function
-
esp_err_t
spi_slave_get_status
(spi_host_t host, uint32_t *status)¶ Get SPI slave wr_status register.
- Return
- ESP_OK Success
- ESP_ERR_INVALID_ARG Parameter error
- ESP_FAIL spi has not been initialized yet
- Parameters
host
: SPI peripheral number- CSPI_HOST SPI0
- HSPI_HOST SPI1
status
: Pointer to accept wr_status register
-
esp_err_t
spi_slave_set_status
(spi_host_t host, uint32_t *status)¶ Set SPI slave rd_status register.
- Return
- ESP_OK Success
- ESP_ERR_INVALID_ARG Parameter error
- ESP_FAIL spi has not been initialized yet
- Parameters
host
: SPI peripheral number- CSPI_HOST SPI0
- HSPI_HOST SPI1
status
: Pointer to deliver rd_status register
-
esp_err_t
spi_trans
(spi_host_t host, spi_trans_t trans)¶ SPI data transfer function.
- Note
- If the bit of the corresponding phase in the transmission parameter is 0, its data will not work. For example: trans.bits.cmd = 0, cmd will not be transmitted
- Return
- ESP_OK Success
- ESP_ERR_INVALID_ARG Parameter error
- ESP_FAIL spi has not been initialized yet
- Parameters
host
: SPI peripheral number- CSPI_HOST SPI0
- HSPI_HOST SPI1
trans
: Transmission parameter structure
-
esp_err_t
spi_deinit
(spi_host_t host)¶ Deinit the spi.
- Return
- ESP_OK Success
- ESP_FAIL spi has not been initialized yet
- Parameters
host
: SPI peripheral number- CSPI_HOST SPI0
- HSPI_HOST SPI1
-
esp_err_t
spi_init
(spi_host_t host, spi_config_t *config)¶ Initialize the spi.
- Note
- SPI0 has been used by FLASH and cannot be used by the user temporarily.
- Return
- ESP_OK Success
- ESP_ERR_NO_MEM malloc fail
- ESP_FAIL spi has been initialized
- Parameters
host
: SPI peripheral number- CSPI_HOST SPI0
- HSPI_HOST SPI1
config
: Pointer to deliver initialize configuration parameter
Macros¶
-
SPI_NUM_MAX
¶
-
SPI_CPOL_LOW
¶
-
SPI_CPOL_HIGH
¶
-
SPI_CPHA_LOW
¶
-
SPI_CPHA_HIGH
¶
-
SPI_BIT_ORDER_MSB_FIRST
¶
-
SPI_BIT_ORDER_LSB_FIRST
¶
-
SPI_BYTE_ORDER_MSB_FIRST
¶
-
SPI_BYTE_ORDER_LSB_FIRST
¶
-
SPI_DEFAULT_INTERFACE
¶
-
SPI_MASTER_DEFAULT_INTR_ENABLE
¶
-
SPI_SLAVE_DEFAULT_INTR_ENABLE
¶
-
SPI_INIT_EVENT
¶
-
SPI_TRANS_START_EVENT
¶
-
SPI_TRANS_DONE_EVENT
¶
-
SPI_DEINIT_EVENT
¶
-
SPI_MASTER_WRITE_DATA_TO_SLAVE_CMD
¶
-
SPI_MASTER_READ_DATA_FROM_SLAVE_CMD
¶
-
SPI_MASTER_WRITE_STATUS_TO_SLAVE_CMD
¶
-
SPI_MASTER_READ_STATUS_FROM_SLAVE_CMD
¶
-
SPI_SLV_RD_BUF_DONE
¶
-
SPI_SLV_WR_BUF_DONE
¶
-
SPI_SLV_RD_STA_DONE
¶
-
SPI_SLV_WR_STA_DONE
¶
-
SPI_TRANS_DONE
¶