|
xt-sdk 文档 v1.0.3
xt-sdk 嵌入式 SDK API 参考
|
XTINY HAL UART 模块接口 更多...
类型定义 | |
| typedef void(* | xt_hal_uart_cb_t) (uint8_t uart_id, uint32_t event_id) |
| UART 回调函数类型定义 | |
枚举 | |
| enum | xt_hal_uart_event_id { XT_HAL_UART_EVENT_RX = 0x00 , XT_HAL_UART_EVENT_TX_DONE } |
| UART 事件 ID 枚举 更多... | |
函数 | |
| xt_err_t | xt_hal_uart_setup (uint8_t uart_id, uint32_t preset, uint32_t baudrate, uint8_t tx_pin, uint8_t rx_pin) |
| 初始化 UART | |
| xt_err_t | xt_hal_uart_close (uint8_t uart_id) |
| 关闭 UART | |
| xt_err_t | xt_hal_uart_set_rx_buf (uint8_t uart_id, void *buffer, size_t size) |
| 设置接收缓冲区 | |
| xt_err_t | xt_hal_uart_set_tx_buf (uint8_t uart_id, void *buffer, size_t size) |
| 设置发送缓冲区 | |
| xt_err_t | xt_hal_uart_set_cb (uint8_t uart_id, xt_hal_uart_cb_t cb) |
| 设置 UART 回调函数 | |
| int32_t | xt_hal_uart_tx_block (uint8_t uart_id, const void *tx_buffer, size_t size) |
| 阻塞发送 | |
| int32_t | xt_hal_uart_tx_0copy (uint8_t uart_id, const void *tx_buffer, size_t size) |
| 非阻塞 0 拷贝发送 | |
| int32_t | xt_hal_uart_tx (uint8_t uart_id, const void *tx_buffer, size_t size) |
| 流式非阻塞发送 | |
| int32_t | xt_hal_uart_rx (uint8_t uart_id, void *rx_buffer, size_t size) |
| 流式非阻塞接收 | |
| int32_t | xt_hal_uart_get_rx_count (uint8_t uart_id) |
| 获取接收缓冲区中可读数据字节数 | |
| xt_err_t | xt_hal_uart_flush_rx (uint8_t uart_id) |
| 清空接收缓冲区 | |
| int32_t | xt_hal_uart_get_tx_free (uint8_t uart_id) |
| 获取发送缓冲区剩余空闲字节数 | |
| bool | xt_hal_uart_is_tx_busy (uint8_t uart_id) |
| 查询 UART 发送是否仍在进行(含移位寄存器) | |
XTINY HAL UART 模块接口
| #define XT_HAL_UART_8E1 XT_HAL_UART_PRESET(_8, _E, _1) |
8 位数据,偶校验,1 位停止位
在文件 xt_hal_uart.h 第 70 行定义.
| #define XT_HAL_UART_8E2 XT_HAL_UART_PRESET(_8, _E, _2) |
8 位数据,偶校验,2 位停止位
在文件 xt_hal_uart.h 第 73 行定义.
| #define XT_HAL_UART_8N1 XT_HAL_UART_PRESET(_8, _N, _1) |
8 位数据,无校验,1 位停止位
在文件 xt_hal_uart.h 第 69 行定义.
| #define XT_HAL_UART_8N2 XT_HAL_UART_PRESET(_8, _N, _2) |
8 位数据,无校验,2 位停止位
在文件 xt_hal_uart.h 第 72 行定义.
| #define XT_HAL_UART_8O1 XT_HAL_UART_PRESET(_8, _O, _1) |
8 位数据,奇校验,1 位停止位
在文件 xt_hal_uart.h 第 71 行定义.
| #define XT_HAL_UART_8O2 XT_HAL_UART_PRESET(_8, _O, _2) |
8 位数据,奇校验,2 位停止位
在文件 xt_hal_uart.h 第 74 行定义.
| #define XT_HAL_UART_INVALID_ID (0xFF) |
在文件 xt_hal_uart.h 第 33 行定义.
| #define XT_HAL_UART_PARITY_E (1) |
偶校验
在文件 xt_hal_uart.h 第 54 行定义.
| #define XT_HAL_UART_PARITY_N (0) |
无校验
在文件 xt_hal_uart.h 第 53 行定义.
| #define XT_HAL_UART_PARITY_O (2) |
奇校验
在文件 xt_hal_uart.h 第 55 行定义.
| #define XT_HAL_UART_PARITY_S (3) |
在文件 xt_hal_uart.h 第 37 行定义.
| #define XT_HAL_UART_PARITY_W (2) |
在文件 xt_hal_uart.h 第 38 行定义.
| #define XT_HAL_UART_PRESET | ( | _word_length, | |
| _parity, | |||
| _stop_bits ) |
UART 预设配置宏
| _word_length | 数据位长度后缀(如 _8 表示 8 位) |
| _parity | 校验方式后缀(如 _N 无校验,_E 偶校验,_O 奇校验) |
| _stop_bits | 停止位后缀(如 _1 表示 1 位停止位) |
在文件 xt_hal_uart.h 第 64 行定义.
| #define XT_HAL_UART_STOP_BITS_0_5 (2) |
0.5 位停止位
在文件 xt_hal_uart.h 第 50 行定义.
| #define XT_HAL_UART_STOP_BITS_1 (0) |
1 位停止位
在文件 xt_hal_uart.h 第 48 行定义.
| #define XT_HAL_UART_STOP_BITS_1_5 `(3) |
1.5 位停止位
在文件 xt_hal_uart.h 第 51 行定义.
| #define XT_HAL_UART_STOP_BITS_2 (1) |
2 位停止位
在文件 xt_hal_uart.h 第 49 行定义.
| #define XT_HAL_UART_STOP_BITS_S (0) |
在文件 xt_hal_uart.h 第 35 行定义.
| #define XT_HAL_UART_STOP_BITS_W (3) |
在文件 xt_hal_uart.h 第 36 行定义.
| #define XT_HAL_UART_WORD_LEN_5 (0) |
5 位数据
在文件 xt_hal_uart.h 第 42 行定义.
| #define XT_HAL_UART_WORD_LEN_6 (1) |
6 位数据
在文件 xt_hal_uart.h 第 43 行定义.
| #define XT_HAL_UART_WORD_LEN_7 (2) |
7 位数据
在文件 xt_hal_uart.h 第 44 行定义.
| #define XT_HAL_UART_WORD_LEN_8 (3) |
8 位数据
在文件 xt_hal_uart.h 第 45 行定义.
| #define XT_HAL_UART_WORD_LEN_9 (4) |
9 位数据
在文件 xt_hal_uart.h 第 46 行定义.
| #define XT_HAL_UART_WORD_LEN_S (5) |
在文件 xt_hal_uart.h 第 39 行定义.
| #define XT_HAL_UART_WORD_LEN_W (3) |
在文件 xt_hal_uart.h 第 40 行定义.
| typedef void(* xt_hal_uart_cb_t) (uint8_t uart_id, uint32_t event_id) |
| enum xt_hal_uart_event_id |
UART 事件 ID 枚举
| 枚举值 | |
|---|---|
| XT_HAL_UART_EVENT_RX | 串口接收到数据 |
| XT_HAL_UART_EVENT_TX_DONE | 串口发送完成,仅 xt_hal_uart_tx_0copy |
在文件 xt_hal_uart.h 第 81 行定义.
| xt_err_t xt_hal_uart_flush_rx | ( | uint8_t | uart_id | ) |
| int32_t xt_hal_uart_get_rx_count | ( | uint8_t | uart_id | ) |
获取接收缓冲区中可读数据字节数
| uart_id | UART 索引 |
| int32_t xt_hal_uart_get_tx_free | ( | uint8_t | uart_id | ) |
获取发送缓冲区剩余空闲字节数
| uart_id | UART 索引 |
| bool xt_hal_uart_is_tx_busy | ( | uint8_t | uart_id | ) |
查询 UART 发送是否仍在进行(含移位寄存器)
用于 RS485 场景判断最后一位是否真正移出,对应硬件 FR 寄存器 TXBUSY 位。
| uart_id | UART 索引 |
| int32_t xt_hal_uart_rx | ( | uint8_t | uart_id, |
| void * | rx_buffer, | ||
| size_t | size ) |
流式非阻塞接收
| uart_id | UART 索引 |
| rx_buffer | 接收数据缓冲区 |
| size | 缓冲区大小(字节) |
| xt_err_t xt_hal_uart_set_cb | ( | uint8_t | uart_id, |
| xt_hal_uart_cb_t | cb ) |
| xt_err_t xt_hal_uart_set_rx_buf | ( | uint8_t | uart_id, |
| void * | buffer, | ||
| size_t | size ) |
设置接收缓冲区
必须设置,且必须在 xt_hal_uart_setup 前设置。
| uart_id | UART 索引 |
| buffer | 缓冲区指针 |
| size | 缓冲区大小(字节) |
| xt_err_t xt_hal_uart_set_tx_buf | ( | uint8_t | uart_id, |
| void * | buffer, | ||
| size_t | size ) |
设置发送缓冲区
如果使用 xt_hal_uart_tx_0copy 或 xt_hal_uart_tx 则必须设置。
| uart_id | UART 索引 |
| buffer | 缓冲区指针 |
| size | 缓冲区大小(字节) |
| xt_err_t xt_hal_uart_setup | ( | uint8_t | uart_id, |
| uint32_t | preset, | ||
| uint32_t | baudrate, | ||
| uint8_t | tx_pin, | ||
| uint8_t | rx_pin ) |
初始化 UART
| uart_id | UART 索引 |
| preset | 预设配置(如 XT_HAL_UART_8N1) |
| baudrate | 波特率 |
| tx_pin | 发送引脚编号 |
| rx_pin | 接收引脚编号 |
| int32_t xt_hal_uart_tx | ( | uint8_t | uart_id, |
| const void * | tx_buffer, | ||
| size_t | size ) |
流式非阻塞发送
只要流缓冲区有空位就可以写,注意不一定能写入 size 字节。
| uart_id | UART 索引 |
| tx_buffer | 发送数据缓冲区 |
| size | 发送数据长度(字节) |
| int32_t xt_hal_uart_tx_0copy | ( | uint8_t | uart_id, |
| const void * | tx_buffer, | ||
| size_t | size ) |
非阻塞 0 拷贝发送
需等待传输完成才能复用 tx_buffer。
| uart_id | UART 索引 |
| tx_buffer | 发送数据缓冲区 |
| size | 发送数据长度(字节) |
| int32_t xt_hal_uart_tx_block | ( | uint8_t | uart_id, |
| const void * | tx_buffer, | ||
| size_t | size ) |
阻塞发送
| uart_id | UART 索引 |
| tx_buffer | 发送数据缓冲区 |
| size | 发送数据长度(字节) |