4 #ifndef __M5_I2C_CLASS_H__
5 #define __M5_I2C_CLASS_H__
8 #if __has_include ( <driver/i2c.h> )
10 #include <driver/i2c.h>
26 void setPort(i2c_port_t port_num,
int pin_sda,
int pin_scl);
33 bool begin(i2c_port_t port_num,
int pin_sda,
int pin_scl);
47 bool start(std::uint8_t address,
bool read, std::uint32_t freq)
const;
53 bool restart(std::uint8_t address,
bool read, std::uint32_t freq)
const;
58 bool stop(
void)
const;
63 bool write(std::uint8_t data)
const;
69 bool write(
const std::uint8_t* data, std::size_t length)
const;
75 bool read(std::uint8_t* result, std::size_t length)
const;
85 bool writeRegister(std::uint8_t address, std::uint8_t reg,
const std::uint8_t* data, std::size_t length, std::uint32_t freq)
const;
93 bool readRegister(std::uint8_t address, std::uint8_t reg, std::uint8_t* result, std::size_t length, std::uint32_t freq)
const;
100 bool writeRegister8(std::uint8_t address, std::uint8_t reg, std::uint8_t data, std::uint32_t freq)
const;
106 std::uint8_t
readRegister8(std::uint8_t address, std::uint8_t reg, std::uint32_t freq)
const;
113 bool bitOn(std::uint8_t address, std::uint8_t reg, std::uint8_t data, std::uint32_t freq)
const;
120 bool bitOff(std::uint8_t address, std::uint8_t reg, std::uint8_t data, std::uint32_t freq)
const;
124 void scanID(
bool* result)
const;
126 i2c_port_t
getPort(
void)
const {
return _port_num; }
127 int8_t
getSDA(
void)
const {
return _pin_sda; }
128 int8_t
getSCL(
void)
const {
return _pin_scl; }
133 i2c_port_t _port_num = (i2c_port_t)-1;
134 int8_t _pin_sda = -1;
135 int8_t _pin_scl = -1;
172 bool writeRegister(std::uint8_t reg,
const std::uint8_t* data, std::size_t length)
const
177 bool readRegister(std::uint8_t reg, std::uint8_t* result, std::size_t length)
const
182 bool bitOn(std::uint8_t reg, std::uint8_t bit)
const
187 bool bitOff(std::uint8_t reg, std::uint8_t bit)
const
bool read(std::uint8_t *result, std::size_t length) const
int8_t getSDA(void) const
void setPort(i2c_port_t port_num, int pin_sda, int pin_scl)
bool restart(std::uint8_t address, bool read, std::uint32_t freq) const
std::uint8_t readRegister8(std::uint8_t address, std::uint8_t reg, std::uint32_t freq) const
void scanID(bool *result) const
bool bitOff(std::uint8_t address, std::uint8_t reg, std::uint8_t data, std::uint32_t freq) const
bool isEnabled(void) const
bool bitOn(std::uint8_t address, std::uint8_t reg, std::uint8_t data, std::uint32_t freq) const
bool write(std::uint8_t data) const
bool writeRegister(std::uint8_t address, std::uint8_t reg, const std::uint8_t *data, std::size_t length, std::uint32_t freq) const
bool start(std::uint8_t address, bool read, std::uint32_t freq) const
int8_t getSCL(void) const
i2c_port_t getPort(void) const
bool writeRegister8(std::uint8_t address, std::uint8_t reg, std::uint8_t data, std::uint32_t freq) const
bool write(const std::uint8_t *data, std::size_t length) const
bool readRegister(std::uint8_t address, std::uint8_t reg, std::uint8_t *result, std::size_t length, std::uint32_t freq) const
bool bitOn(std::uint8_t reg, std::uint8_t bit) const
bool bitOff(std::uint8_t reg, std::uint8_t bit) const
I2C_Device(std::uint8_t i2c_addr, std::uint32_t freq, I2C_Class *i2c=&In_I2C)
bool readRegister(std::uint8_t reg, std::uint8_t *result, std::size_t length) const
std::uint8_t readRegister8(std::uint8_t reg) const
bool writeRegister8Array(const std::uint8_t *reg_data_array, std::size_t length) const
void setPort(I2C_Class *i2c)
bool isEnabled(void) const
bool writeRegister8(std::uint8_t reg, std::uint8_t data) const
bool writeRegister(std::uint8_t reg, const std::uint8_t *data, std::size_t length) const
I2C_Class Ex_I2C
for external I2C device
I2C_Class In_I2C
for internal I2C device