NHAL Interface v0.5.0
Hardware Abstraction Layer Interface for Embedded Systems
|
Hardware Abstraction Layer (HAL) for asynchronous I2C Master communication. More...
Go to the source code of this file.
Functions | |
nhal_result_t | nhal_i2c_master_init_async (struct nhal_i2c_context *ctx, const struct nhal_async_config *async_cfg) |
Initialize I2C context for async mode. | |
nhal_result_t | nhal_i2c_master_deinit_async (struct nhal_i2c_context *ctx) |
Deinitialize I2C async mode. | |
nhal_result_t | nhal_i2c_master_set_async_callback (struct nhal_i2c_context *ctx, nhal_async_complete_cb_t callback) |
Set callback for async operation completion. | |
nhal_result_t | nhal_i2c_master_disable_async_callback (struct nhal_i2c_context *ctx) |
Disable async completion callback. | |
nhal_async_status_t | nhal_i2c_master_get_async_status (struct nhal_i2c_context *ctx) |
Get current async operation status. | |
nhal_result_t | nhal_i2c_master_write_async (struct nhal_i2c_context *ctx, nhal_i2c_address dev_address, const uint8_t *data, size_t len) |
Write data to I2C device asynchronously. | |
nhal_result_t | nhal_i2c_master_read_async (struct nhal_i2c_context *ctx, nhal_i2c_address dev_address, uint8_t *data, size_t len) |
Read data from I2C device asynchronously. | |
nhal_result_t | nhal_i2c_master_write_read_reg_async (struct nhal_i2c_context *ctx, nhal_i2c_address dev_address, const uint8_t *reg_address, size_t reg_len, uint8_t *data, size_t data_len) |
Write to register then read from I2C device asynchronously. | |
Hardware Abstraction Layer (HAL) for asynchronous I2C Master communication.
This header defines the public interface for asynchronous I2C Master operations using DMA. It provides functions for enabling async mode and performing non-blocking read/write operations with automatic DMA optimization.
Async mode provides non-blocking data transfers with callback completion. This mode requires NHAL_I2C_ASYNC_SUPPORT to be defined at compile time.
Definition in file nhal_i2c_master_async.h.
nhal_result_t nhal_i2c_master_deinit_async | ( | struct nhal_i2c_context * | ctx | ) |
Deinitialize I2C async mode.
ctx | Pointer to I2C context structure |
nhal_result_t nhal_i2c_master_disable_async_callback | ( | struct nhal_i2c_context * | ctx | ) |
Disable async completion callback.
ctx | Pointer to I2C context structure |
nhal_async_status_t nhal_i2c_master_get_async_status | ( | struct nhal_i2c_context * | ctx | ) |
Get current async operation status.
ctx | Pointer to I2C context structure |
nhal_result_t nhal_i2c_master_init_async | ( | struct nhal_i2c_context * | ctx, |
const struct nhal_async_config * | async_cfg | ||
) |
Initialize I2C context for async mode.
ctx | Pointer to I2C context structure |
async_cfg | Pointer to async configuration |
nhal_result_t nhal_i2c_master_read_async | ( | struct nhal_i2c_context * | ctx, |
nhal_i2c_address | dev_address, | ||
uint8_t * | data, | ||
size_t | len | ||
) |
Read data from I2C device asynchronously.
ctx | Pointer to I2C context structure |
dev_address | I2C slave device address |
data | Pointer to buffer for received data |
len | Number of bytes to read |
timeout_ms | Timeout in milliseconds |
nhal_result_t nhal_i2c_master_set_async_callback | ( | struct nhal_i2c_context * | ctx, |
nhal_async_complete_cb_t | callback | ||
) |
Set callback for async operation completion.
ctx | Pointer to I2C context structure |
callback | Callback function to execute on completion |
nhal_result_t nhal_i2c_master_write_async | ( | struct nhal_i2c_context * | ctx, |
nhal_i2c_address | dev_address, | ||
const uint8_t * | data, | ||
size_t | len | ||
) |
Write data to I2C device asynchronously.
ctx | Pointer to I2C context structure |
dev_address | I2C slave device address |
data | Pointer to data to transmit |
len | Number of bytes to transmit |
timeout_ms | Timeout in milliseconds |
nhal_result_t nhal_i2c_master_write_read_reg_async | ( | struct nhal_i2c_context * | ctx, |
nhal_i2c_address | dev_address, | ||
const uint8_t * | reg_address, | ||
size_t | reg_len, | ||
uint8_t * | data, | ||
size_t | data_len | ||
) |
Write to register then read from I2C device asynchronously.
ctx | Pointer to I2C context structure |
dev_address | I2C slave device address |
reg_address | Pointer to register address bytes |
reg_len | Number of register address bytes |
data | Pointer to buffer for received data |
data_len | Number of bytes to read |
timeout_ms | Timeout in milliseconds |