esp-open-rtos/extras/i2c/README.md

35 lines
803 B
Markdown
Raw Normal View History

# Yet another I2C driver for the ESP8266
This time a driver for the excellent esp-open-rtos. This is a bit banging I2C driver based on the Wikipedia pesudo C code [1].
### Usage
````
#include <i2c.h>
#define SCL_PIN (0)
#define SDA_PIN (2)
uint8_t slave_addr = 0x20;
uint8_t reg_addr = 0x1f;
uint8_t reg_data;
i2c_init(SCL_PIN, SDA_PIN);
2017-03-21 21:14:06 +00:00
// Write 1 byte to slave register
int err = i2c_slave_write(slave_addr, &reg_addr, &data, 1);
if (err != 0)
{
// do something with error
}
// Issue write to slave, sending reg_addr, followed by reading 1 byte
2017-03-21 21:14:06 +00:00
err = i2c_slave_read(slave_addr, &reg_addr, &reg_data, 1);
````
2017-03-21 21:14:06 +00:00
For details please see `extras/i2c/i2c.h`.
The driver is released under the MIT license.
[1] https://en.wikipedia.org/wiki/I²C#Example_of_bit-banging_the_I.C2.B2C_Master_protocol