bsp_serial.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #pragma once
  2. #include <stdint.h>
  3. #include "rkfifo.h"
  4. #include "usart.h"
  5. //#define BSP_USING_UART1
  6. //#define BSP_USING_UART2
  7. //#define BSP_USING_UART3
  8. //#define BSP_USING_UART4
  9. //#define BSP_USING_UART5
  10. //#define BSP_UART_USING_DMA
  11. #define BSP_UART_RX_BUFF_SIZE 64
  12. #define BSP_UART_TX_BUFF_SIZE 64
  13. typedef struct
  14. {
  15. uint8_t _pTxBuff[BSP_UART_TX_BUFF_SIZE];
  16. uint8_t _pRxBuff[BSP_UART_RX_BUFF_SIZE];
  17. rkfifo_t _rxFifo;
  18. rkfifo_t _txFifo;
  19. UART_HandleTypeDef *huart;
  20. #ifdef BSP_UART_USING_DMA /* dma 相关配置 */
  21. uint32_t _dmarx_remaining_cnt;
  22. DMA_HandleTypeDef *_dmarx_handle;
  23. DMA_HandleTypeDef *_dmatx_handle;
  24. #endif
  25. } Serial;
  26. #ifdef BSP_USING_UART1
  27. extern Serial serial1;
  28. #endif
  29. #ifdef BSP_USING_UART2
  30. extern Serial serial2;
  31. #endif
  32. #ifdef BSP_USING_UART3
  33. extern Serial serial3;
  34. #endif
  35. #ifdef BSP_USING_UART4
  36. extern Serial serial4;
  37. #endif
  38. #ifdef BSP_USING_UART5
  39. extern Serial serial5;
  40. #endif
  41. void bspSerialInit(void);
  42. int bspSerialSetTxdoneCallback(Serial *serial, int (*txCompleteCallback)(void *arg));
  43. int bspSerialReadReady(Serial *serial, uint32_t timeOut);
  44. int bspSerialWriteDone(Serial *serial, uint32_t timeOut);
  45. uint32_t bspSerialWrite(Serial *serial, const uint8_t *pTxData, uint32_t txLen);
  46. uint32_t bspSerialRead(Serial *serial, uint8_t *pTxData, uint32_t txLen);
  47. void _uartIsr( Serial *serial );
  48. //static int _serialInit(Serial *serial, UART_HandleTypeDef *huart);