uart_interface.h 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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 "stm32f4xx.h"
  24. #include "uart4.h"
  25. #include <stdint.h>
  26. /************************************************************************************************
  27. * Defines *
  28. ************************************************************************************************/
  29. #define RX_TX_BUF_LEN (50)
  30. #define UART_RXNE_IT_DISABLE() USART_ITConfig(UART4, USART_IT_RXNE, DISABLE)
  31. #define UART_TXE_IT_ENABLE() USART_ITConfig(UART4, USART_IT_TXE, ENABLE)
  32. /************************************************************************************************
  33. * Typedefs *
  34. ************************************************************************************************/
  35. typedef struct
  36. {
  37. uint8_t rx[RX_TX_BUF_LEN];
  38. uint8_t tx[RX_TX_BUF_LEN];
  39. uint8_t rx_len;
  40. uint8_t tx_len;
  41. uint8_t rx_count_u8;
  42. uint8_t tx_count_u8;
  43. uint8_t device_type;
  44. uint8_t rx_finished_flg;
  45. uint8_t disconnect_flg;
  46. uint8_t rx_over_time;
  47. uint8_t rx_over_time_count;
  48. uint16_t disconnect_count;
  49. } uart_type;
  50. /************************************************************************************************
  51. * Interfaces *
  52. ************************************************************************************************/
  53. extern uart_type uart_msg;
  54. void uart_rx_ticks(void);
  55. void uart_start_send(uart_type *p_msg);
  56. void uart4_it(void);
  57. #ifdef __cplusplus
  58. };
  59. #endif
  60. #endif // __UART_INTERFACE_H