sta-core/include/sta/i2c.hpp

35 lines
643 B
C++

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