usart.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. #ifndef USART_H
  2. #define USART_H
  3. #include "at32f403a_407.h"
  4. #include "FreeRTOS.h"
  5. #include "semphr.h"
  6. #include <stdint.h>
  7. #include <stdbool.h>
  8. /*------индексы в массиве uarts --------------*/
  9. #define DEBUG_USART 0 // USART1
  10. #define MODEM_USART 1 // USART2
  11. #define EXT_1_USART 2 // USART3
  12. #define EXT_2_USART 3 // USART4
  13. #define EXT_3_USART 4 // USART5
  14. #define EXT_4_USART 5 // USART6
  15. /**
  16. * @brief Скорость USART
  17. */
  18. typedef enum
  19. {
  20. BRD_1200 = 0,
  21. BRD_2400,
  22. BRD_4800,
  23. BRD_9600,
  24. BRD_19200,
  25. BRD_38400,
  26. BRD_57600,
  27. BRD_115200,
  28. BRD_230400,
  29. BRD_460800,
  30. } rate_t;
  31. /**
  32. * @brief Длина данных USART
  33. */
  34. typedef enum
  35. {
  36. DATABITS_7 = 0,
  37. DATABITS_8,
  38. } databits_t;
  39. /**
  40. * @brief Количество стоповых бит USART
  41. */
  42. typedef enum
  43. {
  44. STOP_0_5 = 0,
  45. STOP_1,
  46. STOP_1_5,
  47. STOP_2,
  48. } stopbits_t;
  49. /**
  50. * @brief Четность прозрачного порта
  51. */
  52. typedef enum
  53. {
  54. NO_PAR = 0,
  55. ODD_PAR,
  56. EVEN_PAR,
  57. MAX_PARITY_TYPES
  58. } parity_t;
  59. typedef struct{
  60. rate_t baud; // Скорость порта
  61. parity_t parity; // Четность
  62. databits_t databits; // Число бит данных
  63. stopbits_t stopbits; // Число стоп-бит
  64. }uart_settings_t;
  65. #endif /* #ifndef USART_H */
  66. /****************************** (C) LiteMesh ***************** end of file ****/