usart.h 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. /******************************* (C) LiteMesh **********************************
  2. * @module usart
  3. * @file usart.h
  4. * @version 1.0.0
  5. * @date XX.XX.XXXX
  6. * $brief Template
  7. *******************************************************************************
  8. * @history Version Author Comment
  9. * XX.XX.XXXX 1.0.0 Telenkov D.A. First release.
  10. *******************************************************************************
  11. */
  12. /* Define to prevent recursive ----------------------------------------------*/
  13. #ifndef USART_H
  14. #define USART_H
  15. #include <stdint.h>
  16. #include "stm32f4xx.h"
  17. #include "FreeRTOS.h"
  18. #include "queue.h"
  19. #include "semphr.h"
  20. #include "common_config.h"
  21. /**
  22. * @brief
  23. */
  24. #define USER_USART USART1
  25. #define USER_USART_BAUD 115200
  26. #define USER_USART_WORD_LEN 8
  27. #define USER_USART_PARITY USART_Parity_No
  28. #define USER_USART_STOP_BIT USART_StopBits_1
  29. #define UPS_USART USART2
  30. #define UPS_USART_BAUD 2400
  31. #define UPS_USART_WORD_LEN 8
  32. #define UPS_USART_PARITY USART_Parity_No
  33. #define UPS_USART_STOP_BIT USART_StopBits_1
  34. #ifdef PORTGW_ENABLE
  35. #define RS485_USART USART3
  36. #define RS485_USART_BAUD 115200
  37. #define RS485_USART_WORD_LEN 8
  38. #define RS485_USART_PARITY USART_Parity_No
  39. #define RS485_USART_STOP_BIT USART_StopBits_1
  40. /* Queue */
  41. QueueHandle_t rs485TxQ, rs485RxQ;
  42. /* RS485 mutex */
  43. SemaphoreHandle_t rs485mutex;
  44. void rs485_enable_tx(void);
  45. #endif
  46. #ifdef DALLAS_SENSOR_ENABLE
  47. #define DALLAS_SENSOR_1_USART UART4
  48. #define DALLAS_SENSOR_2_USART UART5
  49. #define DALLAS_SENSOR_UART_BAUD 115200
  50. #define DALLAS_SENSOR_RST_UART_BAUD 9600
  51. #define DALLAS_SENSOR_UART_WORD_LEN 8
  52. #define DALLAS_SENSOR_UART_PARITY USART_Parity_No
  53. #define DALLAS_SENSOR_UART_STOP_BIT USART_StopBits_1
  54. #endif
  55. void init_ups_rbuf(void);
  56. void uart_hw_init(USART_TypeDef *uart, uint32_t baud, uint16_t wordlen, uint16_t parity, uint16_t stop);
  57. void uart_config_reinit(USART_TypeDef *uart, uint32_t baud, uint16_t wordlen, uint16_t parity, uint16_t stop);
  58. /**
  59. * @brief
  60. */
  61. void InitUSART(void);
  62. /**
  63. * @brief
  64. * @retval
  65. */
  66. int ups_getchar(unsigned int timeout);
  67. void ups_putchar(uint16_t byte);
  68. int ups_send_block(void *data, uint8_t len);
  69. int service_getchar(unsigned int timeout);
  70. void service_putchar(uint16_t byte);
  71. int service_send_block(void *data, uint8_t len);
  72. void putc_(void *p, char c);
  73. void putchar_(uint8_t c);
  74. #endif /* #ifndef USART_H */
  75. /****************************** (C) LiteMesh ***************** end of file ****/