跳转至

CFBD_I2C_Message

Single I2C message description used for multi-message transfers. More...

#include <iic.h>

Detailed Description

struct CFBD_I2C_Message;

Single I2C message description used for multi-message transfers.

Par:

  • Message Direction

The flags field determines message direction:

  • flags = 0: Write (master -> slave)
  • flags = I2C_M_RD: Read (slave -> master)
  • Example - Multi-Message Transaction
// Read register 0x20 from SSD1306 OLED display
CFBD_I2C_Message msgs[2];
uint8_t addr_byte = 0x20;
uint8_t reg_data[2];

// Message 1: Send register address (write)
msgs[0].addr = 0x3C;       // OLED I2C address
msgs[0].flags = 0;         // Write operation
msgs[0].len = 1;
msgs[0].buf = &addr_byte;

// Message 2: Read register contents
msgs[1].addr = 0x3C;
msgs[1].flags = I2C_M_RD;  // Read operation
msgs[1].len = 2;
msgs[1].buf = reg_data;

// Execute both messages atomically
int status = CFBD_I2CTransfer(bus, msgs, 2, 1000);

Provides the address, flags, buffer pointer and length for one message in a potentially multi-message transfer. The addr field contains a 7-bit device address.


Updated on 2026-02-03 at 13:21:55 +0000