| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- #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
|