From 7a9a584b7cdfdbc55c5cf02101089e5473a0a55c Mon Sep 17 00:00:00 2001 From: "Earle F. Philhower, III" Date: Fri, 23 Jul 2021 15:14:33 -0700 Subject: [PATCH] Use Stream::setTimeout to specify I2C TO Use the existing Arduino Stream method of setTimeout to set the Wire I2C timeout delay. Fixes #260 --- libraries/Wire/{ => src}/Wire.cpp | 4 ++-- libraries/Wire/{ => src}/Wire.h | 0 2 files changed, 2 insertions(+), 2 deletions(-) rename libraries/Wire/{ => src}/Wire.cpp (98%) rename libraries/Wire/{ => src}/Wire.h (100%) diff --git a/libraries/Wire/Wire.cpp b/libraries/Wire/src/Wire.cpp similarity index 98% rename from libraries/Wire/Wire.cpp rename to libraries/Wire/src/Wire.cpp index 5219a68c..6d529ded 100644 --- a/libraries/Wire/Wire.cpp +++ b/libraries/Wire/src/Wire.cpp @@ -201,7 +201,7 @@ size_t TwoWire::requestFrom(uint8_t address, size_t quantity, bool stopBit) { return 0; } - _buffLen = i2c_read_blocking_until(_i2c, address, _buff, quantity, !stopBit, make_timeout_time_ms(50)); + _buffLen = i2c_read_blocking_until(_i2c, address, _buff, quantity, !stopBit, make_timeout_time_ms(_timeout)); if (_buffLen == PICO_ERROR_GENERIC) { _buffLen = 0; } @@ -292,7 +292,7 @@ uint8_t TwoWire::endTransmission(bool stopBit) { return _probe(_addr, _sda, _scl, _clkHz) ? 0 : 2; } else { auto len = _buffLen; - auto ret = i2c_write_blocking_until(_i2c, _addr, _buff, _buffLen, !stopBit, make_timeout_time_ms(50)); + auto ret = i2c_write_blocking_until(_i2c, _addr, _buff, _buffLen, !stopBit, make_timeout_time_ms(_timeout)); _buffLen = 0; return (ret == len) ? 0 : 4; } diff --git a/libraries/Wire/Wire.h b/libraries/Wire/src/Wire.h similarity index 100% rename from libraries/Wire/Wire.h rename to libraries/Wire/src/Wire.h -- 2.54.0