Select one of the symbols to view example projects that use it.
 
Outline
#include "sdkconfig.h"
#include "esp_err.h"
#include "hal/spi_types.h"
#include "driver/spi_slave.h"
spi_slave_queue_reset(spi_host_device_t);
spi_slave_queue_reset_isr(spi_host_device_t);
spi_slave_queue_trans_isr(spi_host_device_t, const spi_slave_transaction_t *);
Files
loading...
SourceVuESP-IDF Framework and ExamplesESP-IDFcomponents/esp_driver_spi/include/esp_private/spi_slave_internal.h
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/* * SPDX-FileCopyrightText: 2020-2021 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 *//* ... */ /** * @brief * This file contains SPI Slave private/internal APIs. Private/Internal APIs are: * - Visible to other IDF components * - Suggest NOT to use these APIs in your applications * - We don't provide backward compatibility on these APIs either *//* ... */ #pragma once #include "sdkconfig.h" #include "esp_err.h" #include "hal/spi_types.h" #include "driver/spi_slave.h" #ifdef __cplusplus extern "C" { #endif /** * @brief Reset the trans Queue of slave driver * @note * This API is used to reset SPI Slave transaction queue. After calling this function: * - The SPI Slave transaction queue will be reset. * * @note This API shouldn't be called when the corresponding SPI Master is doing an SPI transaction. * If this gets called when its corresponding SPI Master is doing an SPI transaction, the SPI Slave behaviour is undefined * * @param host SPI peripheral that is acting as a slave * * @return * - ESP_ERR_INVALID_ARG if parameter is invalid * - ESP_OK on success *//* ... */ esp_err_t spi_slave_queue_reset(spi_host_device_t host); /** * @brief Reset the trans Queue from within ISR of slave driver * @note * This API is used to reset SPI Slave transaction queue from within ISR. After calling this function: * - The SPI Slave transaction queue will be empty. * * @param host SPI peripheral that is acting as a slave * * @return * - ESP_ERR_INVALID_ARG if parameter is invalid * - ESP_OK on success *//* ... */ esp_err_t spi_slave_queue_reset_isr(spi_host_device_t host); /** * @brief Queue a SPI transaction in ISR * @note * Similar as ``spi_slave_queue_trans``, but can and can only called within an ISR, then get the transaction results * through the transaction descriptor passed in ``spi_slave_interface_config_t::post_trans_cb``. if use this API, you * should trigger a transaction by normal ``spi_slave_queue_trans`` once and only once to start isr * * If you use both ``spi_slave_queue_trans`` and ``spi_slave_queue_trans_isr`` simultaneously to transfer valid data, * you should deal with concurrency issues on your self risk * * @param host SPI peripheral that is acting as a slave * @param trans_desc Description of transaction to execute. Not const because we may want to write status back * into the transaction description. * @return * - ESP_ERR_INVALID_ARG if parameter is invalid * - ESP_ERR_NO_MEM if trans_queue is full * - ESP_OK on success *//* ... */ esp_err_t spi_slave_queue_trans_isr(spi_host_device_t host, const spi_slave_transaction_t *trans_desc); #ifdef __cplusplus }{...} #endif
Details