terminal_usartbridge.h 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. #ifndef __USARTBRIDGETERMINAL_H
  2. #define __USARTBRIDGETERMINAL_H
  3. #include "stm32g4xx_hal.h"
  4. #include "terminal.h"
  5. //Usart configuration
  6. #define USART_BRIDGE_USART USART3
  7. #define USART_BRIDGE_SPEED 115200
  8. #define USART_BRIDGE_IRQn USART3_IRQn
  9. #define USART_BRIDGE_IRQHandler USART3_IRQHandler
  10. #define USART_BRIDGE_AF GPIO_AF7_USART3
  11. #define USART_BRIDGE_TX_PIN GPIO_PIN_10
  12. #define USART_BRIDGE_RX_PIN GPIO_PIN_11
  13. #define USART_BRIDGE_TX_PORT GPIOB
  14. #define USART_BRIDGE_RX_PORT GPIOB
  15. #define USART_BRIDGE_CLK_ENABLE __USART3_CLK_ENABLE();
  16. #define USART_BRIDGE_TX_PORT_CLK_ENABLE __HAL_RCC_GPIOB_CLK_ENABLE();
  17. #define USART_BRIDGE_RX_PORT_CLK_ENABLE __HAL_RCC_GPIOB_CLK_ENABLE();
  18. //-----------------------------------------------------------------------------
  19. // Connect usartBridge objectt with ANSI C Interfaces
  20. //-----------------------------------------------------------------------------
  21. //Task for freertos function
  22. void task_usartbridge(void *pvParameters);
  23. //Ansi C interface for usartBridge object
  24. void configure_usartbridge();
  25. void processing_usartbridge();
  26. void print_usartbridge(const char * str);
  27. void vTaskUsartBridge(void *params);
  28. void HAL_UART_RxCpltCallbackTerminal(void);
  29. void HAL_UART_TxCpltCallbackTerminal(void);
  30. //-----------------------------------------------------------------------------
  31. // Usart bridge class for terminal
  32. //-----------------------------------------------------------------------------
  33. class UsartBridgeTerminal
  34. {
  35. public:
  36. UsartBridgeTerminal();
  37. ~UsartBridgeTerminal();
  38. void configure();
  39. void print(const char *str);
  40. public:
  41. void recvByte();
  42. void sendByte(uint8_t byte);
  43. void clearTxNoEmpty();
  44. private:
  45. void InitUsart();
  46. public:
  47. UART_HandleTypeDef uart;
  48. char m_uartByte;
  49. bool m_state;
  50. private:
  51. uint32_t m_sizeCache;
  52. uint32_t m_readIndex;
  53. bool m_isTxNoEmpty;
  54. };
  55. extern UsartBridgeTerminal terminalUsartBridge;
  56. #endif // USARTBRIDGETERMINAL_H