|
enum | uart_parity_t { UART_PARITY_NONE = 0
, UART_PARITY_EVEN
, UART_PARITY_ODD
} |
|
enum | uart_callback_code_t {
UART_RX_COMPLETE = 0
, UART_UNDERRUN_ERROR = 1
, UART_START_BIT_ERROR = UART_START_BIT_ERROR_VAL
, UART_PARITY_ERROR = UART_START_BIT_ERROR_VAL + 1
,
UART_FRAMING_ERROR = UART_START_BIT_ERROR_VAL + 2
, UART_OVERRUN_ERROR = UART_START_BIT_ERROR_VAL + 3
} |
|
enum | uart_state_t {
UART_IDLE = 0
, UART_START
, UART_DATA
, UART_PARITY
,
UART_STOP
} |
|
|
void | uart_tx_init (uart_tx_t *uart, port_t tx_port, uint32_t baud_rate, uint8_t data_bits, uart_parity_t parity, uint8_t stop_bits, hwtimer_t tmr, uint8_t *tx_buff, size_t buffer_size_plus_one, void(*uart_tx_empty_callback_fptr)(void *app_data), void *app_data) |
|
void | uart_tx_blocking_init (uart_tx_t *uart, port_t tx_port, uint32_t baud_rate, uint8_t data_bits, uart_parity_t parity, uint8_t stop_bits, hwtimer_t tmr) |
|
void | uart_tx (uart_tx_t *uart, uint8_t data) |
|
void | uart_tx_deinit (uart_tx_t *uart) |
|
The public API for using the HIL UART Tx Module.
◆ HIL_UART_RX_CALLBACK_ATTR
#define HIL_UART_RX_CALLBACK_ATTR __attribute__((fptrgroup("hil_uart_rx_callback"))) |
This attribute must be specified on the UART Rx callback functions (both ERROR and Rx complete callbacks) provided by the application. It ensures the correct stack usage is correctly calculated.
◆ HIL_UART_TX_CALLBACK_ATTR
#define HIL_UART_TX_CALLBACK_ATTR __attribute__((fptrgroup("hil_uart_tx_callback"))) |
This attribute must be specified on the UART TX UNDERRUN callback function provided by the application. It ensures the correct stack usage is calculated.
◆ UART_START_BIT_ERROR_VAL
#define UART_START_BIT_ERROR_VAL 2 |
Define which sets the enum start point of RX errors. This is relied upon by the RTOS drivers and allows optimisation of error handling.
◆ uart_parity_t
Enum type representing the different options parity types.
◆ uart_callback_code_t
Enum type representing the callback error codes.
◆ uart_parity_t
Enum type representing the different options parity types.
◆ uart_state_t
Enum type representing the different states for the UART logic.
◆ uart_tx()
void uart_tx |
( |
uart_tx_t * |
uart, |
|
|
uint8_t |
data |
|
) |
| |
Transmits a single UART frame with parameters as specified in uart_tx_init()
- Parameters
-
uart | The uart_tx_t context to initialise. |
data | The word to transmit. |
◆ uart_tx_blocking_init()
void uart_tx_blocking_init |
( |
uart_tx_t * |
uart, |
|
|
port_t |
tx_port, |
|
|
uint32_t |
baud_rate, |
|
|
uint8_t |
data_bits, |
|
|
uart_parity_t |
parity, |
|
|
uint8_t |
stop_bits, |
|
|
hwtimer_t |
tmr |
|
) |
| |
Initializes a UART Tx I/O interface. The API is hard wired to blocking mode where the call to uart_tx will return at the end of sending the stop bit.
- Parameters
-
uart | The uart_tx_t context to initialise. |
tx_port | The port used transmit the UART frames. |
baud_rate | The baud rate of the UART in bits per second. |
data_bits | The number of data bits per frame sent. |
parity | The type of parity used. See uart_parity_t above. |
stop_bits | The number of stop bits asserted at the of the frame. |
tmr | The resource id of the timer to be used. Polling mode will be used if set to 0. |
◆ uart_tx_deinit()
De-initializes the specified UART Tx interface. This disables the port also. The timer, if used, needs to be freed by the application.
- Parameters
-
◆ uart_tx_init()
void uart_tx_init |
( |
uart_tx_t * |
uart, |
|
|
port_t |
tx_port, |
|
|
uint32_t |
baud_rate, |
|
|
uint8_t |
data_bits, |
|
|
uart_parity_t |
parity, |
|
|
uint8_t |
stop_bits, |
|
|
hwtimer_t |
tmr, |
|
|
uint8_t * |
tx_buff, |
|
|
size_t |
buffer_size_plus_one, |
|
|
void(*)(void *app_data) |
uart_tx_empty_callback_fptr, |
|
|
void * |
app_data |
|
) |
| |
Initializes a UART Tx I/O interface. Passing a valid buffer will enable buffered mode with ISR for use in bare-metal applications.
- Parameters
-
uart | The uart_tx_t context to initialise. |
tx_port | The port used transmit the UART frames. |
baud_rate | The baud rate of the UART in bits per second. |
data_bits | The number of data bits per frame sent. |
parity | The type of parity used. See uart_parity_t above. |
stop_bits | The number of stop bits asserted at the of the frame. |
tmr | The resource id of the timer to be used. Polling mode will be used if set to 0. |
tx_buff | Pointer to a buffer. Optional. If set to zero the UART will run in blocking mode. If initialised to a valid buffer, the UART will be interrupt driven. |
buffer_size_plus_one | Size of the buffer if enabled in tx_buff. Note that the buffer allocation and size argument must be one greater than needed. Eg. buff[65] for a 64 byte buffer. |
uart_tx_empty_callback_fptr | Callback function pointer for UART buffer empty in buffered mode. |
app_data | A pointer to application specific data provided by the application. Used to share data between this callback function and the application. |