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

Hardware Abstraction Layer (HAL) for asynchronous UART communication. More...

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

Go to the source code of this file.

Functions

nhal_result_t nhal_uart_init_async (struct nhal_uart_context *ctx, const struct nhal_async_config *async_cfg)
 Initialize UART context for async mode.
 
nhal_result_t nhal_uart_deinit_async (struct nhal_uart_context *ctx)
 Deinitialize UART async mode.
 
nhal_result_t nhal_uart_set_async_callback (struct nhal_uart_context *ctx, nhal_async_complete_cb_t callback)
 Set callback for async operation completion.
 
nhal_result_t nhal_uart_disable_async_callback (struct nhal_uart_context *ctx)
 Disable async completion callback.
 
nhal_async_status_t nhal_uart_get_async_status (struct nhal_uart_context *ctx)
 Get current async operation status.
 
nhal_result_t nhal_uart_write_async (struct nhal_uart_context *ctx, const uint8_t *data, size_t len)
 Write data asynchronously.
 
nhal_result_t nhal_uart_read_async (struct nhal_uart_context *ctx, uint8_t *data, size_t len)
 Read data asynchronously.
 

Detailed Description

Hardware Abstraction Layer (HAL) for asynchronous UART communication.

This header defines the public interface for asynchronous UART operations using internal buffers. It provides functions for enabling async mode, managing buffers, and performing non-blocking read/write operations with callback completion.

Async mode provides non-blocking data flow using internal TX/RX buffers managed by the HAL. This mode requires NHAL_UART_ASYNC_SUPPORT to be defined at compile time.

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

Definition in file nhal_uart_async.h.

Function Documentation

◆ nhal_uart_deinit_async()

nhal_result_t nhal_uart_deinit_async ( struct nhal_uart_context ctx)

Deinitialize UART async mode.

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

◆ nhal_uart_disable_async_callback()

nhal_result_t nhal_uart_disable_async_callback ( struct nhal_uart_context ctx)

Disable async completion callback.

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

◆ nhal_uart_get_async_status()

nhal_async_status_t nhal_uart_get_async_status ( struct nhal_uart_context ctx)

Get current async operation status.

Parameters
ctxPointer to UART context structure
Returns
Current async operation status

◆ nhal_uart_init_async()

nhal_result_t nhal_uart_init_async ( struct nhal_uart_context ctx,
const struct nhal_async_config async_cfg 
)

Initialize UART context for async mode.

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

◆ nhal_uart_read_async()

nhal_result_t nhal_uart_read_async ( struct nhal_uart_context ctx,
uint8_t *  data,
size_t  len 
)

Read data asynchronously.

Parameters
ctxPointer to UART 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_uart_set_async_callback()

nhal_result_t nhal_uart_set_async_callback ( struct nhal_uart_context ctx,
nhal_async_complete_cb_t  callback 
)

Set callback for async operation completion.

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

◆ nhal_uart_write_async()

nhal_result_t nhal_uart_write_async ( struct nhal_uart_context ctx,
const uint8_t *  data,
size_t  len 
)

Write data asynchronously.

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