From 58f465bc5ba30e776fcaf711d42341b9a19ee32b Mon Sep 17 00:00:00 2001 From: RudolphRiedel <31180093+RudolphRiedel@users.noreply.github.com> Date: Sun, 16 Jul 2023 16:24:31 +0200 Subject: [PATCH] - fixed implementation of transfer(buf, count) to match standard Arduino implementation --- libraries/SPI/src/SPI.h | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/libraries/SPI/src/SPI.h b/libraries/SPI/src/SPI.h index ee23f807..6518340a 100644 --- a/libraries/SPI/src/SPI.h +++ b/libraries/SPI/src/SPI.h @@ -150,7 +150,7 @@ class SPIClass uint8_t transfer(uint8_t data); inline uint16_t transfer16(uint16_t data); - inline void transfer(uint8_t* buf, uint8_t count); + inline void transfer(void *buf, size_t count); // Transaction Functions // Function not used here @@ -208,14 +208,13 @@ extern SPIClass SPI; # endif #endif -void SPIClass::transfer(uint8_t *buf, uint8_t count) +void SPIClass::transfer(void *buf, size_t count) { - uint8_t buf_in[count]; - for (uint8_t i = 0; i < count; i++) + uint8_t *buffer = (uint8_t *) buf; + for (size_t index = 0; index < count; index++) { - buf_in[i] = transfer(buf[i]); + buffer[index] = transfer(buffer[index]); } - buf = buf_in; } uint16_t SPIClass::transfer16(uint16_t data)