I2C driver

This commit is contained in:
Emanuele Trabattoni
2025-06-21 16:34:11 +02:00
parent 2a33316ba8
commit 83a63c1241
6 changed files with 100 additions and 41 deletions

View File

@@ -1,10 +1,25 @@
#pragma once
#include <Wire.h>
#include <vector>
#include <mutex>
#define I2C_SCL_PIN 41
#define I2C_SDA_PIN 42
#define I2C_SCL_PIN 41
#define I2C_SDA_PIN 42
void I2C_Init(void);
namespace drivers {
class I2C {
private:
bool isInitialized = false;
std::mutex busy;
bool I2C_Read(uint8_t Driver_addr, uint8_t Reg_addr, uint8_t *Reg_data, uint32_t Length);
bool I2C_Write(uint8_t Driver_addr, uint8_t Reg_addr, const uint8_t *Reg_data, uint32_t Length);
public:
I2C(void);
~I2C(void);
const bool Read(const uint8_t deviceAddr, const uint8_t deviceReg, const uint8_t len, std::vector<uint8_t> &data);
const bool Write(const uint8_t deviceAddr, const uint8_t deviceReg, const std::vector<uint8_t> &data);
};
}