sta-core/include/sta/i2c.hpp

26 lines
579 B
C++

#ifndef STA_I2C_HPP
#define STA_I2C_HPP
#include <cstdint>
#include <sta/mutex.hpp>
namespace sta {
class I2cDevice {
protected:
uint16_t address;
Mutex* mutex;
bool master;
public:
I2cDevice(uint16_t address_10bit, Mutex* mutex=nullptr, bool master=false);
virtual bool transmit(uint8_t* data, uint16_t size, bool blocking=true) = 0;
virtual bool receive(uint8_t* data, uint16_t size, bool blocking=true) = 0;
virtual void acquire();
virtual void release();
};
}
#endif // #ifdef STA_I2C_HPP