summaryrefslogtreecommitdiff
path: root/src/drivers/i2c.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/drivers/i2c.cpp')
-rw-r--r--src/drivers/i2c.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/drivers/i2c.cpp b/src/drivers/i2c.cpp
index 75beacda..36906a50 100644
--- a/src/drivers/i2c.cpp
+++ b/src/drivers/i2c.cpp
@@ -65,8 +65,12 @@ I2CTransaction::~I2CTransaction() {
free(buffer_);
}
-esp_err_t I2CTransaction::Execute(i2c_port_t port) {
- return i2c_master_cmd_begin(port, handle_, kI2CTimeout);
+esp_err_t I2CTransaction::Execute(int num_retries) {
+ esp_err_t res;
+ do {
+ res = i2c_master_cmd_begin(I2C_NUM_0, handle_, kI2CTimeout);
+ } while (res == ESP_ERR_TIMEOUT && num_retries-- > 0);
+ return res;
}
I2CTransaction& I2CTransaction::start() {