Added timeout to I2C

This commit is contained in:
dario 2024-06-18 18:46:29 +02:00
parent e811292ffc
commit 5cad092f74

View File

@ -13,6 +13,7 @@ namespace sta
: I2C{mutex} : I2C{mutex}
{ {
Wire.begin(sda, scl, frequency); Wire.begin(sda, scl, frequency);
Wire.setTimeOut(10);
} }
#else #else
ArduinoI2C::ArduinoI2C(Mutex * mutex /* = nullptr */) ArduinoI2C::ArduinoI2C(Mutex * mutex /* = nullptr */)
@ -56,6 +57,11 @@ namespace sta
{ {
size_t count = Wire.requestFrom((uint8_t)address_, (uint8_t)size); size_t count = Wire.requestFrom((uint8_t)address_, (uint8_t)size);
if (count != size)
{
STA_DEBUG_PRINTLN("Bullshit");
}
for (size_t i = 0; i < min(size, count); ++i) for (size_t i = 0; i < min(size, count); ++i)
{ {
buffer[i] = Wire.read(); buffer[i] = Wire.read();