WPILibC++  2020.3.2-60-g3011ebe
I2C Functions

Functions

 HAL_ENUM (HAL_I2CPort)
 
void HAL_InitializeI2C (HAL_I2CPort port, int32_t *status)
 Initializes the I2C port. More...
 
int32_t HAL_TransactionI2C (HAL_I2CPort port, int32_t deviceAddress, const uint8_t *dataToSend, int32_t sendSize, uint8_t *dataReceived, int32_t receiveSize)
 Generic I2C read/write transaction. More...
 
int32_t HAL_WriteI2C (HAL_I2CPort port, int32_t deviceAddress, const uint8_t *dataToSend, int32_t sendSize)
 Executes a write transaction with the device. More...
 
int32_t HAL_ReadI2C (HAL_I2CPort port, int32_t deviceAddress, uint8_t *buffer, int32_t count)
 Executes a read transaction with the device. More...
 
void HAL_CloseI2C (HAL_I2CPort port)
 Closes an I2C port. More...
 

Detailed Description

Function Documentation

◆ HAL_CloseI2C()

void HAL_CloseI2C ( HAL_I2CPort  port)

Closes an I2C port.

Parameters
portThe I2C port, 0 for the on-board, 1 for the MXP.

◆ HAL_InitializeI2C()

void HAL_InitializeI2C ( HAL_I2CPort  port,
int32_t *  status 
)

Initializes the I2C port.

Opens the port if necessary and saves the handle. If opening the MXP port, also sets up the channel functions appropriately.

Parameters
portThe port to open, 0 for the on-board, 1 for the MXP.

◆ HAL_ReadI2C()

int32_t HAL_ReadI2C ( HAL_I2CPort  port,
int32_t  deviceAddress,
uint8_t *  buffer,
int32_t  count 
)

Executes a read transaction with the device.

Reads bytes from a device. Most I2C devices will auto-increment the register pointer internally allowing you to read consecutive registers on a device in a single transaction.

Parameters
portThe I2C port, 0 for the on-board, 1 for the MXP.
registerAddressThe register to read first in the transaction.
countThe number of bytes to read in the transaction.
bufferA pointer to the array of bytes to store the data read from the device.
Returns
>= 0 on success or -1 on transfer abort.

◆ HAL_TransactionI2C()

int32_t HAL_TransactionI2C ( HAL_I2CPort  port,
int32_t  deviceAddress,
const uint8_t *  dataToSend,
int32_t  sendSize,
uint8_t *  dataReceived,
int32_t  receiveSize 
)

Generic I2C read/write transaction.

This is a lower-level interface to the I2C hardware giving you more control over each transaction.

Parameters
portThe I2C port, 0 for the on-board, 1 for the MXP.
dataToSendBuffer of data to send as part of the transaction.
sendSizeNumber of bytes to send as part of the transaction.
dataReceivedBuffer to read data into.
receiveSizeNumber of bytes to read from the device.
Returns
>= 0 on success or -1 on transfer abort.

◆ HAL_WriteI2C()

int32_t HAL_WriteI2C ( HAL_I2CPort  port,
int32_t  deviceAddress,
const uint8_t *  dataToSend,
int32_t  sendSize 
)

Executes a write transaction with the device.

Writes a single byte to a register on a device and wait until the transaction is complete.

Parameters
portThe I2C port, 0 for the on-board, 1 for the MXP.
registerAddressThe address of the register on the device to be written.
dataThe byte to write to the register on the device.
Returns
>= 0 on success or -1 on transfer abort.