I2C_TransferSeq_TypeDef Struct Reference

Master mode transfer message structure used to define a complete I2C transfer sequence (from start to stop).

#include <em_i2c.h>

Data Fields

uint16_t addr
 Address to use after (repeated) start.
 
uint16_t flags
 Flags defining sequence type and details, see I2C_FLAG_ defines.
 
struct {
   uint8_t *   data
 Buffer used for data to transmit/receive, must be len long.
 
   uint16_t   len
 Number of bytes in data to send or receive.
 
buf [2]
 Buffers used to hold data to send from or receive into, depending on sequence type.
 

Master mode transfer message structure used to define a complete I2C transfer sequence (from start to stop).

The structure allows for defining the following types of sequences (refer to defines for sequence details):

Field Documentation

◆ addr

uint16_t I2C_TransferSeq_TypeDef::addr

Address to use after (repeated) start.

Layout details, A = Address bit, X = don't care bit (set to 0):

  • 7 bit address - Use format AAAA AAAX
  • 10 bit address - Use format XXXX XAAX AAAA AAAA

◆ flags

uint16_t I2C_TransferSeq_TypeDef::flags

Flags defining sequence type and details, see I2C_FLAG_ defines.

◆ data

uint8_t* I2C_TransferSeq_TypeDef::data

Buffer used for data to transmit/receive, must be len long.

◆ len

uint16_t I2C_TransferSeq_TypeDef::len

Number of bytes in data to send or receive.

Notice that when receiving data to this buffer, at least 1 byte must be received. Setting len to 0 in the receive case is considered a usage fault. Transmitting 0 bytes is legal, in which case only the address is transmitted after the start condition.

◆ buf

struct { ... } I2C_TransferSeq_TypeDef::buf[2]

Buffers used to hold data to send from or receive into, depending on sequence type.