@@ -108,8 +108,8 @@ void SPI::setHost(spi_host_device_t host) {
108
108
* @param [in] data A data buffer used to send and receive.
109
109
* @param [in] dataLen The number of bytes to transmit and receive.
110
110
*/
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 );
113
113
assert (dataLen > 0 );
114
114
#ifdef DEBUG
115
115
for (auto i = 0 ; i < dataLen; i++) {
@@ -122,8 +122,8 @@ void SPI::transfer(uint8_t* data, size_t dataLen) {
122
122
trans_desc.flags = 0 ;
123
123
trans_desc.length = dataLen * 8 ;
124
124
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 ;
127
127
128
128
// ESP_LOGI(tag, "... Transferring");
129
129
esp_err_t rc = ::spi_device_transmit (m_handle, &trans_desc);
@@ -132,15 +132,34 @@ void SPI::transfer(uint8_t* data, size_t dataLen) {
132
132
}
133
133
} // transmit
134
134
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
136
149
spi_transaction_t trans_desc;
137
150
// trans_desc.address = 0;
138
151
// trans_desc.command = 0;
139
152
trans_desc.flags = 0 ;
140
153
trans_desc.length = dataLen * 8 ;
141
154
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
+ }
144
163
} // transmit
145
164
146
165
0 commit comments