NHAL Interface v0.5.0
Hardware Abstraction Layer Interface for Embedded Systems
Loading...
Searching...
No Matches
Functions
nhal_spi_master_async.h File Reference

Hardware Abstraction Layer (HAL) for asynchronous SPI Master communication. More...

#include <stddef.h>
#include <stdint.h>
#include "nhal_common.h"
#include "nhal_spi_types.h"

Go to the source code of this file.

Functions

nhal_result_t nhal_spi_master_init_async (struct nhal_spi_context *ctx, const struct nhal_async_config *async_cfg)
 Initialize SPI context for async mode.
 
nhal_result_t nhal_spi_master_deinit_async (struct nhal_spi_context *ctx)
 Deinitialize SPI async mode.
 
nhal_result_t nhal_spi_master_set_async_callback (struct nhal_spi_context *ctx, nhal_async_complete_cb_t callback)
 Set callback for async operation completion.
 
nhal_result_t nhal_spi_master_disable_async_callback (struct nhal_spi_context *ctx)
 Disable async completion callback.
 
nhal_async_status_t nhal_spi_master_get_async_status (struct nhal_spi_context *ctx)
 Get current async operation status.
 
nhal_result_t nhal_spi_master_write_async (struct nhal_spi_context *ctx, const uint8_t *data, size_t len,)
 Write data asynchronously.
 
nhal_result_t nhal_spi_master_read_async (struct nhal_spi_context *ctx, uint8_t *data, size_t len,)
 Read data asynchronously.
 
nhal_result_t nhal_spi_master_write_read_async (struct nhal_spi_context *ctx, const uint8_t *tx_data, size_t tx_len, uint8_t *rx_data, size_t rx_len,)
 Write and read data simultaneously (full-duplex) asynchronously.
 

Detailed Description

Hardware Abstraction Layer (HAL) for asynchronous SPI Master communication.

This header defines the public interface for asynchronous SPI 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_SPI_ASYNC_SUPPORT to be defined at compile time.

Note
This header requires nhal_spi_master.h to be included first for base functionality

Definition in file nhal_spi_master_async.h.

Function Documentation

◆ nhal_spi_master_deinit_async()

nhal_result_t nhal_spi_master_deinit_async ( struct nhal_spi_context ctx)

Deinitialize SPI async mode.

Parameters
ctxPointer to SPI context structure
Returns
NHAL_OK on success, error code otherwise

◆ nhal_spi_master_disable_async_callback()

nhal_result_t nhal_spi_master_disable_async_callback ( struct nhal_spi_context ctx)

Disable async completion callback.

Parameters
ctxPointer to SPI context structure
Returns
NHAL_OK on success, error code otherwise

◆ nhal_spi_master_get_async_status()

nhal_async_status_t nhal_spi_master_get_async_status ( struct nhal_spi_context ctx)

Get current async operation status.

Parameters
ctxPointer to SPI context structure
Returns
Current async operation status

◆ nhal_spi_master_init_async()

nhal_result_t nhal_spi_master_init_async ( struct nhal_spi_context ctx,
const struct nhal_async_config async_cfg 
)

Initialize SPI context for async mode.

Parameters
ctxPointer to SPI context structure
async_cfgPointer to async configuration
Returns
NHAL_OK on success, error code otherwise

◆ nhal_spi_master_read_async()

nhal_result_t nhal_spi_master_read_async ( struct nhal_spi_context ctx,
uint8_t *  data,
size_t  len 
)

Read data asynchronously.

Parameters
ctxPointer to SPI context structure
dataPointer to buffer for received data
lenNumber of bytes to read
timeout_msTimeout in milliseconds
Returns
NHAL_OK on success, error code otherwise

◆ nhal_spi_master_set_async_callback()

nhal_result_t nhal_spi_master_set_async_callback ( struct nhal_spi_context ctx,
nhal_async_complete_cb_t  callback 
)

Set callback for async operation completion.

Parameters
ctxPointer to SPI context structure
callbackCallback function to execute on completion
Returns
NHAL_OK on success, error code otherwise

◆ nhal_spi_master_write_async()

nhal_result_t nhal_spi_master_write_async ( struct nhal_spi_context ctx,
const uint8_t *  data,
size_t  len 
)

Write data asynchronously.

Parameters
ctxPointer to SPI context structure
dataPointer to data to transmit
lenNumber of bytes to transmit
timeout_msTimeout in milliseconds
Returns
NHAL_OK on success, error code otherwise

◆ nhal_spi_master_write_read_async()

nhal_result_t nhal_spi_master_write_read_async ( struct nhal_spi_context ctx,
const uint8_t *  tx_data,
size_t  tx_len,
uint8_t *  rx_data,
size_t  rx_len 
)

Write and read data simultaneously (full-duplex) asynchronously.

Parameters
ctxPointer to SPI context structure
tx_dataPointer to data to transmit
tx_lenNumber of bytes to transmit
rx_dataPointer to buffer for received data
rx_lenNumber of bytes to read
timeout_msTimeout in milliseconds
Returns
NHAL_OK on success, error code otherwise