Files
StepMotorCtrl/drv/uart/uart_driver.h
T

39 lines
1.0 KiB
C
Raw Normal View History

#ifndef UART_DRIVER_H__
#define UART_DRIVER_H__
#include "common_types.h"
#include <stdint.h>
typedef enum {
UART_ID_USART1 = 0,
UART_ID_UART1,
UART_ID_LPUART1,
UART_ID_COUNT,
} uart_id_t;
typedef struct {
uint32_t tx_bytes;
uint32_t rx_bytes;
uint32_t overflow_errors;
} uart_stats_t;
typedef struct {
uint32_t baudrate;
uint8_t data_bits;
uint8_t stop_bits;
uint8_t parity;
} uart_config_t;
ret_code_t uart_init(uart_id_t id, const uart_config_t *config);
ret_code_t uart_deinit(uart_id_t id);
ret_code_t uart_send(uart_id_t id, const uint8_t *data, uint32_t len);
ret_code_t uart_receive(uart_id_t id, uint8_t *data, uint32_t len, uint32_t timeout);
ret_code_t uart_send_dma(uart_id_t id, const uint8_t *data, uint32_t len);
ret_code_t uart_receive_dma(uart_id_t id, uint8_t *data, uint32_t len);
uint32_t uart_available(uart_id_t id);
ret_code_t uart_set_rs485_dir(uart_id_t id, uint8_t tx_mode);
const uart_stats_t* uart_get_stats(uart_id_t id);
void uart_reset_stats(uart_id_t id);
#endif