#ifndef _SERIAL_H__ #define _SERIAL_H__ #include "libs/types.h" #include "libs/circle_buffer.h" #define CH_START 0xF5 #define CH_END 0xF6 #define CH_ESC 0xF7 #define CH_ESC_START 0x05 #define CH_ESC_END 0x06 #define CH_ESC_ESC 0x07 #define RX_FRAME_MAX_LEN 130 typedef struct { u8 tx_buf[128]; u8 rx_buf[128]; c_buffer_t c_tx_buff; c_buffer_t c_rx_buff; c_buffer_t rx_queue; uint16_t tx_length; uint16_t tx_crc16; uint8_t rx_frame[RX_FRAME_MAX_LEN]; uint16_t rx_length; bool escape; }uart_t; void serial_init(void); void serial_write(u8 *data, int len); void uart_write_frame(uint8_t *bytes, int len); #endif /* _SERIAL_H__ */