Krolyxon
Commit 1d55752

Branches

Tags

Refs →

orion-rf.piolibdepsesp32-s3-n16r8Adafruit BusIOAdafruit_I2CDevice.h

36 lines · 1.1 KB · Objective-C

1#ifndef Adafruit_I2CDevice_h
2#define Adafruit_I2CDevice_h
3
4#include <Arduino.h>
5#include <Wire.h>
6
7///< The class which defines how we will talk to this device over I2C
8class Adafruit_I2CDevice {
9public:
10 Adafruit_I2CDevice(uint8_t addr, TwoWire *theWire = &Wire);
11 uint8_t address(void);
12 bool begin(bool addr_detect = true);
13 void end(void);
14 bool detected(void);
15
16 bool read(uint8_t *buffer, size_t len, bool stop = true);
17 bool write(const uint8_t *buffer, size_t len, bool stop = true,
18 const uint8_t *prefix_buffer = nullptr, size_t prefix_len = 0);
19 bool write_then_read(const uint8_t *write_buffer, size_t write_len,
20 uint8_t *read_buffer, size_t read_len,
21 bool stop = false);
22 bool setSpeed(uint32_t desiredclk);
23
24 /*! @brief How many bytes we can read in a transaction
25 * @return The size of the Wire receive/transmit buffer */
26 size_t maxBufferSize() { return _maxBufferSize; }
27
28private:
29 uint8_t _addr;
30 TwoWire *_wire;
31 bool _begun;
32 size_t _maxBufferSize;
33 bool _read(uint8_t *buffer, size_t len, bool stop);
34};
35
36#endif // Adafruit_I2CDevice_h