59 void begin(uint8_t sda, uint8_t scl);
67 void pins(uint8_t sda, uint8_t scl);
109 uint8_t
requestFrom(uint8_t address, uint8_t size,
bool sendStop =
true);
120 size_t write(
const uint8_t*,
size_t)
override;
143 uint8_t twi_dcount{18};
144 unsigned twi_clockStretchLimit{0};
147 uint8_t rxBufferIndex{0};
148 uint8_t rxBufferLength{0};
150 uint8_t txAddress{0};
152 uint8_t txBufferIndex{0};
153 uint8_t txBufferLength{0};
155 bool transmitting{
false};
159 void twi_delay(uint8_t v);
160 bool twi_write_start();
161 bool twi_write_stop();
162 bool twi_write_bit(
bool bit);
164 bool twi_write_byte(uint8_t
byte);
165 uint8_t twi_read_byte(
bool nack);
166 Error twi_writeTo(uint8_t address,
const uint8_t* buf,
size_t len,
bool sendStop);
167 Error twi_readFrom(uint8_t address, uint8_t* buf,
size_t len,
bool sendStop);
170 #if !defined(NO_GLOBAL_INSTANCES) && !defined(NO_GLOBAL_TWOWIRE)
#define bit(x)
Definition: BitManipulations.h:12
#define DEFAULT_SCL_PIN
Definition: Esp32/Core/twi_arch.h:24
#define DEFAULT_SDA_PIN
Definition: Esp32/Core/twi_arch.h:23
virtual size_t write(uint8_t c)=0
Writes a single character to output stream.
Base Stream class.
Definition: Wiring/Stream.h:33
void setClock(uint32_t frequency)
Set approximate clock frequency.
size_t write(const uint8_t *, size_t) override
Writes characters from a buffer to output stream.
void end()
End TwoWire operation.
void beginTransmission(uint8_t address)
Signal start of transaction.
Status
Definition: Wire.h:34
@ I2C_SCL_HELD_LOW_AFTER_READ
Definition: Wire.h:37
@ I2C_SDA_HELD_LOW_AFTER_INIT
Definition: Wire.h:39
@ I2C_OK
Definition: Wire.h:35
@ I2C_SDA_HELD_LOW
Definition: Wire.h:38
@ I2C_SCL_HELD_LOW
Definition: Wire.h:36
Status status()
Query bus status.
void onRequest([[maybe_unused]] UserRequest callback)
Definition: Wire.h:135
TwoWire()
Definition: Wire.h:52
static constexpr size_t BUFFER_LENGTH
Definition: Wire.h:32
size_t write(uint8_t) override
Writes a single character to output stream.
uint8_t requestFrom(uint8_t address, uint8_t size, bool sendStop=true)
Perform a complete 'read' transaction.
void begin(uint8_t sda, uint8_t scl)
Initialise using selected pins.
void(*)() UserRequest
Definition: Wire.h:49
void pins(uint8_t sda, uint8_t scl)
Switch to selected pins.
void onReceive([[maybe_unused]] UserReceive callback)
Definition: Wire.h:129
void setClockStretchLimit(uint32_t limit)
Set approximate time in microseconds that clocks may be stretched by.
void(*)(int len) UserReceive
Definition: Wire.h:50
void begin()
Initialise using current pin values.
Error endTransmission(bool sendStop=true)
Perform actual transaction with device.
Error
Definition: Wire.h:42
@ I2C_ERR_LINE_BUSY
Definition: Wire.h:46
@ I2C_ERR_SUCCESS
Definition: Wire.h:43
@ I2C_ERR_ADDR_NACK
Definition: Wire.h:44
@ I2C_ERR_DATA_NACK
Definition: Wire.h:45