diff --git a/libraries/Wire/Wire.cpp b/libraries/Wire/Wire.cpp index 9b345d3e1..155ab4fc8 100644 --- a/libraries/Wire/Wire.cpp +++ b/libraries/Wire/Wire.cpp @@ -124,7 +124,6 @@ size_t arduino::MbedI2C::write(const uint8_t* data, int len) { int arduino::MbedI2C::read() { int rv = -1; core_util_critical_section_enter(); - if (rxBuffer.available()) { rv = rxBuffer.read_char(); @@ -160,9 +159,12 @@ void arduino::MbedI2C::receiveThd() { } if (usedTxBuffer != 0) { core_util_critical_section_enter(); - slave->write((const char *) txBuffer, usedTxBuffer); - core_util_critical_section_exit(); + uint8_t tempTxBuffer[256]; + uint8_t usedTempTxBuffer = usedTxBuffer; + memcpy(tempTxBuffer, txBuffer, usedTempTxBuffer); usedTxBuffer = 0; + core_util_critical_section_exit(); + slave->write((const char *) tempTxBuffer, usedTempTxBuffer); } //slave->stop(); break; pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy