File syn_port_uart.h¶
FileList > port > syn_port_uart.h
Go to the source code of this file
UART port interface — functions the user must implement. More...
#include "../common/syn_defs.h"
Public Functions¶
| Type | Name |
|---|---|
| SYN_Status | syn_port_uart_deinit (SYN_UARTInstance instance) De-initialize a UART peripheral. |
| void | syn_port_uart_disable_txe_irq (SYN_UARTInstance instance) Disable UART TXE interrupt. |
| void | syn_port_uart_enable_txe_irq (SYN_UARTInstance instance) Enable UART TXE (Transmit Data Register Empty) interrupt. |
| SYN_Status | syn_port_uart_init (SYN_UARTInstance instance, uint32_t baudrate) Initialize a UART peripheral. |
| bool | syn_port_uart_is_tc_set (SYN_UARTInstance instance) Check if UART Transfer Complete (TC / Shift Register empty) flag is set. |
| SYN_Status | syn_port_uart_receive (SYN_UARTInstance instance, uint8_t * data, size_t len, size_t * received, uint32_t timeout_ms) Receive bytes into a buffer (blocking). |
| SYN_Status | syn_port_uart_receive_byte (SYN_UARTInstance instance, uint8_t * byte, uint32_t timeout_ms) Receive a single byte (blocking). |
| void | syn_port_uart_set_tc_callback (SYN_UARTInstance instance, void(*)(void *ctx) callback, void * ctx) Register a Transfer Complete (TC) callback for RS485 DE pin control. |
| SYN_Status | syn_port_uart_transmit (SYN_UARTInstance instance, const uint8_t * data, size_t len, uint32_t timeout_ms) Transmit a buffer of bytes (blocking). |
| SYN_Status | syn_port_uart_transmit_byte (SYN_UARTInstance instance, uint8_t byte) Transmit a single byte (blocking). |
| void | syn_port_uart_write_dr (SYN_UARTInstance instance, uint8_t byte) Write a single byte to the hardware UART Data Register without waiting. |
Detailed Description¶
Provides the low-level byte/buffer transmit and receive primitives that the higher-level syn_uart driver builds upon.
Public Functions Documentation¶
function syn_port_uart_deinit¶
De-initialize a UART peripheral.
Parameters:
instanceUART instance to de-initialize.
Returns:
SYN_OK on success.
function syn_port_uart_disable_txe_irq¶
Disable UART TXE interrupt.
Parameters:
instanceUART instance.
function syn_port_uart_enable_txe_irq¶
Enable UART TXE (Transmit Data Register Empty) interrupt.
Parameters:
instanceUART instance.
function syn_port_uart_init¶
Initialize a UART peripheral.
Parameters:
instanceUART instance number (0, 1, 2, …).baudrateDesired baud rate.
Returns:
SYN_OK on success.
function syn_port_uart_is_tc_set¶
Check if UART Transfer Complete (TC / Shift Register empty) flag is set.
Parameters:
instanceUART instance.
Returns:
true if hardware shift register is clear.
function syn_port_uart_receive¶
Receive bytes into a buffer (blocking).
SYN_Status syn_port_uart_receive (
SYN_UARTInstance instance,
uint8_t * data,
size_t len,
size_t * received,
uint32_t timeout_ms
)
Parameters:
instanceUART instance.dataBuffer to receive into.lenMaximum number of bytes to receive.received[out] Actual number of bytes received.timeout_msTimeout in milliseconds (0 = no timeout).
Returns:
SYN_OK on success, SYN_TIMEOUT if the timeout elapsed.
function syn_port_uart_receive_byte¶
Receive a single byte (blocking).
SYN_Status syn_port_uart_receive_byte (
SYN_UARTInstance instance,
uint8_t * byte,
uint32_t timeout_ms
)
Parameters:
instanceUART instance.byte[out] Received byte.timeout_msTimeout in milliseconds (0 = no timeout).
Returns:
SYN_OK if a byte was received, SYN_TIMEOUT otherwise.
function syn_port_uart_set_tc_callback¶
Register a Transfer Complete (TC) callback for RS485 DE pin control.
void syn_port_uart_set_tc_callback (
SYN_UARTInstance instance,
void(*)(void *ctx) callback,
void * ctx
)
Parameters:
instanceUART instance.callbackFunction to call on TC, or NULL to disable.ctxUser context passed to callback.
function syn_port_uart_transmit¶
Transmit a buffer of bytes (blocking).
SYN_Status syn_port_uart_transmit (
SYN_UARTInstance instance,
const uint8_t * data,
size_t len,
uint32_t timeout_ms
)
Parameters:
instanceUART instance.dataPointer to data to transmit.lenNumber of bytes to transmit.timeout_msTimeout in milliseconds (0 = no timeout).
Returns:
SYN_OK on success, SYN_TIMEOUT if the timeout elapsed.
function syn_port_uart_transmit_byte¶
Transmit a single byte (blocking).
Parameters:
instanceUART instance.byteByte to transmit.
Returns:
SYN_OK on success.
function syn_port_uart_write_dr¶
Write a single byte to the hardware UART Data Register without waiting.
Parameters:
instanceUART instance.byteByte to write.
The documentation for this class was generated from the following file src/syntropic/port/syn_port_uart.h