uart_interface.h 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #ifndef __UART_INTERFACE_H
  2. #define __UART_INTERFACE_H
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6. #ifdef __UART_INTERFACE_H_GLOBAL
  7. #define __UART_INTERFACE_H_EXTERN
  8. #else
  9. #define __UART_INTERFACE_H_EXTERN extern
  10. #endif
  11. /************************************************************************************************
  12. * Version *
  13. ************************************************************************************************/
  14. /************************************************************************************************
  15. * How to use *
  16. ************************************************************************************************/
  17. /************************************************************************************************
  18. * Enable config *
  19. ************************************************************************************************/
  20. /************************************************************************************************
  21. * Includes *
  22. ************************************************************************************************/
  23. #include <stdint.h>
  24. /************************************************************************************************
  25. * Defines *
  26. ************************************************************************************************/
  27. #define RX_TX_BUF_LEN (50)
  28. #define UART_SEND_IT_DISABLE() CLEAR_BIT(USART1->SR, USART_SR_RXNE)
  29. #define UART_RECV_IT_ENABLE() SET_BIT(USART1->CR1, USART_CR1_TXEIE)
  30. /************************************************************************************************
  31. * Typedefs *
  32. ************************************************************************************************/
  33. typedef struct
  34. {
  35. uint8_t rx[RX_TX_BUF_LEN];
  36. uint8_t tx[RX_TX_BUF_LEN];
  37. uint8_t rx_len;
  38. uint8_t tx_len;
  39. uint8_t rx_count_u8;
  40. uint8_t tx_count_u8;
  41. uint8_t device_type;
  42. uint8_t rx_finished_flg;
  43. uint8_t disconnect_flg;
  44. uint8_t rx_over_time;
  45. uint8_t rx_over_time_count;
  46. uint16_t disconnect_count;
  47. } uart_type;
  48. /************************************************************************************************
  49. * Interfaces *
  50. ************************************************************************************************/
  51. extern uart_type uart_msg;
  52. void uart_rx_ticks(void);
  53. void uart_start_send(uart_type *p_msg);
  54. #ifdef __cplusplus
  55. };
  56. #endif
  57. #endif // __UART_INTERFACE_H