Skip to content
This repository was archived by the owner on Dec 29, 2023. It is now read-only.

Commit fa71ef4

Browse files
Leonid KabanovLeonid Kabanov
Leonid Kabanov
authored and
Leonid Kabanov
committed
SPI transfer function for 2 params
1 parent e660bf5 commit fa71ef4

File tree

2 files changed

+27
-8
lines changed

2 files changed

+27
-8
lines changed

SPI.cpp

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,8 @@ void SPI::setHost(spi_host_device_t host) {
108108
* @param [in] data A data buffer used to send and receive.
109109
* @param [in] dataLen The number of bytes to transmit and receive.
110110
*/
111-
void SPI::transfer(uint8_t* data, size_t dataLen) {
112-
assert(data != nullptr);
111+
void SPI::transfer(uint8_t* txData, uint8_t* rxData, size_t dataLen) {
112+
assert(txData != nullptr && rxData != nullptr);
113113
assert(dataLen > 0);
114114
#ifdef DEBUG
115115
for (auto i = 0; i < dataLen; i++) {
@@ -122,8 +122,8 @@ void SPI::transfer(uint8_t* data, size_t dataLen) {
122122
trans_desc.flags = 0;
123123
trans_desc.length = dataLen * 8;
124124
trans_desc.rxlength = 0;
125-
trans_desc.tx_buffer = data;
126-
trans_desc.rx_buffer = data;
125+
trans_desc.tx_buffer = txData;
126+
trans_desc.rx_buffer = rxData;
127127

128128
//ESP_LOGI(tag, "... Transferring");
129129
esp_err_t rc = ::spi_device_transmit(m_handle, &trans_desc);
@@ -132,15 +132,34 @@ void SPI::transfer(uint8_t* data, size_t dataLen) {
132132
}
133133
} // transmit
134134

135-
void SPI::transfer2(uint8_t* txData, uint8_t* rxData, size_t dataLen) {
135+
/**
136+
* @brief Send and receive data through %SPI. This is a blocking call.
137+
*
138+
* @param [in] data A data buffer used to send and receive.
139+
* @param [in] dataLen The number of bytes to transmit and receive.
140+
*/
141+
void SPI::transfer(uint8_t* data, size_t dataLen) {
142+
assert(data != nullptr);
143+
assert(dataLen > 0);
144+
#ifdef DEBUG
145+
for (auto i = 0; i < dataLen; i++) {
146+
ESP_LOGD(LOG_TAG, "> %2d %.2x", i, data[i]);
147+
}
148+
#endif
136149
spi_transaction_t trans_desc;
137150
//trans_desc.address = 0;
138151
//trans_desc.command = 0;
139152
trans_desc.flags = 0;
140153
trans_desc.length = dataLen * 8;
141154
trans_desc.rxlength = 0;
142-
trans_desc.tx_buffer = txData;
143-
trans_desc.rx_buffer = rxData;
155+
trans_desc.tx_buffer = data;
156+
trans_desc.rx_buffer = data;
157+
158+
//ESP_LOGI(tag, "... Transferring");
159+
esp_err_t rc = ::spi_device_transmit(m_handle, &trans_desc);
160+
if (rc != ESP_OK) {
161+
ESP_LOGE(LOG_TAG, "transfer:spi_device_transmit: %d", rc);
162+
}
144163
} // transmit
145164

146165

SPI.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ class SPI {
2323
int csPin = DEFAULT_CS_PIN);
2424
void setHost(spi_host_device_t host);
2525
void transfer(uint8_t* data, size_t dataLen);
26-
void transfer2(uint8_t* txData, uint8_t* rxData, size_t dataLen);
26+
void transfer(uint8_t* txData, uint8_t* rxData, size_t dataLen);
2727
uint8_t transferByte(uint8_t value);
2828

2929
/**

0 commit comments

Comments
 (0)