/* * uart_dev.h * * Created on: 2024年6月22日 * Author: psx */ #ifndef APP_INC_UART_DEV_H_ #define APP_INC_UART_DEV_H_ #include "ch32v30x.h" #include #include #include "RingQueue/ring_queue.h" #define ASCII_CHAR_BACKSPACE 0x08 /* '\b' */ #define ASCII_CHAR_CHARACTER_TABULATION 0x09 /* '\t' */ #define ASCII_CHAR_LINE_FEED 0x0A /* '\n' */ #define ASCII_CHAR_LINE_TABULATION 0x0B /* '\v' */ #define ASCII_CHAR_FORM_FEED 0x0C /* '\f' */ #define ASCII_CHAR_CARRIAGE_RETURN 0x0D /* '\r' */ //#define RS485_MAX_PACK_DATA_LEN 30 typedef uint32_t device_handle; extern device_handle g_J1RS485_UART6_handle; extern device_handle g_J2RS485_UART7_handle; extern device_handle g_J3RS485_USART2_handle; extern device_handle g_J4RS485_UART8_handle; extern device_handle g_J50RS485_USART3_handle; extern device_handle g_LORA_UART5_handle; //typedef enum{ // J1RS485_UART6 = UART6, // J2RS485_UART7 = 7, // J3RS485_USART2 = 2, // J4RS485_UART8 = 8, // J50RS485_USART3 = 3, // LORA_UART5 = 5, //}uartIndex_e; typedef enum{ ONLYONE = 1, J0RS485 = 0, J5RS485 = 5, J6RS485 = 6, J7RS485 = 7, J8RS485 = 8, J9RS485 = 9, }uartNum_e; /* UART 驱动数据结构,对应一个uart设备 */ typedef struct _uart_device_info{ uint8_t init; USART_TypeDef *uart_index; uint32_t uart_baudrate; RingQueue uart_ring_queue; uartNum_e uart_num; }uart_device_info; //device_handle uart_dev_init(uartIndex_e uart_index, uint8_t *buff, int buff_size); //device_handle uart_dev_init(uart_device_info *uart_device, uint8_t *buff, int buff_size); device_handle uart_dev_init(void); void uart_sendstr(device_handle device,char *str); void uart_dev_write(device_handle device, void *data, int len); int uart_dev_char_present(device_handle device); char uart_dev_in_char(device_handle device); int ring_queue_dev_char_present(RingQueue *ring_queue); char ring_queue_dev_in_char(RingQueue *ring_queue); int ring_queue_length(device_handle device); #endif /* APP_INC_UART_DEV_H_ */