Documentation
Includes
tuya_driver.h
#include "tuya_driver.h"
tuya_uart_legacy.h
#include "tuya_uart_legacy.h"
Macros
Marco __TUYA_UART_H__
#define __TUYA_UART_H__
Marco TUYA_UART_8N1_CFG(__UART, __BAUDRATE, __BUFSZ, __FLAG)
#define TUYA_UART_8N1_CFG(__UART, __BAUDRATE, __BUFSZ, __FLAG) \
(__UART)->cfg.baudrate = __BAUDRATE; \
(__UART)->cfg.flag = TUYA_DRV_INT_RX_FLAG | __FLAG; \
(__UART)->cfg.bufsz = __BUFSZ; \
(__UART)->cfg.databits = TUYA_UART_DATA_BIT8; \
(__UART)->cfg.stopbits = TUYA_UART_STOP_BIT1; \
(__UART)->cfg.parity = TUYA_UART_PARITY_NONE
Marco TUYA_UART_8N1_CFG_INIT(__CFG, __BAUDRATE, __BUFSZ, __FLAG)
#define TUYA_UART_8N1_CFG_INIT(__CFG, __BAUDRATE, __BUFSZ, __FLAG) \
(__CFG)->baudrate = __BAUDRATE; \
(__CFG)->flag = TUYA_DRV_INT_RX_FLAG | __FLAG; \
(__CFG)->bufsz = __BUFSZ; \
(__CFG)->databits = TUYA_UART_DATA_BIT8; \
(__CFG)->stopbits = TUYA_UART_STOP_BIT1; \
(__CFG)->parity = TUYA_UART_PARITY_NONE
Functions
Func tuya_uart_int_bufsize
int tuya_uart_int_bufsize(tuya_uart_t *uart);
Func tuya_uart_read_timeout
int tuya_uart_read_timeout(tuya_uart_t *uart, void *data, uint16_t len, uint32_t timeout);
Vars
Variable tuya_uart_init
int tuya_uart_init (tuya_uart_t *uart);
Variable tuya_uart_read
int tuya_uart_read (tuya_uart_t *uart, void *data, uint16_t len);
Variable tuya_uart_write
int tuya_uart_write (tuya_uart_t *uart, void *data, uint16_t len);
Variable tuya_uart_control
int tuya_uart_control (tuya_uart_t *uart, uint8_t cmd, void *arg);
Variable tuya_uart_deinit
int tuya_uart_deinit (tuya_uart_t *uart);
Consts
Types
Typedefs
Typedef tuya_uart_port_t;
typedef enum {
TUYA_UART0 = 0,
TUYA_UART1,
TUYA_UART2,
TUYA_UART3,
} tuya_uart_port_t;
Typedef tuya_uart_baudrate_t;
typedef enum {
TUYA_UART_BAUDRATE_300 = 300,
TUYA_UART_BAUDRATE_600 = 600,
TUYA_UART_BAUDRATE_1200 = 1200,
TUYA_UART_BAUDRATE_2400 = 2400,
TUYA_UART_BAUDRATE_4800 = 4800,
TUYA_UART_BAUDRATE_9600 = 9600,
TUYA_UART_BAUDRATE_19200 = 19200,
TUYA_UART_BAUDRATE_38400 = 38400,
TUYA_UART_BAUDRATE_57600 = 57600,
TUYA_UART_BAUDRATE_74880 = 74880,
TUYA_UART_BAUDRATE_115200 = 115200,
TUYA_UART_BAUDRATE_230400 = 230400,
TUYA_UART_BAUDRATE_460800 = 460800,
TUYA_UART_BAUDRATE_921600 = 921600,
TUYA_UART_BAUDRATE_1500000 = 1500000,
TUYA_UART_BAUDRATE_1843200 = 1843200,
TUYA_UART_BAUDRATE_3686400 = 3686400,
} tuya_uart_baudrate_t;
Typedef tuya_uart_databits_t;
typedef enum {
TUYA_UART_DATA_BIT5 = 5,
TUYA_UART_DATA_BIT6 = 6,
TUYA_UART_DATA_BIT7 = 7,
TUYA_UART_DATA_BIT8 = 8,
} tuya_uart_databits_t;
Typedef tuya_uart_stopbits_t;
typedef enum {
TUYA_UART_STOP_BIT1 = 1,
TUYA_UART_STOP_BIT1_5 = 2,
TUYA_UART_STOP_BIT2 = 3,
} tuya_uart_stopbits_t;
Typedef tuya_uart_parity_t;
typedef enum {
TUYA_UART_PARITY_NONE = 0,
TUYA_UART_PARITY_ODD = 1,
TUYA_UART_PARITY_EVEN = 2,
} tuya_uart_parity_t;
Typedef tuya_uart_event_t;
typedef enum {
TUYA_UART_INT_TX_EVENT = 1,
TUYA_UART_INT_RX_EVENT = 2,
} tuya_uart_event_t;
Typedef tuya_uart_flowctrl_t;
typedef enum {
TUYA_UART_FLOWCTRL_NONE = 0,
TUYA_UART_FLOWCTRL_ENABLE = 1,
} tuya_uart_flowctrl_t;
Typedef tuya_uart_cfg_t;
typedef struct {
uint16_t flag;
uint16_t bufsz;
tuya_uart_baudrate_t baudrate;
tuya_uart_databits_t databits;
tuya_uart_stopbits_t stopbits;
tuya_uart_parity_t parity;
tuya_uart_flowctrl_t flowctrl;
} tuya_uart_cfg_t;
Typedef tuya_uart_cmd_t;
typedef enum {
TUYA_UART_RXBUF_SIZE_CMD = TUYA_DRV_CUSTOM_CMD,
TUYA_UART_FLUSH_CMD,
TUYA_UART_RECONFIG_CMD,
} tuya_uart_cmd_t;
Typedef tuya_uart_t
typedef struct tuya_uart tuya_uart_t;
Typedef tuya_uart_isr_cb
typedef void (*tuya_uart_isr_cb)(tuya_uart_t *uart, uint32_t event);
Typedef tuya_uart_cb_t;
typedef struct {
int (*tx_finish) (tuya_uart_t *uart, void *buffer);
int (*rx_notify) (tuya_uart_t *uart, uint16_t size);
} tuya_uart_cb_t;
Typedef tuya_uart_ops_t;
typedef struct {
int (*init) (tuya_uart_t *uart, tuya_uart_cfg_t *cfg);
int (*read_byte) (tuya_uart_t *uart, uint8_t *byte);
int (*write_byte) (tuya_uart_t *uart, uint8_t byte);
int (*control) (tuya_uart_t *uart, uint8_t cmd, void *arg);
int (*deinit) (tuya_uart_t *uart);
} tuya_uart_ops_t;