#ifndef USART_H
#define USART_H

#include "at32f403a_407.h"
#include "FreeRTOS.h"
#include "semphr.h"

#include <stdint.h>
#include <stdbool.h>



/*------индексы в массиве uarts --------------*/
#define DEBUG_USART         0 // USART1
#define MODEM_USART         1 // USART2
#define EXT_1_USART         2 // USART3
#define EXT_2_USART         3 // USART4
#define EXT_3_USART         4 // USART5
#define EXT_4_USART         5 // USART6


/**
  * @brief Скорость USART
  */
typedef enum
{
	BRD_1200 = 0,
	BRD_2400,
	BRD_4800,
	BRD_9600,
	BRD_19200,
	BRD_38400,
	BRD_57600,
	BRD_115200,
	BRD_230400,
	BRD_460800,
} rate_t;

/**
  * @brief Длина данных USART
  */
typedef enum
{
	DATABITS_7 = 0,
	DATABITS_8,
} databits_t;

/**
  * @brief Количество стоповых бит USART
  */
typedef enum
{
	STOP_0_5 = 0,
	STOP_1,
	STOP_1_5,
	STOP_2,
} stopbits_t;

/**
  * @brief  Четность прозрачного порта
  */
typedef enum
{
  NO_PAR = 0,
  ODD_PAR,
  EVEN_PAR,
  MAX_PARITY_TYPES
} parity_t;


typedef struct{
  rate_t baud;                      // Скорость порта 
  parity_t parity;                  // Четность 
  databits_t databits;              // Число бит данных
  stopbits_t stopbits;              // Число стоп-бит  
}uart_settings_t;




#endif /* #ifndef USART_H */

/****************************** (C) LiteMesh ***************** end of file ****/
