![]() |
NEORV32 - Software Framework Documentation
|
Universal asynchronous receiver/transmitter (UART0/UART1) HW driver header file. More...
#include <stdarg.h>
Go to the source code of this file.
Data Structures | |
struct | neorv32_uart_t |
Functions | |
Prototypes | |
int | neorv32_uart_available (neorv32_uart_t *UARTx) |
void | neorv32_uart_setup (neorv32_uart_t *UARTx, uint32_t baudrate, uint32_t irq_mask) |
void | neorv32_uart_enable (neorv32_uart_t *UARTx) |
void | neorv32_uart_disable (neorv32_uart_t *UARTx) |
void | neorv32_uart_rtscts_enable (neorv32_uart_t *UARTx) |
void | neorv32_uart_rtscts_disable (neorv32_uart_t *UARTx) |
void | neorv32_uart_putc (neorv32_uart_t *UARTx, char c) |
int | neorv32_uart_tx_busy (neorv32_uart_t *UARTx) |
char | neorv32_uart_getc (neorv32_uart_t *UARTx) |
int | neorv32_uart_char_received (neorv32_uart_t *UARTx) |
char | neorv32_uart_char_received_get (neorv32_uart_t *UARTx) |
void | neorv32_uart_puts (neorv32_uart_t *UARTx, const char *s) |
void | neorv32_uart_printf (neorv32_uart_t *UARTx, const char *format,...) |
int | neorv32_uart_scan (neorv32_uart_t *UARTx, char *buffer, int max_size, int echo) |
IO Device: Primary/Secondary Universal Asynchronous Receiver and Transmitter (UART0 / UART1) | |
#define | NEORV32_UART0 ((neorv32_uart_t*) (NEORV32_UART0_BASE)) |
#define | NEORV32_UART1 ((neorv32_uart_t*) (NEORV32_UART1_BASE)) |
enum | NEORV32_UART_CTRL_enum { UART_CTRL_EN = 0 , UART_CTRL_SIM_MODE = 1 , UART_CTRL_HWFC_EN = 2 , UART_CTRL_PRSC0 = 3 , UART_CTRL_PRSC1 = 4 , UART_CTRL_PRSC2 = 5 , UART_CTRL_BAUD0 = 6 , UART_CTRL_BAUD1 = 7 , UART_CTRL_BAUD2 = 8 , UART_CTRL_BAUD3 = 9 , UART_CTRL_BAUD4 = 10 , UART_CTRL_BAUD5 = 11 , UART_CTRL_BAUD6 = 12 , UART_CTRL_BAUD7 = 13 , UART_CTRL_BAUD8 = 14 , UART_CTRL_BAUD9 = 15 , UART_CTRL_RX_NEMPTY = 16 , UART_CTRL_RX_HALF = 17 , UART_CTRL_RX_FULL = 18 , UART_CTRL_TX_EMPTY = 19 , UART_CTRL_TX_NHALF = 20 , UART_CTRL_TX_FULL = 21 , UART_CTRL_IRQ_RX_NEMPTY = 22 , UART_CTRL_IRQ_RX_HALF = 23 , UART_CTRL_IRQ_RX_FULL = 24 , UART_CTRL_IRQ_TX_EMPTY = 25 , UART_CTRL_IRQ_TX_NHALF = 26 , UART_CTRL_RX_OVER = 30 , UART_CTRL_TX_BUSY = 31 } |
Universal asynchronous receiver/transmitter (UART0/UART1) HW driver header file.
#define NEORV32_UART0 ((neorv32_uart_t*) (NEORV32_UART0_BASE)) |
UART0 module hardware access (neorv32_uart_t)
#define NEORV32_UART1 ((neorv32_uart_t*) (NEORV32_UART1_BASE)) |
UART1 module hardware access (neorv32_uart_t)
UART control register bits
int neorv32_uart_available | ( | neorv32_uart_t * | UARTx | ) |
Check if UART unit was synthesized.
[in,out] | Hardware | handle to UART register struct, neorv32_uart_t. |
int neorv32_uart_char_received | ( | neorv32_uart_t * | UARTx | ) |
Check if UART has received a char.
[in,out] | UARTx | Hardware handle to UART register struct, neorv32_uart_t. |
char neorv32_uart_char_received_get | ( | neorv32_uart_t * | UARTx | ) |
Get a received char from UART.
[in,out] | UARTx | Hardware handle to UART register struct, neorv32_uart_t. |
void neorv32_uart_disable | ( | neorv32_uart_t * | UARTx | ) |
Disable UART.
[in,out] | UARTx | Hardware handle to UART register struct, neorv32_uart_t. |
void neorv32_uart_enable | ( | neorv32_uart_t * | UARTx | ) |
Enable UART.
[in,out] | UARTx | Hardware handle to UART register struct, neorv32_uart_t. |
char neorv32_uart_getc | ( | neorv32_uart_t * | UARTx | ) |
Get char from UART.
[in,out] | UARTx | Hardware handle to UART register struct, neorv32_uart_t. |
void neorv32_uart_printf | ( | neorv32_uart_t * | UARTx, |
const char * | format, | ||
... | |||
) |
Custom version of 'printf' function using UART.
[in,out] | UARTx | Hardware handle to UART register struct, neorv32_uart_t. |
[in] | format | Pointer to format string. |
s | String (array of chars, zero-terminated) |
c | Single char |
d/i | 32-bit signed number, printed as decimal |
u | 32-bit unsigned number, printed as decimal |
x | 32-bit number, printed as 8-char hexadecimal - lower-case |
X | 32-bit number, printed as 8-char hexadecimal - upper-case |
p | 32-bit pointer, printed as 8-char hexadecimal - lower-case |
void neorv32_uart_putc | ( | neorv32_uart_t * | UARTx, |
char | c | ||
) |
Send single char via UART.
[in,out] | UARTx | Hardware handle to UART register struct, neorv32_uart_t. |
[in] | c | Char to be send. |
void neorv32_uart_puts | ( | neorv32_uart_t * | UARTx, |
const char * | s | ||
) |
Print string (zero-terminated) via UART. Print full line break "\r\n" for every '
'.
[in,out] | UARTx | Hardware handle to UART register struct, neorv32_uart_t. |
[in] | s | Pointer to string. |
void neorv32_uart_rtscts_disable | ( | neorv32_uart_t * | UARTx | ) |
Disable RTS/CTS hardware flow-control.
[in,out] | UARTx | Hardware handle to UART register struct, neorv32_uart_t. |
void neorv32_uart_rtscts_enable | ( | neorv32_uart_t * | UARTx | ) |
Enable RTS/CTS hardware flow-control.
[in,out] | UARTx | Hardware handle to UART register struct, neorv32_uart_t. |
int neorv32_uart_scan | ( | neorv32_uart_t * | UARTx, |
char * | buffer, | ||
int | max_size, | ||
int | echo | ||
) |
Simplified custom version of 'scanf' function for UART.
[in,out] | UARTx | Hardware handle to UART register struct, neorv32_uart_t. |
[in,out] | buffer | Pointer to array of chars to store string. |
[in] | max_size | Maximum number of chars to sample. |
[in] | echo | Echo UART input when 1. |
void neorv32_uart_setup | ( | neorv32_uart_t * | UARTx, |
uint32_t | baudrate, | ||
uint32_t | irq_mask | ||
) |
Reset, configure and enable UART.
[in,out] | UARTx | Hardware handle to UART register struct, neorv32_uart_t. |
[in] | baudrate | Targeted BAUD rate (e.g. 19200). |
[in] | irq_mask | Interrupt configuration mask (CTRL's irq_* bits). |
int neorv32_uart_tx_busy | ( | neorv32_uart_t * | UARTx | ) |
Check if UART TX is busy (transmitter busy or data left in TX buffer).
[in,out] | UARTx | Hardware handle to UART register struct, neorv32_uart_t. |