diff --git a/hardware/arduino/sam/libraries/Wire/Wire.cpp b/hardware/arduino/sam/libraries/Wire/Wire.cpp index 10e371180..1e0f4c1e9 100644 --- a/hardware/arduino/sam/libraries/Wire/Wire.cpp +++ b/hardware/arduino/sam/libraries/Wire/Wire.cpp @@ -143,8 +143,10 @@ uint8_t TwoWire::requestFrom(uint8_t address, uint8_t quantity, uint8_t sendStop if (readed + 1 == quantity) TWI_SendSTOPCondition( twi); - TWI_WaitByteReceived(twi, RECV_TIMEOUT); - rxBuffer[readed++] = TWI_ReadByte(twi); + if (TWI_WaitByteReceived(twi, RECV_TIMEOUT)) + rxBuffer[readed++] = TWI_ReadByte(twi); + else + break; } while (readed < quantity); TWI_WaitTransferComplete(twi, RECV_TIMEOUT);