Fix ESP32 core 2.0.1rc1 I2C stability

Fix ESP32 core 2.0.1rc1 I2C stability by performing new function wire.end() cleaning up SHT driver initiated GPIO changes. This solves HTU driver issue.
This commit is contained in:
Theo Arends 2021-10-31 12:58:28 +01:00
parent 25026b5923
commit 818f86809b
2 changed files with 11 additions and 0 deletions

View File

@ -2010,6 +2010,16 @@ bool I2cBegin(int sda, int scl, uint32_t frequency) {
return result;
}
bool I2cEnd(void) {
bool result = true;
#ifdef ESP32
#if ESP_IDF_VERSION_MAJOR > 3
result = Wire.end();
#endif
#endif
return result;
}
#ifdef ESP32
bool I2c2Begin(int sda, int scl, uint32_t frequency = 100000);
bool I2c2Begin(int sda, int scl, uint32_t frequency) {

View File

@ -165,6 +165,7 @@ void ShtDetect(void)
sht_type = 1;
AddLog(LOG_LEVEL_DEBUG, PSTR(D_LOG_I2C D_SHT1X_FOUND));
} else {
I2cEnd();
I2cBegin(sht_sda_pin, sht_scl_pin);
sht_type = 0;
}