@@ -119,17 +119,7 @@ bool Adafruit_SPIDevice::begin(void) {
119
119
*/
120
120
void Adafruit_SPIDevice::transfer (uint8_t *buffer, size_t len) {
121
121
if (_spi) {
122
- // hardware SPI is easy
123
-
124
- #if defined(SPARK)
125
- _spi->transfer (buffer, buffer, len, NULL );
126
- #elif defined(STM32)
127
- for (size_t i = 0 ; i < len; i++) {
128
- _spi->transfer (buffer[i]);
129
- }
130
- #else
131
122
_spi->transfer (buffer, len);
132
- #endif
133
123
return ;
134
124
}
135
125
@@ -287,26 +277,9 @@ bool Adafruit_SPIDevice::write(const uint8_t *buffer, size_t len,
287
277
const uint8_t *prefix_buffer,
288
278
size_t prefix_len) {
289
279
beginTransactionWithAssertingCS ();
290
-
291
280
// do the writing
292
- #if defined(ARDUINO_ARCH_ESP32)
293
- if (_spi) {
294
- if (prefix_len > 0 ) {
295
- _spi->transferBytes (prefix_buffer, NULL , prefix_len);
296
- }
297
- if (len > 0 ) {
298
- _spi->transferBytes (buffer, NULL , len);
299
- }
300
- } else
301
- #endif
302
- {
303
- for (size_t i = 0 ; i < prefix_len; i++) {
304
- transfer (prefix_buffer[i]);
305
- }
306
- for (size_t i = 0 ; i < len; i++) {
307
- transfer (buffer[i]);
308
- }
309
- }
281
+ transfer ((uint8_t *)prefix_buffer, prefix_len);
282
+ transfer ((uint8_t *)buffer, len);
310
283
endTransactionWithDeassertingCS ();
311
284
312
285
#ifdef DEBUG_SERIAL
@@ -382,19 +355,9 @@ bool Adafruit_SPIDevice::write_then_read(const uint8_t *write_buffer,
382
355
size_t write_len, uint8_t *read_buffer,
383
356
size_t read_len, uint8_t sendvalue) {
384
357
beginTransactionWithAssertingCS ();
358
+
385
359
// do the writing
386
- #if defined(ARDUINO_ARCH_ESP32)
387
- if (_spi) {
388
- if (write_len > 0 ) {
389
- _spi->transferBytes (write_buffer, NULL , write_len);
390
- }
391
- } else
392
- #endif
393
- {
394
- for (size_t i = 0 ; i < write_len; i++) {
395
- transfer (write_buffer[i]);
396
- }
397
- }
360
+ transfer ((uint8_t *)write_buffer, write_len);
398
361
399
362
#ifdef DEBUG_SERIAL
400
363
DEBUG_SERIAL.print (F (" \t SPIDevice Wrote: " ));
@@ -410,9 +373,8 @@ bool Adafruit_SPIDevice::write_then_read(const uint8_t *write_buffer,
410
373
#endif
411
374
412
375
// do the reading
413
- for (size_t i = 0 ; i < read_len; i++) {
414
- read_buffer[i] = transfer (sendvalue);
415
- }
376
+ rt_memset (read_buffer, sendvalue, read_len);
377
+ transfer (read_buffer, read_len);
416
378
417
379
#ifdef DEBUG_SERIAL
418
380
DEBUG_SERIAL.print (F (" \t SPIDevice Read: " ));
0 commit comments