Peripheral State, Mode and Error functions

Peripheral State, Mode and Error functions. More...

+ Collaboration diagram for Peripheral State, Mode and Error functions:

Functions

hal_i2c_state_t hal_i2c_get_state (i2c_handle_t *p_i2c)
 Return the I2C handle state. More...
 
hal_i2c_mode_t hal_i2c_get_mode (i2c_handle_t *p_i2c)
 Returns the I2C Master, Slave, Memory or no mode. More...
 
uint32_t hal_i2c_get_error (i2c_handle_t *p_i2c)
 Return the I2C error code. More...
 
hal_status_t hal_i2c_suspend_reg (i2c_handle_t *p_i2c)
 Suspend some registers related to I2C configuration before sleep. More...
 
hal_status_t hal_i2c_resume_reg (i2c_handle_t *p_i2c)
 Restore some registers related to I2C configuration after sleep. More...
 
hal_status_t hal_i2c_timing_adjust (i2c_handle_t *p_i2c, uint32_t timing_type, int32_t delta)
 Adjust I2C timing value to adapt to real load. More...
 
hal_status_t hal_i2c_timing_get (i2c_handle_t *p_i2c, uint32_t timing_type, uint32_t *p_timing_value)
 Get the I2C timing value. More...
 
hal_status_t hal_i2c_master_transmit_receive (i2c_handle_t *p_i2c, uint16_t dev_address, uint8_t *p_tdata, uint16_t tsize, uint8_t *p_rdata, uint16_t rsize, uint32_t timeout)
 I2C MASTER transmit and receive data with only one bit. More...
 
hal_status_t hal_i2c_slave_receive_transmit (i2c_handle_t *p_i2c, uint8_t *p_tdata, uint16_t tsize, uint8_t *p_rdata, uint16_t rsize, uint32_t timeout)
 I2C SLAVE receive and transmit data with only one bit. More...
 

Detailed Description

Peripheral State, Mode and Error functions.

 ===============================================================================
            ##### Peripheral State, Mode and Error functions #####
 ===============================================================================
    [..]
    This subsection permit to get in run-time the status of the peripheral
    and the data flow.

Function Documentation

◆ hal_i2c_get_error()

uint32_t hal_i2c_get_error ( i2c_handle_t p_i2c)

Return the I2C error code.

Parameters
[in]p_i2cPointer to an I2C handle which contains the configuration information for the specified I2C.
Returns
I2C Error Code

◆ hal_i2c_get_mode()

hal_i2c_mode_t hal_i2c_get_mode ( i2c_handle_t p_i2c)

Returns the I2C Master, Slave, Memory or no mode.

Parameters
[in]p_i2cPointer to an I2C handle which contains the configuration information for the specified I2C.
Return values
HAL_I2C_MODE_NONENo I2C communication on going.
HAL_I2C_MODE_MASTERI2C communication is in Master Mode.
HAL_I2C_MODE_SLAVEI2C communication is in Slave Mode.
HAL_I2C_MODE_MEMI2C communication is in Memory Mode.

◆ hal_i2c_get_state()

hal_i2c_state_t hal_i2c_get_state ( i2c_handle_t p_i2c)

Return the I2C handle state.

Parameters
[in]p_i2cPointer to an I2C handle which contains the configuration information for the specified I2C.
Return values
HAL_I2C_STATE_RESETPeripheral is not yet Initialized.
HAL_I2C_STATE_READYPeripheral Initialized and ready for use.
HAL_I2C_STATE_BUSYAn internal process is ongoing.
HAL_I2C_STATE_BUSY_TXData Transmission process is ongoing.
HAL_I2C_STATE_BUSY_RXData Reception process is ongoing.
HAL_I2C_STATE_LISTENAddress Listen Mode is ongoing.
HAL_I2C_STATE_BUSY_TX_LISTENAddress Listen Mode and Data Transmission process is ongoing.
HAL_I2C_STATE_BUSY_RX_LISTENAddress Listen Mode and Data Reception process is ongoing.
HAL_I2C_STATE_ABORTAbort user request ongoing.
HAL_I2C_STATE_TIMEOUTTimeout state.
HAL_I2C_STATE_ERRORError.

◆ hal_i2c_master_transmit_receive()

hal_status_t hal_i2c_master_transmit_receive ( i2c_handle_t p_i2c,
uint16_t  dev_address,
uint8_t *  p_tdata,
uint16_t  tsize,
uint8_t *  p_rdata,
uint16_t  rsize,
uint32_t  timeout 
)

I2C MASTER transmit and receive data with only one bit.

For Microsoft HID Over I2C protocol.

Parameters
[in]p_i2cPointer to a I2C handle which contains the configuration
[in]dev_addressTarget device address: The device 7 bits address value in datasheet must be shifted at right before call interface
[in]p_tdataPointer to transmit data buffer
[in]tsizeAmount of data to be sent
[in]p_rdataPointer to receive data buffer
[in]rsizeAmount of data to be received
[in]timeoutTimeout duration
Return values
HAL_OKOperation is OK.
HAL_ERRORParameter error.

◆ hal_i2c_resume_reg()

hal_status_t hal_i2c_resume_reg ( i2c_handle_t p_i2c)

Restore some registers related to I2C configuration after sleep.

This function must be used in conjunction with the hal_i2c_suspend_reg().

Parameters
[in]p_i2cPointer to a I2C handle which contains the configuration information for the specified I2C module.
Return values
HAL_OKOperation is OK.
HAL_ERRORParameter error or operation not supported.
HAL_BUSYDriver is busy.
HAL_TIMEOUTTimeout occurred.

◆ hal_i2c_slave_receive_transmit()

hal_status_t hal_i2c_slave_receive_transmit ( i2c_handle_t p_i2c,
uint8_t *  p_tdata,
uint16_t  tsize,
uint8_t *  p_rdata,
uint16_t  rsize,
uint32_t  timeout 
)

I2C SLAVE receive and transmit data with only one bit.

Add for hal_i2c_master_transmit_receive.

Parameters
[in]p_i2cPointer to a I2C handle which contains the configuration
[in]p_tdataPointer to transmit data buffer
[in]tsizeAmount of data to be sent
[in]p_rdataPointer to receive data buffer
[in]rsizeAmount of data to be received
[in]timeoutTimeout duration
Return values
HAL_OKOperation is OK.
HAL_ERRORParameter error.

◆ hal_i2c_suspend_reg()

hal_status_t hal_i2c_suspend_reg ( i2c_handle_t p_i2c)

Suspend some registers related to I2C configuration before sleep.

Parameters
[in]p_i2cPointer to a I2C handle which contains the configuration information for the specified I2C module.
Return values
HAL_OKOperation is OK.
HAL_ERRORParameter error or operation not supported.
HAL_BUSYDriver is busy.
HAL_TIMEOUTTimeout occurred.

◆ hal_i2c_timing_adjust()

hal_status_t hal_i2c_timing_adjust ( i2c_handle_t p_i2c,
uint32_t  timing_type,
int32_t  delta 
)

Adjust I2C timing value to adapt to real load.

Parameters
[in]p_i2cPointer to a I2C handle which contains the configuration information for the specified I2C module.
[in]timing_typeTiming type. See I2C_Timing_tpye.
[in]deltatiming change value(uinit: I2C work clock cycles).
Return values
HAL_OKOperation is OK.
HAL_ERRORParameter error or operation not supported.
HAL_BUSYDriver is busy.

◆ hal_i2c_timing_get()

hal_status_t hal_i2c_timing_get ( i2c_handle_t p_i2c,
uint32_t  timing_type,
uint32_t *  p_timing_value 
)

Get the I2C timing value.

Parameters
[in]p_i2cPointer to a I2C handle which contains the configuration information for the specified I2C module.
[in]timing_typeTiming type. See I2C_Timing_tpye.
[in]p_timing_valuePointer of I2C timing value(uinit: I2C work clock cycles).
Return values
HAL_OKOperation is OK.
HAL_ERRORParameter error.