TuyaOS
tal_uart.h
浏览该文件的文档.
1
11#ifndef __TAL_UART_H__
12#define __TAL_UART_H__
13
14#include "tuya_cloud_types.h"
15
16#ifdef __cplusplus
17 extern "C" {
18#endif
19
20#define O_BLOCK 1 /* 阻塞读写 */
21/* 通过注册回调区别是不是异步写 */
22#define O_ASYNC_WRITE (1 << 1) /* 异步写 */
23#define O_FLOW_CTRL (1 << 2) /* 流控使能 */
24
25/* 用KCONFIG配置 */
26#define O_TX_DMA (1 << 3) /* 用DMA发送 */
27#define O_RX_DMA (1 << 4) /* 用DMA接收 */
28
29
30typedef struct {
31 UINT32_T rx_buffer_size;
32#ifdef CONFIG_TX_ASYNC
33 UINT32_T tx_buffer_size;
34#endif
35 UINT8_T open_mode;
36 TUYA_UART_BASE_CFG_T base_cfg;
38
54OPERATE_RET tal_uart_init(TUYA_UART_NUM_E port_id, TAL_UART_CFG_T *cfg);
55
72INT_T tal_uart_read(TUYA_UART_NUM_E port_id, UINT8_T *data, UINT32_T len);
73
74
91INT_T tal_uart_write(TUYA_UART_NUM_E port_id, CONST UINT8_T *data, UINT32_T len);
92
93
108OPERATE_RET tal_uart_deinit(TUYA_UART_NUM_E port_id);
109
110
125typedef VOID_T (*TAL_UART_IRQ_CB)(TUYA_UART_NUM_E port_id, VOID_T *buff, UINT16_T len);
126
140VOID_T tal_uart_rx_reg_irq_cb(TUYA_UART_NUM_E port_id, TAL_UART_IRQ_CB rx_cb);
141
142
143#ifdef __cplusplus
144}
145#endif
146
147#endif
Definition: tal_uart.h:30
uart config
Definition: tuya_cloud_types.h:972
VOID_T tal_uart_rx_reg_irq_cb(TUYA_UART_NUM_E port_id, TAL_UART_IRQ_CB rx_cb)
enable uart rx interrupt and register interrupt callback func
INT_T tal_uart_read(TUYA_UART_NUM_E port_id, UINT8_T *data, UINT32_T len)
read data from uart
INT_T tal_uart_write(TUYA_UART_NUM_E port_id, CONST UINT8_T *data, UINT32_T len)
send data by uart
VOID_T(* TAL_UART_IRQ_CB)(TUYA_UART_NUM_E port_id, VOID_T *buff, UINT16_T len)
uart irq callback
Definition: tal_uart.h:125
OPERATE_RET tal_uart_deinit(TUYA_UART_NUM_E port_id)
deinit uart
OPERATE_RET tal_uart_init(TUYA_UART_NUM_E port_id, TAL_UART_CFG_T *cfg)
init uart