gateway/Software/inc/uart_dev.h

72 lines
2.3 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* 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 <rtthread.h>
#include <rthw.h>
#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_UART4_handle;
extern device_handle g_Upward_UART5_handle;
/*
* 串口连接对应的连接的设备
* ONLYONE表示唯一
* 串口3会分时复用采用如下的方式确定在与谁通信
*/
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);
uint8_t uart_all_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_ */