File tree Expand file tree Collapse file tree 1 file changed +5
-3
lines changed Expand file tree Collapse file tree 1 file changed +5
-3
lines changed Original file line number Diff line number Diff line change @@ -124,7 +124,6 @@ size_t arduino::MbedI2C::write(const uint8_t* data, int len) {
124124int arduino::MbedI2C::read () {
125125 int rv = -1 ;
126126 core_util_critical_section_enter ();
127-
128127 if (rxBuffer.available ()) {
129128
130129 rv = rxBuffer.read_char ();
@@ -160,9 +159,12 @@ void arduino::MbedI2C::receiveThd() {
160159 }
161160 if (usedTxBuffer != 0 ) {
162161 core_util_critical_section_enter ();
163- slave->write ((const char *) txBuffer, usedTxBuffer);
164- core_util_critical_section_exit ();
162+ uint8_t tempTxBuffer[256 ];
163+ uint8_t usedTempTxBuffer = usedTxBuffer;
164+ memcpy (tempTxBuffer, txBuffer, usedTempTxBuffer);
165165 usedTxBuffer = 0 ;
166+ core_util_critical_section_exit ();
167+ slave->write ((const char *) tempTxBuffer, usedTempTxBuffer);
166168 }
167169 // slave->stop();
168170 break ;
You can’t perform that action at this time.
0 commit comments