terminal_usartbridge.h 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #ifndef __USARTBRIDGETERMINAL_H
  2. #define __USARTBRIDGETERMINAL_H
  3. #include "at32f403a_407.h"
  4. #include "terminal.h"
  5. #define USART_BRIDGE_USART USART1
  6. #define USART_BRIDGE_SPEED 115200
  7. #define USART_BRIDGE_IRQn USART1_IRQn
  8. #define USART_BRIDGE_IRQHandler USART1_IRQHandler
  9. #define USART_BRIDGE_TX_PIN GPIO_PINS_9
  10. #define USART_BRIDGE_RX_PIN GPIO_PINS_10
  11. #define USART_BRIDGE_TX_PORT GPIOA
  12. #define USART_BRIDGE_RX_PORT GPIOA
  13. #define USART_BRIDGE_CLK_ENABLE crm_periph_clock_enable(CRM_USART1_PERIPH_CLOCK, TRUE);
  14. #define USART_BRIDGE_TX_PORT_CLK_ENABLE crm_periph_clock_enable(CRM_GPIOA_PERIPH_CLOCK, TRUE);
  15. #define USART_BRIDGE_RX_PORT_CLK_ENABLE crm_periph_clock_enable(CRM_GPIOA_PERIPH_CLOCK, TRUE);
  16. //-----------------------------------------------------------------------------
  17. // Connect usartBridge objectt with ANSI C Interfaces
  18. //-----------------------------------------------------------------------------
  19. //Task for freertos function
  20. void task_usartbridge(void *pvParameters);
  21. //Ansi C interface for usartBridge object
  22. void configure_usartbridge();
  23. void processing_usartbridge();
  24. void print_usartbridge(const char * str);
  25. void vTaskUsartBridge(void *params);
  26. void HAL_UART_RxCpltCallbackTerminal(void);
  27. void HAL_UART_TxCpltCallbackTerminal(void);
  28. //-----------------------------------------------------------------------------
  29. // Usart bridge class for terminal
  30. //-----------------------------------------------------------------------------
  31. class UsartBridgeTerminal
  32. {
  33. public:
  34. UsartBridgeTerminal();
  35. ~UsartBridgeTerminal();
  36. void configure();
  37. void print(const char *str);
  38. public:
  39. void recvByte();
  40. void sendByte(uint8_t byte);
  41. private:
  42. void InitUsart();
  43. public:
  44. char m_uartByte;
  45. bool m_state;
  46. private:
  47. uint32_t m_sizeCache;
  48. uint32_t m_readIndex;
  49. };
  50. extern UsartBridgeTerminal terminalUsartBridge;
  51. #endif // USARTBRIDGETERMINAL_H