Uart.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #ifndef _UART_H_
  2. #define _UART_H_
  3. #include "gd32f10x.h"
  4. #include <stdio.h>
  5. #include <string.h>
  6. #include "timeout.h"
  7. extern uint8_t g_bPrintDebug;
  8. extern void usart0_config(void);
  9. extern void data_dump(const char *name, uint8_t *data, uint16_t length);
  10. #define U1_RX_SIZE 2048
  11. #define U1_RX_MAX 600
  12. #define NUM 10
  13. #define USART1_TX_SIZE 640
  14. typedef struct {
  15. uint8_t *start;
  16. uint8_t *end;
  17. }UCB_URxBuffptr;
  18. typedef struct {
  19. uint16_t URxCounter; //统计接收数据量
  20. UCB_URxBuffptr URxDataPtr[NUM];
  21. UCB_URxBuffptr *URxDataIN;
  22. UCB_URxBuffptr *URxDataOUT;
  23. UCB_URxBuffptr *URxDataEND;
  24. }UCB_CB;
  25. typedef struct _uart_info_{
  26. uint8_t txfifo[640];
  27. uint8_t waitMsg[16]; // 等待接收的字符串
  28. uint8_t cmd;
  29. uint8_t bSdFinish; // 发送完成
  30. }uartInfo_t;
  31. extern uartInfo_t g_uart1Info;
  32. extern uint8_t U1_RxBuff[U1_RX_SIZE];
  33. extern UCB_CB U1CB;
  34. extern void dma_init_uart_4G(void);
  35. extern void usart_4G_dma_init(void);
  36. extern void dma_config_rx_mode_update(void);
  37. #define USART3_TX_SIZE 256
  38. #define USART3_RX_SIZE 256
  39. extern uint8_t usart485TX_Buffer[USART3_TX_SIZE];
  40. extern uint8_t usart485RX_Buffer[USART3_RX_SIZE];
  41. typedef struct _uart_485_info_{
  42. uint8_t bSdFinish; //
  43. uint8_t bRcv;
  44. timeout_t time; // 发送的时候启动 收到数据时结束
  45. }__attribute__((packed))uart485Info_t;
  46. extern uart485Info_t g_uart485;
  47. extern void dam_init_uart_485(void);
  48. extern void usart_485_dma_init(void);
  49. extern void usart_tx_dma_send(uint32_t usart_periph,uint8_t* data_buffer,uint16_t length);
  50. #endif