提供 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
◆ BAUD_RATE_4800
◆ BAUD_RATE_9600
◆ BAUD_RATE_19200
◆ BAUD_RATE_38400
◆ BAUD_RATE_57600
◆ BAUD_RATE_115200
◆ BAUD_RATE_230400
◆ BAUD_RATE_460800
◆ BAUD_RATE_500000
◆ BAUD_RATE_576000
◆ BAUD_RATE_921600
◆ BAUD_RATE_1000000
#define BAUD_RATE_1000000 |
◆ BAUD_RATE_1152000
#define BAUD_RATE_1152000 |
◆ BAUD_RATE_1500000
#define BAUD_RATE_1500000 |
◆ BAUD_RATE_2000000
#define BAUD_RATE_2000000 |
◆ BAUD_RATE_2500000
#define BAUD_RATE_2500000 |
◆ BAUD_RATE_3000000
#define BAUD_RATE_3000000 |
◆ BAUD_RATE_3500000
#define BAUD_RATE_3500000 |
◆ BAUD_RATE_4000000
#define BAUD_RATE_4000000 |
◆ DATA_BITS_5
◆ DATA_BITS_6
◆ DATA_BITS_7
◆ DATA_BITS_8
◆ DATA_BITS_9
◆ STOP_BITS_1
◆ STOP_BITS_2
◆ STOP_BITS_3
◆ STOP_BITS_4
◆ PARITY_NONE
◆ PARITY_ODD
◆ PARITY_EVEN
◆ BIT_ORDER_LSB
◆ BIT_ORDER_MSB
◆ NRZ_NORMAL
◆ NRZ_INVERTED
◆ RT_SERIAL_FLOWCONTROL_NONE
#define RT_SERIAL_FLOWCONTROL_NONE |
◆ RT_SERIAL_FLOWCONTROL_CTSRTS
#define RT_SERIAL_FLOWCONTROL_CTSRTS |
◆ 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 设备
- 参数
-
- 返回值
-
!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_EIO | IO 错误,设备不支持该oflag |
◆ rt_device_init()
rt_err_t rt_device_init |
( |
rt_device_t |
dev | ) |
|
初始化 UART 设备
本函数用于初始化 UART 设备
- 参数
-
- 返回值
-
◆ 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] | pos | UART 设备恒为 -1 |
[out] | buffer | 用于保存读取数据的缓冲区指针 |
[in] | size | 缓冲区大小,表示希望读取的数据大小 |
- 返回值
-
◆ 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_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 设备
- 参数
-
- 返回值
-
RT_EOK | 成功 |
-RT_ERROR | 失败,设备未被打开 |