mikroSDK Reference Manual
|
I2C Master Hardware Abstraction Layer API Reference. More...
Functions list | |
void | hal_i2c_master_configure_default (hal_i2c_master_config_t *config) |
Configure I2C Master HAL configuration structure. More... | |
err_t | hal_i2c_master_open (handle_t *handle, bool hal_obj_open_state) |
Open the I2C Master HAL object. More... | |
err_t | hal_i2c_master_set_speed (handle_t *handle, hal_i2c_master_config_t *config) |
Set I2C master module speed. More... | |
void | hal_i2c_master_set_timeout (handle_t *handle, hal_i2c_master_config_t *config) |
Set I2C master timeout value. More... | |
void | hal_i2c_master_set_slave_address (handle_t *handle, hal_i2c_master_config_t *config) |
Set I2C slave address. More... | |
err_t | hal_i2c_master_write (handle_t handle, uint8_t *write_data_buf, size_t len_write_data) |
Write data to the I2C bus. More... | |
err_t | hal_i2c_master_read (handle_t handle, uint8_t *read_data_buf, size_t len_read_data) |
Read data from the I2C bus. More... | |
err_t | hal_i2c_master_write_then_read (handle_t handle, uint8_t *write_data_buf, size_t len_write_data, uint8_t *read_data_buf, size_t len_read_data) |
Write data followed by read. More... | |
err_t | hal_i2c_master_close (handle_t *handle) |
Closes I2C Master HAL object. More... | |
API for configuring and manipulating I2C Master HAL module.
void hal_i2c_master_configure_default | ( | hal_i2c_master_config_t * | config | ) |
Configures configuration structure to default initialization values. Take into consideration that this is just structure variable initial values setting. Values need to be redefined by user.
[in,out] | config | I2C Master HAL driver configuration structure. See hal_i2c_master_config_t structure definition for detailed explanation. |
Default values:
Function | Default value |
---|---|
Address | 0 |
SCL pin | 0xFFFFFFFF (invalid pin) |
SDA pin | 0xFFFFFFFF (invalid pin) |
Speed | 100K |
Timeout value | 10000 retries |
Example
err_t hal_i2c_master_open | ( | handle_t * | handle, |
bool | hal_obj_open_state | ||
) |
Opens the I2C Master HAL object on selected pins. Allocates memory and pins for specified object.
[in,out] | handle | I2C Master HAL object. See hal_i2c_master_t structure definition for detailed explanation. |
[in] | hal_obj_open_state | I2C state. Is it open or not. |
Example
err_t hal_i2c_master_set_speed | ( | handle_t * | handle, |
hal_i2c_master_config_t * | config | ||
) |
Sets I2C module speed to config->speed
value if possible.
[in] | handle | I2C handle. See i2c_master_t structure definition for detailed explanation. |
[in] | config | I2C HAL configuration structure. See hal_i2c_master_config_t structure definition for detailed explanation. |
Example
void hal_i2c_master_set_timeout | ( | handle_t * | handle, |
hal_i2c_master_config_t * | config | ||
) |
Sets I2C module timeout interval to config->timeout_pass_count
value. This means that the module shall retry any given operation config->timeout_pass_count
number of times before exiting with adequate timeout value.
[in] | handle | I2C handle. See i2c_master_t structure definition for detailed explanation. |
[in] | config | I2C HAL configuration structure. See hal_i2c_master_config_t structure definition for detailed explanation. |
Example
void hal_i2c_master_set_slave_address | ( | handle_t * | handle, |
hal_i2c_master_config_t * | config | ||
) |
Sets I2C Address of the subordinate I2C device to config->address
which is targeted by read and write operations.
[in] | handle | I2C handle. See i2c_master_t structure definition for detailed explanation. |
[in] | config | I2C HAL configuration structure. See hal_i2c_master_config_t structure definition for detailed explanation. |
Example
err_t hal_i2c_master_write | ( | handle_t | handle, |
uint8_t * | write_data_buf, | ||
size_t | len_write_data | ||
) |
Function shall generate a START signal, followed by len_write_data
number of writes from write_data_buf
on the bus. Ends with a STOP signal.
[in] | handle | I2C handle. See i2c_master_t structure definition for detailed explanation. |
[in] | *write_data_buf | Data buffer. |
[in] | len_write_data | Number of bytes to write from data buffer. |
Example
err_t hal_i2c_master_read | ( | handle_t | handle, |
uint8_t * | read_data_buf, | ||
size_t | len_read_data | ||
) |
Function shall generate a START signal, followed by len_read_data
number of reads from the bus placing the data in read_data_buf
. Ends with a STOP signal.
[in] | handle | I2C handle. See i2c_master_t structure definition for detailed explanation. |
[out] | *read_data_buf | Data buffer. |
[in] | len_read_data | Number of bytes to read from bus. |
Example
err_t hal_i2c_master_write_then_read | ( | handle_t | handle, |
uint8_t * | write_data_buf, | ||
size_t | len_write_data, | ||
uint8_t * | read_data_buf, | ||
size_t | len_read_data | ||
) |
Function performs a write operation followed by a read operation on the bus. The operation consists of a start signal followed by len_write_data
number of write operations ( data from write_data_buf
), a restart signal followed by len_read_data
number of read operations ( placed in read_data_buf
), finishing the operation with a stop signal.
[in] | handle | I2C handle. See i2c_master_t structure definition for detailed explanation. |
[in] | *write_data_buf | Data buffer. |
[in] | len_write_data | Number of bytes to write from data buffer. |
[out] | *read_data_buf | Data buffer. |
[in] | len_read_data | Number of bytes to read from bus. |
Example
err_t hal_i2c_master_close | ( | handle_t * | handle | ) |
De-allocates hardware resources for specific driver object and de-initializes the module on a hardware level, resets pin AF to default values, clears all buffers used by object and disables module clock for lower power consumption.
[in,out] | handle | I2C handle. See hal_i2c_master_t structure definition for detailed explanation. |
Example