#ifndef UART_H_
#define UART_H_
#include <stdint.h>
typedef enum
{
PARITY_SETTINGS_NONE, PARITY_SETTINGS_ODD, PARITY_SETTINGS_EVEN, PARITY_SETTINGS_MARK, PARITY_SETTINGS_SPACE } PARITY_SETTINGS;
typedef enum
{
UART_DATA_LENGTH_7BIT,
UART_DATA_LENGTH_8BIT
} UART_DATA_LENGTH;
typedef enum
{
UART_STOP_BIT_1BIT,
UART_STOP_BIT_15BIT,
UART_STOP_BIT_2BIT
} UART_STOP_BIT;
typedef enum
{
UART_UNKNOWN_ERR = -14, UART_DATA_NEGA_ERR = -13, UART_FIFO_FULL_ERR = -12, UART_RX_ALL_ERR = -11, UART_FIFO_STOP_ERR = -10, UART_PARITY_STOP_ERR = -9, UART_STOP_BIT_ERR = -8, UART_PARITY_FIFO_ERR = -7, UART_FIFO_OVER_ERR = -6, UART_PARITY_ERR = -5, UART_YET_ERR = -4, UART_ALREADY_ERR = -3, UART_BAUDRATE_ERR = -2, UART_CH_ERR = -1, UART_OK = 0 } UART_ERR_CODE;
typedef struct
{
uint8_t ch; char* device_file_name; uint32_t baudrate; PARITY_SETTINGS parity_settings; UART_DATA_LENGTH data_length; UART_STOP_BIT stop_bit; } UART_Config;
int UART_init(void* my_uart_v);
int UART_rx(void* my_uart_v, void* data_v, int buffer_size);
int UART_tx(void* my_uart_v, void* data_v, int data_size);
int UART_reopen(void* my_uart_v, int reason);
#endif