luat_soc_sdk_2024 V1.0
UART接口

结构体

struct  luat_uart
 luat_uart 更多...
 
struct  luat_uart_ctrl_param
 串口控制参数 更多...
 
enum  LUAT_UART_CTRL_CMD { LUAT_UART_SET_RECV_CALLBACK , LUAT_UART_SET_SENT_CALLBACK }
 串口控制参数 更多...
 
typedef struct luat_uart luat_uart_t
 luat_uart
 
typedef enum LUAT_UART_CTRL_CMD LUAT_UART_CTRL_CMD_E
 串口控制参数
 
typedef void(* luat_uart_recv_callback_t) (int uart_id, uint32_t data_len)
 接收回调函数
 
typedef void(* luat_uart_sent_callback_t) (int uart_id, void *param)
 发送回调函数
 
typedef struct luat_uart_ctrl_param luat_uart_ctrl_param_t
 串口控制参数
 
int luat_uart_setup (luat_uart_t *uart)
 uart初始化
 
int luat_uart_write (int uart_id, void *data, size_t length)
 串口写数据
 
int luat_uart_read (int uart_id, void *buffer, size_t length)
 串口读数据
 
void luat_uart_clear_rx_cache (int uart_id)
 清除uart的接收缓存数据
 
int luat_uart_close (int uart_id)
 关闭串口
 
int luat_uart_exist (int uart_id)
 检测串口是否存在
 
int luat_uart_ctrl (int uart_id, LUAT_UART_CTRL_CMD_E cmd, void *param)
 串口控制
 
int luat_uart_pre_setup (int uart_id, uint8_t use_alt_type)
 串口复用函数,目前支持UART0,UART2
 
#define LUAT_PARITY_NONE   0
 校验位
 
#define LUAT_PARITY_ODD   1
 
#define LUAT_PARITY_EVEN   2
 
#define LUAT_BIT_ORDER_LSB   0
 高低位顺序
 
#define LUAT_BIT_ORDER_MSB   1
 
#define LUAT_0_5_STOP_BITS   0xf0
 停止位
 
#define LUAT_1_5_STOP_BITS   0xf1
 
#define LUAT_VUART_ID_0   0x20
 

详细描述

版本
V1.0
注意
上报接收数据中断的逻辑: 1.串口初始化时,新建一个缓冲区 2.可以考虑多为用户申请几百字节的缓冲长度,用户处理时防止丢包 3.每次串口收到数据时,先存入缓冲区,记录长度 4.遇到以下情况时,再调用串口中断 a)缓冲区满(帮用户多申请的的情况)/缓冲区只剩几百字节(按实际长度申请缓冲区的情况) b)收到fifo接收超时中断(此时串口数据应该是没有继续收了) 5.触发收到数据中断时,返回的数据应是缓冲区的数据 6.关闭串口时,释放缓冲区资源

宏定义说明

◆ LUAT_0_5_STOP_BITS

#define LUAT_0_5_STOP_BITS   0xf0

停止位

0.5

在文件 luat_uart.h44 行定义.

◆ LUAT_1_5_STOP_BITS

#define LUAT_1_5_STOP_BITS   0xf1

1.5

在文件 luat_uart.h45 行定义.

◆ LUAT_BIT_ORDER_LSB

#define LUAT_BIT_ORDER_LSB   0

高低位顺序

低位有效

在文件 luat_uart.h38 行定义.

◆ LUAT_BIT_ORDER_MSB

#define LUAT_BIT_ORDER_MSB   1

高位有效

在文件 luat_uart.h39 行定义.

◆ LUAT_PARITY_EVEN

#define LUAT_PARITY_EVEN   2

偶校验

在文件 luat_uart.h33 行定义.

◆ LUAT_PARITY_NONE

#define LUAT_PARITY_NONE   0

校验位

无校验

在文件 luat_uart.h31 行定义.

◆ LUAT_PARITY_ODD

#define LUAT_PARITY_ODD   1

奇校验

在文件 luat_uart.h32 行定义.

◆ LUAT_VUART_ID_0

#define LUAT_VUART_ID_0   0x20

在文件 luat_uart.h47 行定义.

类型定义说明

◆ LUAT_UART_CTRL_CMD_E

串口控制参数

◆ luat_uart_ctrl_param_t

串口控制参数

◆ luat_uart_recv_callback_t

typedef void(* luat_uart_recv_callback_t) (int uart_id, uint32_t data_len)

接收回调函数

在文件 luat_uart.h130 行定义.

◆ luat_uart_sent_callback_t

typedef void(* luat_uart_sent_callback_t) (int uart_id, void *param)

发送回调函数

在文件 luat_uart.h136 行定义.

◆ luat_uart_t

枚举类型说明

◆ LUAT_UART_CTRL_CMD

串口控制参数

枚举值
LUAT_UART_SET_RECV_CALLBACK 

接收回调

LUAT_UART_SET_SENT_CALLBACK 

发送回调

在文件 luat_uart.h120 行定义.

函数说明

◆ luat_uart_clear_rx_cache()

void luat_uart_clear_rx_cache ( int uart_id)

清除uart的接收缓存数据

返回
int

◆ luat_uart_close()

int luat_uart_close ( int uart_id)

关闭串口

参数
uart_id串口id
返回
int

◆ luat_uart_ctrl()

int luat_uart_ctrl ( int uart_id,
LUAT_UART_CTRL_CMD_E cmd,
void * param )

串口控制

参数
uart_id串口id
cmd串口控制命令
param串口控制参数
返回
int

◆ luat_uart_exist()

int luat_uart_exist ( int uart_id)

检测串口是否存在

参数
uart_id串口id
返回
int

◆ luat_uart_pre_setup()

int luat_uart_pre_setup ( int uart_id,
uint8_t use_alt_type )

串口复用函数,目前支持UART0,UART2

参数
uart_id串口id
use_alt_type如果为1,UART0,复用到GPIO16,GPIO17;UART2复用到GPIO12 GPIO13
返回
int 0 失败,其他成功

◆ luat_uart_read()

int luat_uart_read ( int uart_id,
void * buffer,
size_t length )

串口读数据

参数
uart_id串口id
buffer数据
length数据长度
返回
int

◆ luat_uart_setup()

int luat_uart_setup ( luat_uart_t * uart)

uart初始化

参数
uartluat_uart结构体
返回
int

◆ luat_uart_write()

int luat_uart_write ( int uart_id,
void * data,
size_t length )

串口写数据

参数
uart_id串口id
data数据
length数据长度
返回
int