8 TwoWire *
i2c =
nullptr;
11 bool beginI2C(uint8_t addr, TwoWire &wire, uint32_t speed,
12 uint8_t sda = 255, uint8_t scl = 255)
18 if (sda != 255 && scl != 255)
29 return (
i2c->endTransmission() == 0);
32 int8_t
read(uint8_t reg, uint8_t *data, uint32_t len)
override
39 if (
i2c->endTransmission(
false) != 0)
46 uint8_t received =
i2c->requestFrom(
address, (uint8_t)len);
50 for (uint32_t i = 0; i < len; i++)
52 if (!
i2c->available())
54 data[i] =
i2c->read();
70 uint8_t, uint8_t, uint8_t)
override
75 int8_t
write(uint8_t reg,
const uint8_t *data, uint32_t len)
override
82 for (uint32_t i = 0; i < len; i++)
85 uint8_t status =
i2c->endTransmission();
96 return (status == 0) ? 0 : -status;
int8_t write(uint8_t reg, const uint8_t *data, uint32_t len) override
bool beginSPI(uint8_t, SPIClass &, uint32_t, uint8_t, uint8_t, uint8_t) override
int8_t read(uint8_t reg, uint8_t *data, uint32_t len) override
bool beginI2C(uint8_t addr, TwoWire &wire, uint32_t speed, uint8_t sda=255, uint8_t scl=255)