82 lines
2.0 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.

/***********************************************************************
* @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__