72 lines
2.3 KiB
C
72 lines
2.3 KiB
C
/*
|
||
* 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_ */
|