xt-sdk 文档
v1.0.3
xt-sdk 嵌入式 SDK API 参考
Toggle main menu visibility
载入中...
搜索中...
未找到
xt_hal_uart.h
浏览该文件的文档.
1
12
13
#ifndef __XT_HAL_UART_H__
14
#define __XT_HAL_UART_H__
15
16
/* ==================== [Includes] ========================================== */
17
18
#include "
xt_hal_internal.h
"
19
20
#ifdef __cplusplus
21
extern
"C"
{
22
#endif
23
30
31
/* ==================== [Defines] =========================================== */
32
33
#define XT_HAL_UART_INVALID_ID (0xFF)
34
35
#define XT_HAL_UART_STOP_BITS_S (0)
// [0..2]
36
#define XT_HAL_UART_STOP_BITS_W (3)
37
#define XT_HAL_UART_PARITY_S (3)
// [3..4]
38
#define XT_HAL_UART_PARITY_W (2)
39
#define XT_HAL_UART_WORD_LEN_S (5)
// [5..7]
40
#define XT_HAL_UART_WORD_LEN_W (3)
41
42
#define XT_HAL_UART_WORD_LEN_5 (0)
43
#define XT_HAL_UART_WORD_LEN_6 (1)
44
#define XT_HAL_UART_WORD_LEN_7 (2)
45
#define XT_HAL_UART_WORD_LEN_8 (3)
46
#define XT_HAL_UART_WORD_LEN_9 (4)
47
48
#define XT_HAL_UART_STOP_BITS_1 (0)
49
#define XT_HAL_UART_STOP_BITS_2 (1)
50
#define XT_HAL_UART_STOP_BITS_0_5 (2)
51
#define XT_HAL_UART_STOP_BITS_1_5 `(3)
52
53
#define XT_HAL_UART_PARITY_N (0)
54
#define XT_HAL_UART_PARITY_E (1)
55
#define XT_HAL_UART_PARITY_O (2)
56
64
#define XT_HAL_UART_PRESET(_word_length, _parity, _stop_bits) \
65
(((XT_HAL_UART_WORD_LEN##_word_length) << XT_HAL_UART_WORD_LEN_S) | \
66
((XT_HAL_UART_PARITY##_parity) << XT_HAL_UART_PARITY_S) | \
67
((XT_HAL_UART_STOP_BITS##_stop_bits) << XT_HAL_UART_STOP_BITS_S))
68
69
#define XT_HAL_UART_8N1 XT_HAL_UART_PRESET(_8, _N, _1)
70
#define XT_HAL_UART_8E1 XT_HAL_UART_PRESET(_8, _E, _1)
71
#define XT_HAL_UART_8O1 XT_HAL_UART_PRESET(_8, _O, _1)
72
#define XT_HAL_UART_8N2 XT_HAL_UART_PRESET(_8, _N, _2)
73
#define XT_HAL_UART_8E2 XT_HAL_UART_PRESET(_8, _E, _2)
74
#define XT_HAL_UART_8O2 XT_HAL_UART_PRESET(_8, _O, _2)
75
76
/* ==================== [Typedefs] ========================================== */
77
81
enum
xt_hal_uart_event_id
{
82
XT_HAL_UART_EVENT_RX
= 0x00,
83
XT_HAL_UART_EVENT_TX_DONE
,
84
};
85
92
typedef
void (*
xt_hal_uart_cb_t
)(uint8_t uart_id, uint32_t event_id);
93
94
/* ==================== [Global Prototypes] ================================= */
95
106
xt_err_t
xt_hal_uart_setup
(
107
uint8_t uart_id, uint32_t preset, uint32_t baudrate,
108
uint8_t tx_pin, uint8_t rx_pin);
109
116
xt_err_t
xt_hal_uart_close
(uint8_t uart_id);
117
128
xt_err_t
xt_hal_uart_set_rx_buf
(uint8_t uart_id,
void
*buffer,
size_t
size);
129
140
xt_err_t
xt_hal_uart_set_tx_buf
(uint8_t uart_id,
void
*buffer,
size_t
size);
141
149
xt_err_t
xt_hal_uart_set_cb
(uint8_t uart_id,
xt_hal_uart_cb_t
cb);
150
159
int32_t
xt_hal_uart_tx_block
(uint8_t uart_id,
const
void
*tx_buffer,
size_t
size);
160
171
int32_t
xt_hal_uart_tx_0copy
(uint8_t uart_id,
const
void
*tx_buffer,
size_t
size);
172
183
int32_t
xt_hal_uart_tx
(uint8_t uart_id,
const
void
*tx_buffer,
size_t
size);
184
193
int32_t
xt_hal_uart_rx
(uint8_t uart_id,
void
*rx_buffer,
size_t
size);
194
201
int32_t
xt_hal_uart_get_rx_count
(uint8_t uart_id);
202
209
xt_err_t
xt_hal_uart_flush_rx
(uint8_t uart_id);
210
217
int32_t
xt_hal_uart_get_tx_free
(uint8_t uart_id);
218
227
bool
xt_hal_uart_is_tx_busy
(uint8_t uart_id);
228
229
/* ==================== [Macros] ============================================ */
230
/* xt_hal_uart */
232
233
#ifdef __cplusplus
234
}
/* extern "C" */
235
#endif
236
237
#endif
/* __XT_HAL_UART_H__ */
xt_err_t
int32_t xt_err_t
错误码类型
定义
xt_error.h:38
xt_hal_uart_is_tx_busy
bool xt_hal_uart_is_tx_busy(uint8_t uart_id)
查询 UART 发送是否仍在进行(含移位寄存器)
xt_hal_uart_set_tx_buf
xt_err_t xt_hal_uart_set_tx_buf(uint8_t uart_id, void *buffer, size_t size)
设置发送缓冲区
xt_hal_uart_rx
int32_t xt_hal_uart_rx(uint8_t uart_id, void *rx_buffer, size_t size)
流式非阻塞接收
xt_hal_uart_event_id
xt_hal_uart_event_id
UART 事件 ID 枚举
定义
xt_hal_uart.h:81
xt_hal_uart_cb_t
void(* xt_hal_uart_cb_t)(uint8_t uart_id, uint32_t event_id)
UART 回调函数类型定义
定义
xt_hal_uart.h:92
xt_hal_uart_tx_block
int32_t xt_hal_uart_tx_block(uint8_t uart_id, const void *tx_buffer, size_t size)
阻塞发送
xt_hal_uart_get_tx_free
int32_t xt_hal_uart_get_tx_free(uint8_t uart_id)
获取发送缓冲区剩余空闲字节数
xt_hal_uart_close
xt_err_t xt_hal_uart_close(uint8_t uart_id)
关闭 UART
xt_hal_uart_flush_rx
xt_err_t xt_hal_uart_flush_rx(uint8_t uart_id)
清空接收缓冲区
xt_hal_uart_set_rx_buf
xt_err_t xt_hal_uart_set_rx_buf(uint8_t uart_id, void *buffer, size_t size)
设置接收缓冲区
xt_hal_uart_setup
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_hal_uart_tx
int32_t xt_hal_uart_tx(uint8_t uart_id, const void *tx_buffer, size_t size)
流式非阻塞发送
xt_hal_uart_get_rx_count
int32_t xt_hal_uart_get_rx_count(uint8_t uart_id)
获取接收缓冲区中可读数据字节数
xt_hal_uart_set_cb
xt_err_t xt_hal_uart_set_cb(uint8_t uart_id, xt_hal_uart_cb_t cb)
设置 UART 回调函数
xt_hal_uart_tx_0copy
int32_t xt_hal_uart_tx_0copy(uint8_t uart_id, const void *tx_buffer, size_t size)
非阻塞 0 拷贝发送
XT_HAL_UART_EVENT_RX
@ XT_HAL_UART_EVENT_RX
定义
xt_hal_uart.h:82
XT_HAL_UART_EVENT_TX_DONE
@ XT_HAL_UART_EVENT_TX_DONE
定义
xt_hal_uart.h:83
xt_hal_internal.h
XTINY HAL 内部公共头文件
platforms
components
xtiny
xt_hal
xt_hal_uart.h
生成于
, 为 xt-sdk 文档使用
1.17.0