18 m5gfx::i2c::setPins(port_num, sda, scl).has_value();
29 return m5gfx::i2c::init(_port_num).has_value();
34 return m5gfx::i2c::release(_port_num).has_value();
39 return m5gfx::i2c::beginTransaction(_port_num, address, freq,
read).has_value();
44 return m5gfx::i2c::restart(_port_num, address, freq,
read).has_value();
49 return m5gfx::i2c::endTransaction(_port_num).has_value();
54 return m5gfx::i2c::writeBytes(_port_num, &data, 1).has_value();
57 bool I2C_Class::write(
const std::uint8_t* __restrict__ data, std::size_t length)
const
59 return m5gfx::i2c::writeBytes(_port_num, data, length).has_value();
64 return m5gfx::i2c::readBytes(_port_num, result, length).has_value();
67 bool I2C_Class::writeRegister(std::uint8_t address, std::uint8_t reg,
const std::uint8_t* __restrict__ data, std::size_t length, std::uint32_t freq)
const
69 return m5gfx::i2c::beginTransaction(_port_num, address, freq,
false).has_value()
70 && m5gfx::i2c::writeBytes(_port_num, ®, 1).has_value()
71 && m5gfx::i2c::writeBytes(_port_num, data, length).has_value()
72 && m5gfx::i2c::endTransaction(_port_num).has_value();
75 bool I2C_Class::readRegister(std::uint8_t address, std::uint8_t reg, std::uint8_t* __restrict__ result, std::size_t length, std::uint32_t freq)
const
77 return m5gfx::i2c::readRegister(_port_num, address, reg, result, length, freq).has_value();
82 return m5gfx::i2c::writeRegister8(_port_num, address, reg, data, 0, freq).has_value();
87 return m5gfx::i2c::readRegister8(_port_num, address, reg, freq).value_or(0);
90 bool I2C_Class::bitOn(std::uint8_t address, std::uint8_t reg, std::uint8_t data, std::uint32_t freq)
const
92 return m5gfx::i2c::bitOn(_port_num, address, reg, data, freq).has_value();
95 bool I2C_Class::bitOff(std::uint8_t address, std::uint8_t reg, std::uint8_t data, std::uint32_t freq)
const
97 return m5gfx::i2c::bitOff(_port_num, address, reg, data, freq).has_value();
103 for (
int i = 8; i < 0x78; i++)
105 result[i] =
start(i,
false, 400000) &&
stop();
111 for (
size_t i = 0; i < length; i+=2)
bool read(std::uint8_t *result, std::size_t length) 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 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
bool writeRegister8(std::uint8_t address, std::uint8_t reg, std::uint8_t data, std::uint32_t freq) 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 writeRegister8Array(const std::uint8_t *reg_data_array, std::size_t length) const
I2C_Class Ex_I2C
for external I2C device
I2C_Class In_I2C
for internal I2C device