@@ -119,17 +119,7 @@ bool Adafruit_SPIDevice::begin(void) {
119119 */
120120void Adafruit_SPIDevice::transfer (uint8_t *buffer, size_t len) {
121121 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
131122 _spi->transfer (buffer, len);
132- #endif
133123 return ;
134124 }
135125
@@ -287,26 +277,9 @@ bool Adafruit_SPIDevice::write(const uint8_t *buffer, size_t len,
287277 const uint8_t *prefix_buffer,
288278 size_t prefix_len) {
289279 beginTransactionWithAssertingCS ();
290-
291280 // 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);
310283 endTransactionWithDeassertingCS ();
311284
312285#ifdef DEBUG_SERIAL
@@ -382,19 +355,9 @@ bool Adafruit_SPIDevice::write_then_read(const uint8_t *write_buffer,
382355 size_t write_len, uint8_t *read_buffer,
383356 size_t read_len, uint8_t sendvalue) {
384357 beginTransactionWithAssertingCS ();
358+
385359 // 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);
398361
399362#ifdef DEBUG_SERIAL
400363 DEBUG_SERIAL.print (F (" \t SPIDevice Wrote: " ));
@@ -410,9 +373,8 @@ bool Adafruit_SPIDevice::write_then_read(const uint8_t *write_buffer,
410373#endif
411374
412375 // 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);
416378
417379#ifdef DEBUG_SERIAL
418380 DEBUG_SERIAL.print (F (" \t SPIDevice Read: " ));
0 commit comments