File syn_i2c_dev.h¶
FileList > drivers > syn_i2c_dev.h
Go to the source code of this file
I2C device register helpers — thin layer over port I2C. More...
#include "../common/syn_defs.h"#include "../port/syn_port_i2c.h"#include <stddef.h>#include <stdint.h>
Classes¶
| Type | Name |
|---|---|
| struct | SYN_I2CDev I2C device descriptor — bus number + 7-bit address. |
Public Static Functions¶
| Type | Name |
|---|---|
| void | syn_i2c_dev_init (SYN_I2CDev * dev, uint8_t bus, uint8_t addr) Initialize device descriptor. |
| SYN_Status | syn_i2c_dev_modify8 (const SYN_I2CDev * dev, uint8_t reg, uint8_t mask, uint8_t val) Modify register: read, mask, set bits, write back. |
| uint16_t | syn_i2c_dev_read16_be (const SYN_I2CDev * dev, uint8_t reg) Read a 16-bit register (big-endian, MSB first). |
| uint16_t | syn_i2c_dev_read16_le (const SYN_I2CDev * dev, uint8_t reg) Read a 16-bit register (little-endian, LSB first). |
| uint8_t | syn_i2c_dev_read8 (const SYN_I2CDev * dev, uint8_t reg) Read a single 8-bit register. |
| SYN_Status | syn_i2c_dev_read_burst (const SYN_I2CDev * dev, uint8_t reg, uint8_t * buf, size_t len) Burst read: read len bytes starting fromreg . |
| SYN_Status | syn_i2c_dev_write16_be (const SYN_I2CDev * dev, uint8_t reg, uint16_t val) Write a 16-bit register (big-endian). |
| SYN_Status | syn_i2c_dev_write8 (const SYN_I2CDev * dev, uint8_t reg, uint8_t val) Write a single 8-bit register. |
| SYN_Status | syn_i2c_dev_write_burst (const SYN_I2CDev * dev, uint8_t reg, const uint8_t * data, size_t len) Burst write: write len bytes starting fromreg . |
Detailed Description¶
Provides convenient register-level access for I2C sensors/peripherals. Eliminates boilerplate for reading/writing 8-bit and 16-bit registers and burst reads.
** **
SYN_I2CDev bmp280;
syn_i2c_dev_init(&bmp280, 0, 0x76); // bus 0, addr 0x76
uint8_t chip_id = syn_i2c_dev_read8(&bmp280, 0xD0);
syn_i2c_dev_write8(&bmp280, 0xF4, 0x27); // ctrl_meas
uint8_t burst[6];
syn_i2c_dev_read_burst(&bmp280, 0xF7, burst, 6);
Public Static Functions Documentation¶
function syn_i2c_dev_init¶
Initialize device descriptor.
Parameters:
devDevice instance.busI2C bus number.addr7-bit device address.
function syn_i2c_dev_modify8¶
Modify register: read, mask, set bits, write back.
static inline SYN_Status syn_i2c_dev_modify8 (
const SYN_I2CDev * dev,
uint8_t reg,
uint8_t mask,
uint8_t val
)
Parameters:
devDevice.regRegister address.maskBits to modify.valNew values for masked bits.
Returns:
SYN_OK on success.
function syn_i2c_dev_read16_be¶
Read a 16-bit register (big-endian, MSB first).
Parameters:
devDevice.regRegister address.
Returns:
16-bit value (MSB first).
function syn_i2c_dev_read16_le¶
Read a 16-bit register (little-endian, LSB first).
Parameters:
devDevice.regRegister address.
Returns:
16-bit value (LSB first).
function syn_i2c_dev_read8¶
Read a single 8-bit register.
Parameters:
devDevice.regRegister address.
Returns:
Register value.
function syn_i2c_dev_read_burst¶
Burst read: read len bytes starting fromreg .
static inline SYN_Status syn_i2c_dev_read_burst (
const SYN_I2CDev * dev,
uint8_t reg,
uint8_t * buf,
size_t len
)
Parameters:
devDevice.regStarting register address.bufOutput buffer.lenNumber of bytes to read.
Returns:
SYN_OK on success.
function syn_i2c_dev_write16_be¶
Write a 16-bit register (big-endian).
static inline SYN_Status syn_i2c_dev_write16_be (
const SYN_I2CDev * dev,
uint8_t reg,
uint16_t val
)
Parameters:
devDevice.regRegister address.val16-bit value to write.
Returns:
SYN_OK on success.
function syn_i2c_dev_write8¶
Write a single 8-bit register.
Parameters:
devDevice.regRegister address.valValue to write.
Returns:
SYN_OK on success.
function syn_i2c_dev_write_burst¶
Burst write: write len bytes starting fromreg .
static inline SYN_Status syn_i2c_dev_write_burst (
const SYN_I2CDev * dev,
uint8_t reg,
const uint8_t * data,
size_t len
)
Parameters:
devDevice.regStarting register address.dataData to write.lenNumber of bytes (max 32).
Returns:
SYN_OK on success, SYN_ERROR if len > 32.
The documentation for this class was generated from the following file src/syntropic/drivers/syn_i2c_dev.h