#ifndef _AGM_UART_H_ #define _AGM_UART_H_ #include "board.h" #include "timeout.h" /*端口号*/ enum { UART0_ID = 0, UART1_ID = 1, UART2_ID = 2, UART_DEBUG = UART0_ID, UART_4G = UART1_ID, UART_485 = UART2_ID, UART_MAX = 3 }; #define RS485_RX() GPIO_SetLow(GPIO1, GPIO_BIT2) #define RS485_TX() GPIO_SetHigh(GPIO1, GPIO_BIT2) #define UART_RCV_TEMPBUF_LEN 1024 #define UART_RCV_TIMEOUT (10) //串口接收超时时间,单位ms #define UART_RCV_TIMEOUT_T (2*1000) typedef struct _uart_rcv_temp { uint16_t p_input; uint16_t p_output; uint8_t rcv_buf[UART_RCV_TEMPBUF_LEN]; }__attribute__((packed)) uart_rcv_temp_t; //串口接收 typedef struct _uart_info { uart_rcv_temp_t p_rcv; uart_rcv_temp_t p_temp; uint8_t rcv_over; timeout_t tt_uart; uint32_t t_time; }__attribute__((packed)) uart_info_t; extern uart_info_t uart_info[UART_MAX]; extern void data_dump(const char *name, uint8_t *data, uint16_t length); extern void Uart0_Init(uint32_t baud); extern void Uart2_Init(uint32_t baud); extern int uart_msg_send(uint8_t uartid, const char *buf, uint32_t buflen); extern uint16_t uart_blocking_read(uint8_t *buf, uint8_t uart); extern void uart_rcv_handle(void); #endif