Skip to content

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.

SYN_Status syn_port_uart_deinit (
    SYN_UARTInstance instance
) 

Parameters:

  • instance UART instance to de-initialize.

Returns:

SYN_OK on success.


function syn_port_uart_disable_txe_irq

Disable UART TXE interrupt.

void syn_port_uart_disable_txe_irq (
    SYN_UARTInstance instance
) 

Parameters:

  • instance UART instance.

function syn_port_uart_enable_txe_irq

Enable UART TXE (Transmit Data Register Empty) interrupt.

void syn_port_uart_enable_txe_irq (
    SYN_UARTInstance instance
) 

Parameters:

  • instance UART instance.

function syn_port_uart_init

Initialize a UART peripheral.

SYN_Status syn_port_uart_init (
    SYN_UARTInstance instance,
    uint32_t baudrate
) 

Parameters:

  • instance UART instance number (0, 1, 2, …).
  • baudrate Desired 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.

bool syn_port_uart_is_tc_set (
    SYN_UARTInstance instance
) 

Parameters:

  • instance UART 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:

  • instance UART instance.
  • data Buffer to receive into.
  • len Maximum number of bytes to receive.
  • received [out] Actual number of bytes received.
  • timeout_ms Timeout 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:

  • instance UART instance.
  • byte [out] Received byte.
  • timeout_ms Timeout 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:

  • instance UART instance.
  • callback Function to call on TC, or NULL to disable.
  • ctx User 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:

  • instance UART instance.
  • data Pointer to data to transmit.
  • len Number of bytes to transmit.
  • timeout_ms Timeout 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).

SYN_Status syn_port_uart_transmit_byte (
    SYN_UARTInstance instance,
    uint8_t byte
) 

Parameters:

  • instance UART instance.
  • byte Byte 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.

void syn_port_uart_write_dr (
    SYN_UARTInstance instance,
    uint8_t byte
) 

Parameters:

  • instance UART instance.
  • byte Byte to write.


The documentation for this class was generated from the following file src/syntropic/port/syn_port_uart.h