TuyaOS
tuya_uart.h
浏览该文件的文档.
1
2#ifndef __TUYA_UART_H__
3#define __TUYA_UART_H__
4
5#ifdef __cplusplus
6 extern "C" {
7#endif
8
9#include "tal_uart.h"
10#include "tuya_uart_legacy.h"
11
12#define tuya_uart_t VOID
13#define tuya_uart_cfg_t TAL_UART_CFG_T
14
15typedef enum {
16 TUYA_UART0 = 0x00,
17 TUYA_UART1 = 0x01,
18 TUYA_UART_BAUDRATE_9600 = 9600,
19 TUYA_UART_BAUDRATE_115200 = 115200,
20 TUYA_UART_DATA_BIT8 = 0x08,
21 TUYA_UART_STOP_BIT1 = 0x01,
22 TUYA_UART_PARITY_NONE = 0,
23 TUYA_DRV_UART = 0x02,
24 TUYA_DRV_CONFIG_CMD = 0x06,
25} tuya_uart_params_model_t;
26
27#define TUYA_UART_8N1_CFG_INIT(__CFG, __BAUDRATE, __BUFSZ, __FLAG) \
28 memset((__CFG), 0, sizeof(TAL_UART_CFG_T)); \
29 (__CFG)->base_cfg.baudrate = __BAUDRATE; \
30 (__CFG)->base_cfg.databits = TUYA_UART_DATA_BIT8; \
31 (__CFG)->base_cfg.stopbits = TUYA_UART_STOP_BIT1; \
32 (__CFG)->base_cfg.parity = TUYA_UART_PARITY_NONE; \
33 (__CFG)->rx_buffer_size = __BUFSZ; \
34
35
36#define TUYA_UART_8N1_CFG(__UART, __BAUDRATE, __BUFSZ, __FLAG) \
37 TAL_UART_CFG_T cfg; \
38 memset(&cfg, 0, sizeof(TAL_UART_CFG_T)); \
39 cfg.base_cfg.baudrate = __BAUDRATE; \
40 cfg.base_cfg.databits = TUYA_UART_DATA_BIT8; \
41 cfg.base_cfg.stopbits = TUYA_UART_STOP_BIT1; \
42 cfg.base_cfg.parity = TUYA_UART_PARITY_NONE; \
43 cfg.rx_buffer_size = __BUFSZ
44
45
46#define tuya_driver_find(__type, __port) (__port + 1)
47#define tuya_uart_init(__uart) tal_uart_init(((UINT_T)__uart - 1), &cfg)
48#define tuya_uart_deinit(__uart) tal_uart_deinit(((UINT_T)__uart - 1))
49#define tuya_uart_read(__uart, __data, __len) tal_uart_read(((UINT_T)__uart - 1), (UINT8_T *)__data, (UINT_T)__len)
50#define tuya_uart_write(__uart, __data, __len) tal_uart_write(((UINT_T)__uart - 1), (UINT8_T *)__data, (UINT_T)__len)
51
52
53STATIC INLINE int tuya_uart_control (tuya_uart_t *uart, UINT8_T cmd, VOID *arg)
54{
55 int result = OPRT_COM_ERROR;
56
57 if (cmd == TUYA_DRV_CONFIG_CMD) {
58 tal_uart_deinit((TUYA_UART_NUM_E)uart - 1);
59 result = tal_uart_init((TUYA_UART_NUM_E)uart - 1, arg);
60 if (OPRT_OK != result) {
61 PR_ERR("uart cfg fail", result);
62 }
63 }
64
65 return result;
66}
67
68
69#ifdef __cplusplus
70}
71#endif
72#endif
Common process - adapter the uart api provide by OS
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