diff --git a/Adafruit_I2CDevice.cpp b/Adafruit_I2CDevice.cpp index 9db9095..bbe869c 100644 --- a/Adafruit_I2CDevice.cpp +++ b/Adafruit_I2CDevice.cpp @@ -35,6 +35,18 @@ bool Adafruit_I2CDevice::begin(bool addr_detect) { return true; } +/*! + * @brief De-initialize device, turn off the Wire interface + */ +void Adafruit_I2CDevice::end(void) { +#ifndef ESP8266 + // ESP8266 does not implement Wire::end() + _wire->end(); +#endif + + _begun = false; +} + /*! * @brief Scans I2C for the address - note will give a false-positive * if there's no pullups on I2C diff --git a/Adafruit_I2CDevice.h b/Adafruit_I2CDevice.h index 1e27416..5baa6fd 100644 --- a/Adafruit_I2CDevice.h +++ b/Adafruit_I2CDevice.h @@ -10,6 +10,7 @@ public: Adafruit_I2CDevice(uint8_t addr, TwoWire *theWire = &Wire); uint8_t address(void); bool begin(bool addr_detect = true); + void end(void); bool detected(void); bool read(uint8_t *buffer, size_t len, bool stop = true);