82 lines
2.0 KiB
C
82 lines
2.0 KiB
C
/***********************************************************************
|
||
* @file jlinux_uart.h
|
||
JLINUX_UART
|
||
* @brief header file
|
||
* @history
|
||
* Date Version Author description
|
||
* ========== ======= ========= =======================================
|
||
* 2022-07-27 V1.0 Lucky,lukai@jovision.com Create
|
||
*
|
||
* @Copyright (C) 2022 Jovision Technology Co., Ltd.
|
||
***********************************************************************/
|
||
#ifndef __JLINUX_UART_H__
|
||
#define __JLINUX_UART_H__
|
||
|
||
#ifdef __cplusplus
|
||
extern "C"
|
||
{
|
||
#endif
|
||
|
||
typedef struct _uart_ctx *juart_hdl_t;
|
||
|
||
typedef struct
|
||
{
|
||
int baudrate; //波特率:1200/2400/4800/9600/19200/38400/57600/115200/230400/380400/460800/921600
|
||
int datawidth; //数据位宽度:5/6/7/8
|
||
int stopbit; //停止位宽度:1/2
|
||
int parity; //奇偶校验:0无校验,1奇校验,2偶校验
|
||
}JUartAttr_t;
|
||
|
||
/**
|
||
*@brief 打开串口设备设备,如果是485设备请配合jctrl_rs485相关接口使用
|
||
*@param name 设备名称,如:/dev/ttyS0
|
||
*@return 句柄
|
||
*/
|
||
juart_hdl_t juart_open(const char *name);
|
||
|
||
/**
|
||
*@brief 关闭串口
|
||
*@param handle 句柄
|
||
*/
|
||
int juart_close(juart_hdl_t handle);
|
||
|
||
/**
|
||
*@brief 配置串口属性
|
||
*@param handle 句柄
|
||
*@param attr 属性
|
||
*/
|
||
int juart_set_attr(juart_hdl_t handle, JUartAttr_t *attr);
|
||
|
||
int juart_get_fd(juart_hdl_t uart);
|
||
/**
|
||
*@brief 通过串口发送数据
|
||
*@param handle 句柄
|
||
*@param data 数据buffer
|
||
*@param len 数据长度
|
||
*@return 0成功
|
||
*/
|
||
int juart_send(juart_hdl_t handle, char *data, int len);
|
||
|
||
/**
|
||
*@brief 通过串口接受数据
|
||
*@param handle 句柄
|
||
*@param data 数据buffer
|
||
*@param len buffer的长度
|
||
*@param timeout 超时毫秒
|
||
*@return 收到数据的长度
|
||
*/
|
||
int juart_recv(juart_hdl_t handle, char *data, int len, int timeout);
|
||
|
||
/**
|
||
*@brief 设置rs485模式
|
||
*@param handle 句柄
|
||
*@param mode 0:发送后立刻置为接收状态;非0:发送后保持发送状态
|
||
*@return 0 成功
|
||
*/
|
||
int juart_set_rs485(juart_hdl_t handle, int mode);
|
||
|
||
#ifdef __cplusplus
|
||
}
|
||
#endif
|
||
#endif // __JLINUX_UART_H__
|