$darkmode
RuiChing API 参考手册
V0.9.1

提供 UART 设备的查找、打开、控制、读写和关闭接口 更多...

结构体

struct  serial_configure
 UART 设备配置结构体 更多...
 

宏定义

#define BAUD_RATE_2400
 
#define BAUD_RATE_4800
 
#define BAUD_RATE_9600
 
#define BAUD_RATE_19200
 
#define BAUD_RATE_38400
 
#define BAUD_RATE_57600
 
#define BAUD_RATE_115200
 
#define BAUD_RATE_230400
 
#define BAUD_RATE_460800
 
#define BAUD_RATE_500000
 
#define BAUD_RATE_576000
 
#define BAUD_RATE_921600
 
#define BAUD_RATE_1000000
 
#define BAUD_RATE_1152000
 
#define BAUD_RATE_1500000
 
#define BAUD_RATE_2000000
 
#define BAUD_RATE_2500000
 
#define BAUD_RATE_3000000
 
#define BAUD_RATE_3500000
 
#define BAUD_RATE_4000000
 
#define DATA_BITS_5
 
#define DATA_BITS_6
 
#define DATA_BITS_7
 
#define DATA_BITS_8
 
#define DATA_BITS_9
 
#define STOP_BITS_1
 
#define STOP_BITS_2
 
#define STOP_BITS_3
 
#define STOP_BITS_4
 
#define PARITY_NONE
 
#define PARITY_ODD
 
#define PARITY_EVEN
 
#define BIT_ORDER_LSB
 
#define BIT_ORDER_MSB
 
#define NRZ_NORMAL
 
#define NRZ_INVERTED
 
#define RT_SERIAL_FLOWCONTROL_NONE
 
#define RT_SERIAL_FLOWCONTROL_CTSRTS
 
#define RT_SERIAL_CONFIG_DEFAULT
 UART 设备配置结构体默认初始化宏 更多...
 

函数

rt_device_t rt_device_find (const char *name)
 查找指定名称的 UART 设备 更多...
 
rt_err_t rt_device_open (rt_device_t dev, rt_uint16_t oflag)
 打开 UART 设备 更多...
 
rt_err_t rt_device_init (rt_device_t dev)
 初始化 UART 设备 更多...
 
rt_ssize_t rt_device_read (rt_device_t dev, rt_off_t pos, void *buffer, rt_size_t size)
 从 UART 设备读取数据 更多...
 
rt_ssize_t rt_device_write (rt_device_t dev, rt_off_t pos, const void *buffer, rt_size_t size)
 向 UART 设备写入数据 更多...
 
rt_err_t rt_device_set_rx_indicate (rt_device_t dev, rt_err_t(*rx_ind)(rt_device_t dev, rt_size_t size))
 设置 UART 设备接收回调函数 当 UART 接收到数据之后,会调用传入的函数并附带一些信息 更多...
 
rt_err_t rt_device_control (rt_device_t dev, int cmd, void *arg)
 对 UART 设备执行控制操作 更多...
 
rt_err_t rt_device_close (rt_device_t dev)
 关闭 UART 设备 更多...
 

详细描述

提供 UART 设备的查找、打开、控制、读写和关闭接口

宏定义说明

◆ BAUD_RATE_2400

#define BAUD_RATE_2400

串口 2400 波特率

◆ BAUD_RATE_4800

#define BAUD_RATE_4800

串口 4800 波特率

◆ BAUD_RATE_9600

#define BAUD_RATE_9600

串口 9600 波特率

◆ BAUD_RATE_19200

#define BAUD_RATE_19200

串口 19200 波特率

◆ BAUD_RATE_38400

#define BAUD_RATE_38400

串口 38400 波特率

◆ BAUD_RATE_57600

#define BAUD_RATE_57600

串口 57600 波特率

◆ BAUD_RATE_115200

#define BAUD_RATE_115200

串口 115200 波特率

◆ BAUD_RATE_230400

#define BAUD_RATE_230400

串口 230400 波特率

◆ BAUD_RATE_460800

#define BAUD_RATE_460800

串口 460800 波特率

◆ BAUD_RATE_500000

#define BAUD_RATE_500000

串口 500000 波特率

◆ BAUD_RATE_576000

#define BAUD_RATE_576000

串口 576000 波特率

◆ BAUD_RATE_921600

#define BAUD_RATE_921600

串口 921600 波特率

◆ BAUD_RATE_1000000

#define BAUD_RATE_1000000

串口 1000000 波特率

◆ BAUD_RATE_1152000

#define BAUD_RATE_1152000

串口 1152000 波特率

◆ BAUD_RATE_1500000

#define BAUD_RATE_1500000

串口 1500000 波特率

◆ BAUD_RATE_2000000

#define BAUD_RATE_2000000

串口 2000000 波特率

◆ BAUD_RATE_2500000

#define BAUD_RATE_2500000

串口 2500000 波特率

◆ BAUD_RATE_3000000

#define BAUD_RATE_3000000

串口 3000000 波特率

◆ BAUD_RATE_3500000

#define BAUD_RATE_3500000

串口 3500000 波特率

◆ BAUD_RATE_4000000

#define BAUD_RATE_4000000

串口 4000000 波特率

◆ DATA_BITS_5

#define DATA_BITS_5

串口 5 位数据位

◆ DATA_BITS_6

#define DATA_BITS_6

串口 6 位数据位

◆ DATA_BITS_7

#define DATA_BITS_7

串口 7 位数据位

◆ DATA_BITS_8

#define DATA_BITS_8

串口 8 位数据位

◆ DATA_BITS_9

#define DATA_BITS_9

串口 9 位数据位

◆ STOP_BITS_1

#define STOP_BITS_1

串口 1 个停止位

◆ STOP_BITS_2

#define STOP_BITS_2

串口 2 个停止位

◆ STOP_BITS_3

#define STOP_BITS_3

串口 3 个停止位

◆ STOP_BITS_4

#define STOP_BITS_4

串口 4 个停止位

◆ PARITY_NONE

#define PARITY_NONE

无奇偶校验

◆ PARITY_ODD

#define PARITY_ODD

奇校验

◆ PARITY_EVEN

#define PARITY_EVEN

偶校验

◆ BIT_ORDER_LSB

#define BIT_ORDER_LSB

传输低位在前

◆ BIT_ORDER_MSB

#define BIT_ORDER_MSB

传输高位在前

◆ NRZ_NORMAL

#define NRZ_NORMAL

正常模式:逻辑1为高电平,逻辑 0 为低电平

◆ NRZ_INVERTED

#define NRZ_INVERTED

反转模式:逻辑1为低电平,逻辑 0 为高电平

◆ RT_SERIAL_FLOWCONTROL_NONE

#define RT_SERIAL_FLOWCONTROL_NONE

无流控

◆ RT_SERIAL_FLOWCONTROL_CTSRTS

#define RT_SERIAL_FLOWCONTROL_CTSRTS

硬件流控,使用 CTS/RTS 信号线

◆ RT_SERIAL_CONFIG_DEFAULT

#define RT_SERIAL_CONFIG_DEFAULT
值:
{ \
BAUD_RATE_115200, \
DATA_BITS_8, \
STOP_BITS_1, \
PARITY_NONE, \
BIT_ORDER_LSB, \
NRZ_NORMAL, \
RT_SERIAL_RB_BUFSZ, \
RT_SERIAL_FLOWCONTROL_NONE, \
0 \
}

UART 设备配置结构体默认初始化宏

此宏用于快速初始化 UART 配置,字段含义如下:

  • BAUD_RATE_115200:115200 比特每秒
  • DATA_BITS_8:8 数据位
  • STOP_BITS_1:1 停止位
  • PARITY_NONE:无校验
  • BIT_ORDER_LSB:低位优先传输
  • NRZ_NORMAL:正常电平模式
  • RT_SERIAL_RB_BUFSZ:环形缓冲区大小(默认64)
  • RT_SERIAL_FLOWCONTROL_NONE:关闭流控
  • 0:保留字段

函数说明

◆ rt_device_find()

rt_device_t rt_device_find ( const char *  name)

查找指定名称的 UART 设备

本函数通过 UART 设备名称查找已注册的 UART 设备

参数
[in]nameUART 设备的名称字符串
返回值
!RT_NULL返回 UART 设备结构体指针
RT_NULL当前系统没有找到对应的 UART 设备

◆ rt_device_open()

rt_err_t rt_device_open ( rt_device_t  dev,
rt_uint16_t  oflag 
)

打开 UART 设备

本函数用于打开 UART 设备

参数
[in]dev指向 UART 设备结构体的指针
[in]oflag设备打开标志
标志位 含义
RT_DEVICE_OFLAG_RDWR 以读写方式打开串口设备
RT_DEVICE_FLAG_INT_RX 需要设置 UART 接收中断回调函数
RT_DEVICE_FLAG_DMA_TX 使用DMA发送 UART 数据
RT_DEVICE_FLAG_DMA_RX 需要设置 UART DMA 接收中断回调函数
返回值
RT_EOK成功
-RT_EBUSY设备繁忙
-RT_EIOIO 错误,设备不支持该oflag

◆ rt_device_init()

rt_err_t rt_device_init ( rt_device_t  dev)

初始化 UART 设备

本函数用于初始化 UART 设备

参数
[in]dev指向 UART 设备结构体的指针
返回值
RT_EOK成功
-RT_EINVAL参数不支持

◆ rt_device_read()

rt_ssize_t rt_device_read ( rt_device_t  dev,
rt_off_t  pos,
void *  buffer,
rt_size_t  size 
)

从 UART 设备读取数据

参数
[in]dev指向 UART 设备结构体的指针
[in]posUART 设备恒为 -1
[out]buffer用于保存读取数据的缓冲区指针
[in]size缓冲区大小,表示希望读取的数据大小
返回值
>0返回实际读取的大小
0读取失败

◆ rt_device_write()

rt_ssize_t rt_device_write ( rt_device_t  dev,
rt_off_t  pos,
const void *  buffer,
rt_size_t  size 
)

向 UART 设备写入数据

参数
[in]dev指向 UART 设备结构体的指针
[in]pos写入起始位置 UART 设备恒为0
[in]buffer指向待写入数据的缓冲区
[in]size缓冲区大小,表示希望写入的数据量
返回值
>0返回实际写入大小,该项可能与size不符
0写入失败

◆ rt_device_set_rx_indicate()

rt_err_t rt_device_set_rx_indicate ( rt_device_t  dev,
rt_err_t(*)(rt_device_t dev, rt_size_t size)  rx_ind 
)

设置 UART 设备接收回调函数 当 UART 接收到数据之后,会调用传入的函数并附带一些信息

参数
[in]dev指向设备驱动结构体的指针
[in]rx_ind接收通知回调函数指针,其原型为:
函数传参 含义
rt_device_t 触发中断回调的 UART 设备结构体的指针
rt_size_t UART 接收到的数据大小
rt_err_t 回调函数是否执行成功
返回值
RT_EOK成功

◆ rt_device_control()

rt_err_t rt_device_control ( rt_device_t  dev,
int  cmd,
void *  arg 
)

对 UART 设备执行控制操作

参数
[in]dev指向 UART 设备结构体的指针
[in]cmd发送给 UART 设备的命令标识
[in]arg命令的参数
标志位 含义 配合 cmd 的 arg 参数
RT_DEVICE_CTRL_CONFIG 控制串口属性 传入 struct serial_configure 类型的指针
返回值
RT_EOK成功
-RT_EINVAL参数不支持
-RT_ENOSYS不支持该操作

◆ rt_device_close()

rt_err_t rt_device_close ( rt_device_t  dev)

关闭 UART 设备

本接口用于关闭一个 UART 设备

参数
[in]dev指向 UART 设备的指针
返回值
RT_EOK成功
-RT_ERROR失败,设备未被打开