MCUXpresso SDK API Reference Manual  Rev. 0
NXP Semiconductors
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages

Overview

Data Structures

struct  lpi2c_slave_config_t
 Structure with settings to initialize the LPI2C slave module. More...
 
struct  lpi2c_slave_transfer_t
 LPI2C slave transfer structure. More...
 
struct  lpi2c_slave_handle_t
 LPI2C slave handle structure. More...
 

Typedefs

typedef void(* lpi2c_slave_transfer_callback_t )(LPI2C_Type *base, lpi2c_slave_transfer_t *transfer, void *userData)
 Slave event callback function pointer type. More...
 

Enumerations

enum  _lpi2c_slave_flags {
  kLPI2C_SlaveTxReadyFlag = LPI2C_SSR_TDF_MASK,
  kLPI2C_SlaveRxReadyFlag = LPI2C_SSR_RDF_MASK,
  kLPI2C_SlaveAddressValidFlag = LPI2C_SSR_AVF_MASK,
  kLPI2C_SlaveTransmitAckFlag = LPI2C_SSR_TAF_MASK,
  kLPI2C_SlaveRepeatedStartDetectFlag = LPI2C_SSR_RSF_MASK,
  kLPI2C_SlaveStopDetectFlag = LPI2C_SSR_SDF_MASK,
  kLPI2C_SlaveBitErrFlag = LPI2C_SSR_BEF_MASK,
  kLPI2C_SlaveFifoErrFlag = LPI2C_SSR_FEF_MASK,
  kLPI2C_SlaveAddressMatch0Flag = LPI2C_SSR_AM0F_MASK,
  kLPI2C_SlaveAddressMatch1Flag = LPI2C_SSR_AM1F_MASK,
  kLPI2C_SlaveGeneralCallFlag = LPI2C_SSR_GCF_MASK,
  kLPI2C_SlaveBusyFlag = LPI2C_SSR_SBF_MASK,
  kLPI2C_SlaveBusBusyFlag = LPI2C_SSR_BBF_MASK
}
 LPI2C slave peripheral flags. More...
 
enum  lpi2c_slave_address_match_t {
  kLPI2C_MatchAddress0 = 0U,
  kLPI2C_MatchAddress0OrAddress1 = 2U,
  kLPI2C_MatchAddress0ThroughAddress1 = 6U
}
 LPI2C slave address match options. More...
 
enum  lpi2c_slave_transfer_event_t {
  kLPI2C_SlaveAddressMatchEvent = 0x01U,
  kLPI2C_SlaveTransmitEvent = 0x02U,
  kLPI2C_SlaveReceiveEvent = 0x04U,
  kLPI2C_SlaveTransmitAckEvent = 0x08U,
  kLPI2C_SlaveRepeatedStartEvent = 0x10U,
  kLPI2C_SlaveCompletionEvent = 0x20U,
  kLPI2C_SlaveAllEvents
}
 Set of events sent to the callback for non blocking slave transfers. More...
 

Slave initialization and deinitialization

void LPI2C_SlaveGetDefaultConfig (lpi2c_slave_config_t *slaveConfig)
 Provides a default configuration for the LPI2C slave peripheral. More...
 
void LPI2C_SlaveInit (LPI2C_Type *base, const lpi2c_slave_config_t *slaveConfig, uint32_t sourceClock_Hz)
 Initializes the LPI2C slave peripheral. More...
 
void LPI2C_SlaveDeinit (LPI2C_Type *base)
 Deinitializes the LPI2C slave peripheral. More...
 
static void LPI2C_SlaveReset (LPI2C_Type *base)
 Performs a software reset of the LPI2C slave peripheral. More...
 
static void LPI2C_SlaveEnable (LPI2C_Type *base, bool enable)
 Enables or disables the LPI2C module as slave. More...
 

Slave status

static uint32_t LPI2C_SlaveGetStatusFlags (LPI2C_Type *base)
 Gets the LPI2C slave status flags. More...
 
static void LPI2C_SlaveClearStatusFlags (LPI2C_Type *base, uint32_t statusMask)
 Clears the LPI2C status flag state. More...
 

Slave interrupts

static void LPI2C_SlaveEnableInterrupts (LPI2C_Type *base, uint32_t interruptMask)
 Enables the LPI2C slave interrupt requests. More...
 
static void LPI2C_SlaveDisableInterrupts (LPI2C_Type *base, uint32_t interruptMask)
 Disables the LPI2C slave interrupt requests. More...
 
static uint32_t LPI2C_SlaveGetEnabledInterrupts (LPI2C_Type *base)
 Returns the set of currently enabled LPI2C slave interrupt requests. More...
 

Slave DMA control

static void LPI2C_SlaveEnableDMA (LPI2C_Type *base, bool enableAddressValid, bool enableRx, bool enableTx)
 Enables or disables the LPI2C slave peripheral DMA requests. More...
 

Slave bus operations

static bool LPI2C_SlaveGetBusIdleState (LPI2C_Type *base)
 Returns whether the bus is idle. More...
 
static void LPI2C_SlaveTransmitAck (LPI2C_Type *base, bool ackOrNack)
 Transmits either an ACK or NAK on the I2C bus in response to a byte from the master. More...
 
static uint32_t LPI2C_SlaveGetReceivedAddress (LPI2C_Type *base)
 Returns the slave address sent by the I2C master. More...
 
status_t LPI2C_SlaveSend (LPI2C_Type *base, void *txBuff, size_t txSize, size_t *actualTxSize)
 Performs a polling send transfer on the I2C bus. More...
 
status_t LPI2C_SlaveReceive (LPI2C_Type *base, void *rxBuff, size_t rxSize, size_t *actualRxSize)
 Performs a polling receive transfer on the I2C bus. More...
 

Slave non-blocking

void LPI2C_SlaveTransferCreateHandle (LPI2C_Type *base, lpi2c_slave_handle_t *handle, lpi2c_slave_transfer_callback_t callback, void *userData)
 Creates a new handle for the LPI2C slave non-blocking APIs. More...
 
status_t LPI2C_SlaveTransferNonBlocking (LPI2C_Type *base, lpi2c_slave_handle_t *handle, uint32_t eventMask)
 Starts accepting slave transfers. More...
 
status_t LPI2C_SlaveTransferGetCount (LPI2C_Type *base, lpi2c_slave_handle_t *handle, size_t *count)
 Gets the slave transfer status during a non-blocking transfer. More...
 
void LPI2C_SlaveTransferAbort (LPI2C_Type *base, lpi2c_slave_handle_t *handle)
 Aborts the slave non-blocking transfers. More...
 

Slave IRQ handler

void LPI2C_SlaveTransferHandleIRQ (LPI2C_Type *base, lpi2c_slave_handle_t *handle)
 Reusable routine to handle slave interrupts. More...
 

Data Structure Documentation

struct lpi2c_slave_config_t

This structure holds configuration settings for the LPI2C slave peripheral. To initialize this structure to reasonable defaults, call the LPI2C_SlaveGetDefaultConfig() function and pass a pointer to your configuration structure instance.

The configuration structure can be made constant so it resides in flash.

Data Fields

bool enableSlave
 Enable slave mode. More...
 
uint8_t address0
 Slave's 7-bit address. More...
 
uint8_t address1
 Alternate slave 7-bit address. More...
 
lpi2c_slave_address_match_t addressMatchMode
 Address matching options. More...
 
bool filterDozeEnable
 Enable digital glitch filter in doze mode. More...
 
bool filterEnable
 Enable digital glitch filter. More...
 
bool enableGeneralCall
 Enable general call address matching. More...
 
bool ignoreAck
 Continue transfers after a NACK is detected. More...
 
bool enableReceivedAddressRead
 Enable reading the address received address as the first byte of data. More...
 
uint32_t sdaGlitchFilterWidth_ns
 Width in nanoseconds of the digital filter on the SDA signal. More...
 
uint32_t sclGlitchFilterWidth_ns
 Width in nanoseconds of the digital filter on the SCL signal. More...
 
uint32_t dataValidDelay_ns
 Width in nanoseconds of the data valid delay. More...
 
uint32_t clockHoldTime_ns
 Width in nanoseconds of the clock hold time. More...
 
bool enableAck
 Enables SCL clock stretching during slave-transmit address byte(s) and slave-receiver address and data byte(s) to allow software to write the Transmit ACK Register before the ACK or NACK is transmitted. More...
 
bool enableTx
 Enables SCL clock stretching when the transmit data flag is set during a slave-transmit transfer. More...
 
bool enableRx
 Enables SCL clock stretching when receive data flag is set during a slave-receive transfer. More...
 
bool enableAddress
 Enables SCL clock stretching when the address valid flag is asserted. More...
 

Field Documentation

bool lpi2c_slave_config_t::enableSlave
uint8_t lpi2c_slave_config_t::address0
uint8_t lpi2c_slave_config_t::address1
lpi2c_slave_address_match_t lpi2c_slave_config_t::addressMatchMode
bool lpi2c_slave_config_t::filterDozeEnable
bool lpi2c_slave_config_t::filterEnable
bool lpi2c_slave_config_t::enableGeneralCall
bool lpi2c_slave_config_t::enableAck

Clock stretching occurs when transmitting the 9th bit. When enableAckSCLStall is enabled, there is no need to set either enableRxDataSCLStall or enableAddressSCLStall.

bool lpi2c_slave_config_t::enableTx
bool lpi2c_slave_config_t::enableRx
bool lpi2c_slave_config_t::enableAddress
bool lpi2c_slave_config_t::ignoreAck
bool lpi2c_slave_config_t::enableReceivedAddressRead
uint32_t lpi2c_slave_config_t::sdaGlitchFilterWidth_ns
uint32_t lpi2c_slave_config_t::sclGlitchFilterWidth_ns
uint32_t lpi2c_slave_config_t::dataValidDelay_ns
uint32_t lpi2c_slave_config_t::clockHoldTime_ns
struct lpi2c_slave_transfer_t

Data Fields

lpi2c_slave_transfer_event_t event
 Reason the callback is being invoked. More...
 
uint8_t receivedAddress
 Matching address send by master. More...
 
uint8_t * data
 Transfer buffer.
 
size_t dataSize
 Transfer size.
 
status_t completionStatus
 Success or error code describing how the transfer completed. More...
 
size_t transferredCount
 Number of bytes actually transferred since start or last repeated start. More...
 

Field Documentation

lpi2c_slave_transfer_event_t lpi2c_slave_transfer_t::event
uint8_t lpi2c_slave_transfer_t::receivedAddress
status_t lpi2c_slave_transfer_t::completionStatus

Only applies for kLPI2C_SlaveCompletionEvent.

size_t lpi2c_slave_transfer_t::transferredCount
struct _lpi2c_slave_handle
Note
The contents of this structure are private and subject to change.

Data Fields

lpi2c_slave_transfer_t transfer
 LPI2C slave transfer copy. More...
 
bool isBusy
 Whether transfer is busy. More...
 
bool wasTransmit
 Whether the last transfer was a transmit. More...
 
uint32_t eventMask
 Mask of enabled events. More...
 
uint32_t transferredCount
 Count of bytes transferred. More...
 
lpi2c_slave_transfer_callback_t callback
 Callback function called at transfer event. More...
 
void * userData
 Callback parameter passed to callback. More...
 

Field Documentation

lpi2c_slave_transfer_t lpi2c_slave_handle_t::transfer
bool lpi2c_slave_handle_t::isBusy
bool lpi2c_slave_handle_t::wasTransmit
uint32_t lpi2c_slave_handle_t::eventMask
uint32_t lpi2c_slave_handle_t::transferredCount
lpi2c_slave_transfer_callback_t lpi2c_slave_handle_t::callback
void* lpi2c_slave_handle_t::userData

Typedef Documentation

typedef void(* lpi2c_slave_transfer_callback_t)(LPI2C_Type *base, lpi2c_slave_transfer_t *transfer, void *userData)

This callback is used only for the slave non-blocking transfer API. To install a callback, use the LPI2C_SlaveSetCallback() function after you have created a handle.

Parameters
baseBase address for the LPI2C instance on which the event occurred.
transferPointer to transfer descriptor containing values passed to and/or from the callback.
userDataArbitrary pointer-sized value passed from the application.

Enumeration Type Documentation

The following status register flags can be cleared:

All flags except kLPI2C_SlaveBusyFlag and kLPI2C_SlaveBusBusyFlag can be enabled as interrupts.

Note
These enumerations are meant to be OR'd together to form a bit mask.
Enumerator
kLPI2C_SlaveTxReadyFlag 

Transmit data flag.

kLPI2C_SlaveRxReadyFlag 

Receive data flag.

kLPI2C_SlaveAddressValidFlag 

Address valid flag.

kLPI2C_SlaveTransmitAckFlag 

Transmit ACK flag.

kLPI2C_SlaveRepeatedStartDetectFlag 

Repeated start detect flag.

kLPI2C_SlaveStopDetectFlag 

Stop detect flag.

kLPI2C_SlaveBitErrFlag 

Bit error flag.

kLPI2C_SlaveFifoErrFlag 

FIFO error flag.

kLPI2C_SlaveAddressMatch0Flag 

Address match 0 flag.

kLPI2C_SlaveAddressMatch1Flag 

Address match 1 flag.

kLPI2C_SlaveGeneralCallFlag 

General call flag.

kLPI2C_SlaveBusyFlag 

Master busy flag.

kLPI2C_SlaveBusBusyFlag 

Bus busy flag.

Enumerator
kLPI2C_MatchAddress0 

Match only address 0.

kLPI2C_MatchAddress0OrAddress1 

Match either address 0 or address 1.

kLPI2C_MatchAddress0ThroughAddress1 

Match a range of slave addresses from address 0 through address 1.

These event enumerations are used for two related purposes. First, a bit mask created by OR'ing together events is passed to LPI2C_SlaveTransferNonBlocking() in order to specify which events to enable. Then, when the slave callback is invoked, it is passed the current event through its transfer parameter.

Note
These enumerations are meant to be OR'd together to form a bit mask of events.
Enumerator
kLPI2C_SlaveAddressMatchEvent 

Received the slave address after a start or repeated start.

kLPI2C_SlaveTransmitEvent 

Callback is requested to provide data to transmit (slave-transmitter role).

kLPI2C_SlaveReceiveEvent 

Callback is requested to provide a buffer in which to place received data (slave-receiver role).

kLPI2C_SlaveTransmitAckEvent 

Callback needs to either transmit an ACK or NACK.

kLPI2C_SlaveRepeatedStartEvent 

A repeated start was detected.

kLPI2C_SlaveCompletionEvent 

A stop was detected, completing the transfer.

kLPI2C_SlaveAllEvents 

Bit mask of all available events.

Function Documentation

void LPI2C_SlaveGetDefaultConfig ( lpi2c_slave_config_t slaveConfig)

This function provides the following default configuration for the LPI2C slave peripheral:

* slaveConfig->enableSlave = true;
* slaveConfig->address0 = 0U;
* slaveConfig->address1 = 0U;
* slaveConfig->addressMatchMode = kLPI2C_MatchAddress0;
* slaveConfig->filterDozeEnable = true;
* slaveConfig->filterEnable = true;
* slaveConfig->enableGeneralCall = false;
* slaveConfig->sclStall.enableAck = false;
* slaveConfig->sclStall.enableTx = true;
* slaveConfig->sclStall.enableRx = true;
* slaveConfig->sclStall.enableAddress = true;
* slaveConfig->ignoreAck = false;
* slaveConfig->enableReceivedAddressRead = false;
* slaveConfig->sdaGlitchFilterWidth_ns = 0;
* slaveConfig->sclGlitchFilterWidth_ns = 0;
* slaveConfig->dataValidDelay_ns = 0;
* slaveConfig->clockHoldTime_ns = 0;
*

After calling this function, override any settings to customize the configuration, prior to initializing the master driver with LPI2C_SlaveInit(). Be sure to override at least the address0 member of the configuration structure with the desired slave address.

Parameters
[out]slaveConfigUser provided configuration structure that is set to default values. Refer to lpi2c_slave_config_t.
void LPI2C_SlaveInit ( LPI2C_Type *  base,
const lpi2c_slave_config_t slaveConfig,
uint32_t  sourceClock_Hz 
)

This function enables the peripheral clock and initializes the LPI2C slave peripheral as described by the user provided configuration.

Parameters
baseThe LPI2C peripheral base address.
slaveConfigUser provided peripheral configuration. Use LPI2C_SlaveGetDefaultConfig() to get a set of defaults that you can override.
sourceClock_HzFrequency in Hertz of the LPI2C functional clock. Used to calculate the filter widths, data valid delay, and clock hold time.
void LPI2C_SlaveDeinit ( LPI2C_Type *  base)

This function disables the LPI2C slave peripheral and gates the clock. It also performs a software reset to restore the peripheral to reset conditions.

Parameters
baseThe LPI2C peripheral base address.
static void LPI2C_SlaveReset ( LPI2C_Type *  base)
inlinestatic
Parameters
baseThe LPI2C peripheral base address.
static void LPI2C_SlaveEnable ( LPI2C_Type *  base,
bool  enable 
)
inlinestatic
Parameters
baseThe LPI2C peripheral base address.
enablePass true to enable or false to disable the specified LPI2C as slave.
static uint32_t LPI2C_SlaveGetStatusFlags ( LPI2C_Type *  base)
inlinestatic

A bit mask with the state of all LPI2C slave status flags is returned. For each flag, the corresponding bit in the return value is set if the flag is asserted.

Parameters
baseThe LPI2C peripheral base address.
Returns
State of the status flags:
  • 1: related status flag is set.
  • 0: related status flag is not set.
See Also
_lpi2c_slave_flags
static void LPI2C_SlaveClearStatusFlags ( LPI2C_Type *  base,
uint32_t  statusMask 
)
inlinestatic

The following status register flags can be cleared:

Attempts to clear other flags has no effect.

Parameters
baseThe LPI2C peripheral base address.
statusMaskA bitmask of status flags that are to be cleared. The mask is composed of _lpi2c_slave_flags enumerators OR'd together. You may pass the result of a previous call to LPI2C_SlaveGetStatusFlags().
See Also
_lpi2c_slave_flags.
static void LPI2C_SlaveEnableInterrupts ( LPI2C_Type *  base,
uint32_t  interruptMask 
)
inlinestatic

All flags except kLPI2C_SlaveBusyFlag and kLPI2C_SlaveBusBusyFlag can be enabled as interrupts.

Parameters
baseThe LPI2C peripheral base address.
interruptMaskBit mask of interrupts to enable. See _lpi2c_slave_flags for the set of constants that should be OR'd together to form the bit mask.
static void LPI2C_SlaveDisableInterrupts ( LPI2C_Type *  base,
uint32_t  interruptMask 
)
inlinestatic

All flags except kLPI2C_SlaveBusyFlag and kLPI2C_SlaveBusBusyFlag can be enabled as interrupts.

Parameters
baseThe LPI2C peripheral base address.
interruptMaskBit mask of interrupts to disable. See _lpi2c_slave_flags for the set of constants that should be OR'd together to form the bit mask.
static uint32_t LPI2C_SlaveGetEnabledInterrupts ( LPI2C_Type *  base)
inlinestatic
Parameters
baseThe LPI2C peripheral base address.
Returns
A bitmask composed of _lpi2c_slave_flags enumerators OR'd together to indicate the set of enabled interrupts.
static void LPI2C_SlaveEnableDMA ( LPI2C_Type *  base,
bool  enableAddressValid,
bool  enableRx,
bool  enableTx 
)
inlinestatic
Parameters
baseThe LPI2C peripheral base address.
enableAddressValidEnable flag for the address valid DMA request. Pass true for enable, false for disable. The address valid DMA request is shared with the receive data DMA request.
enableRxEnable flag for the receive data DMA request. Pass true for enable, false for disable.
enableTxEnable flag for the transmit data DMA request. Pass true for enable, false for disable.
static bool LPI2C_SlaveGetBusIdleState ( LPI2C_Type *  base)
inlinestatic

Requires the slave mode to be enabled.

Parameters
baseThe LPI2C peripheral base address.
Return values
trueBus is busy.
falseBus is idle.
static void LPI2C_SlaveTransmitAck ( LPI2C_Type *  base,
bool  ackOrNack 
)
inlinestatic

Use this function to send an ACK or NAK when the kLPI2C_SlaveTransmitAckFlag is asserted. This only happens if you enable the sclStall.enableAck field of the lpi2c_slave_config_t configuration structure used to initialize the slave peripheral.

Parameters
baseThe LPI2C peripheral base address.
ackOrNackPass true for an ACK or false for a NAK.
static uint32_t LPI2C_SlaveGetReceivedAddress ( LPI2C_Type *  base)
inlinestatic

This function should only be called if the kLPI2C_SlaveAddressValidFlag is asserted.

Parameters
baseThe LPI2C peripheral base address.
Returns
The 8-bit address matched by the LPI2C slave. Bit 0 contains the R/w direction bit, and the 7-bit slave address is in the upper 7 bits.
status_t LPI2C_SlaveSend ( LPI2C_Type *  base,
void *  txBuff,
size_t  txSize,
size_t *  actualTxSize 
)
Parameters
baseThe LPI2C peripheral base address.
txBuffThe pointer to the data to be transferred.
txSizeThe length in bytes of the data to be transferred.
[out]actualTxSize
Returns
Error or success status returned by API.
status_t LPI2C_SlaveReceive ( LPI2C_Type *  base,
void *  rxBuff,
size_t  rxSize,
size_t *  actualRxSize 
)
Parameters
baseThe LPI2C peripheral base address.
rxBuffThe pointer to the data to be transferred.
rxSizeThe length in bytes of the data to be transferred.
[out]actualRxSize
Returns
Error or success status returned by API.
void LPI2C_SlaveTransferCreateHandle ( LPI2C_Type *  base,
lpi2c_slave_handle_t *  handle,
lpi2c_slave_transfer_callback_t  callback,
void *  userData 
)

The creation of a handle is for use with the non-blocking APIs. Once a handle is created, there is not a corresponding destroy handle. If the user wants to terminate a transfer, the LPI2C_SlaveTransferAbort() API shall be called.

Note
The function also enables the NVIC IRQ for the input LPI2C. Need to notice that on some SoCs the LPI2C IRQ is connected to INTMUX, in this case user needs to enable the associated INTMUX IRQ in application.
Parameters
baseThe LPI2C peripheral base address.
[out]handlePointer to the LPI2C slave driver handle.
callbackUser provided pointer to the asynchronous callback function.
userDataUser provided pointer to the application callback data.
status_t LPI2C_SlaveTransferNonBlocking ( LPI2C_Type *  base,
lpi2c_slave_handle_t *  handle,
uint32_t  eventMask 
)

Call this API after calling I2C_SlaveInit() and LPI2C_SlaveTransferCreateHandle() to start processing transactions driven by an I2C master. The slave monitors the I2C bus and pass events to the callback that was passed into the call to LPI2C_SlaveTransferCreateHandle(). The callback is always invoked from the interrupt context.

The set of events received by the callback is customizable. To do so, set the eventMask parameter to the OR'd combination of lpi2c_slave_transfer_event_t enumerators for the events you wish to receive. The kLPI2C_SlaveTransmitEvent and kLPI2C_SlaveReceiveEvent events are always enabled and do not need to be included in the mask. Alternatively, you can pass 0 to get a default set of only the transmit and receive events that are always enabled. In addition, the kLPI2C_SlaveAllEvents constant is provided as a convenient way to enable all events.

Parameters
baseThe LPI2C peripheral base address.
handlePointer to lpi2c_slave_handle_t structure which stores the transfer state.
eventMaskBit mask formed by OR'ing together lpi2c_slave_transfer_event_t enumerators to specify which events to send to the callback. Other accepted values are 0 to get a default set of only the transmit and receive events, and kLPI2C_SlaveAllEvents to enable all events.
Return values
kStatus_SuccessSlave transfers were successfully started.
kStatus_LPI2C_BusySlave transfers have already been started on this handle.
status_t LPI2C_SlaveTransferGetCount ( LPI2C_Type *  base,
lpi2c_slave_handle_t *  handle,
size_t *  count 
)
Parameters
baseThe LPI2C peripheral base address.
handlePointer to i2c_slave_handle_t structure.
[out]countPointer to a value to hold the number of bytes transferred. May be NULL if the count is not required.
Return values
kStatus_Success
kStatus_NoTransferInProgress
void LPI2C_SlaveTransferAbort ( LPI2C_Type *  base,
lpi2c_slave_handle_t *  handle 
)
Note
This API could be called at any time to stop slave for handling the bus events.
Parameters
baseThe LPI2C peripheral base address.
handlePointer to lpi2c_slave_handle_t structure which stores the transfer state.
Return values
kStatus_Success
kStatus_LPI2C_Idle
void LPI2C_SlaveTransferHandleIRQ ( LPI2C_Type *  base,
lpi2c_slave_handle_t *  handle 
)
Note
This function does not need to be called unless you are reimplementing the non blocking API's interrupt handler routines to add special functionality.
Parameters
baseThe LPI2C peripheral base address.
handlePointer to lpi2c_slave_handle_t structure which stores the transfer state.