XWOS API  4.0
XWOS C/C++ API参考手册
载入中...
搜索中...
未找到
TCA9539 的协作图:

结构体

struct  xwds_tca9539_cfg
 TCA9539配置 更多...
 
struct  xwds_tca9539_pincfg
 TCA9539 PIN配置 更多...
 
struct  xwds_tca9539
 TCA9539对象 更多...
 

宏定义

#define XWDS_TCA9539_REG_P0_INPUT   ((xwu8_t)0)
 
#define XWDS_TCA9539_REG_P1_INPUT   ((xwu8_t)1)
 
#define XWDS_TCA9539_REG_P0_OUTPUT   ((xwu8_t)2)
 
#define XWDS_TCA9539_REG_P1_OUTPUT   ((xwu8_t)3)
 
#define XWDS_TCA9539_REG_P0_POLINV   ((xwu8_t)4)
 
#define XWDS_TCA9539_REG_P1_POLINV   ((xwu8_t)5)
 
#define XWDS_TCA9539_REG_P0_CFG   ((xwu8_t)6)
 
#define XWDS_TCA9539_REG_P1_CFG   ((xwu8_t)7)
 

枚举

enum  xwds_tca9539_pin_direction_em { XWDS_TCA9539_PIN_DIRECTION_OUT = 0U , XWDS_TCA9539_PIN_DIRECTION_IN }
 TCA9539 Pin方向枚举 更多...
 

函数

void xwds_tca9539_construct (struct xwds_tca9539 *tca9539)
 TCA9539 API:TCA9539对象的构造函数
 
void xwds_tca9539_destruct (struct xwds_tca9539 *tca9539)
 TCA9539 API:TCA9539对象的析构函数
 
static xwer_t xwds_tca9539_grab (struct xwds_tca9539 *tca9539)
 TCA9539 API:增加对象的引用计数
 
static xwer_t xwds_tca9539_put (struct xwds_tca9539 *tca9539)
 TCA9539 API:减少对象的引用计数
 
xwer_t xwds_tca9539_drv_start (struct xwds_device *dev)
 TCA9539基本驱动:启动设备
 

详细描述

宏定义说明

◆ XWDS_TCA9539_REG_P0_CFG

#define XWDS_TCA9539_REG_P0_CFG   ((xwu8_t)6)

在文件 device.h40 行定义.

◆ XWDS_TCA9539_REG_P0_INPUT

#define XWDS_TCA9539_REG_P0_INPUT   ((xwu8_t)0)

在文件 device.h34 行定义.

◆ XWDS_TCA9539_REG_P0_OUTPUT

#define XWDS_TCA9539_REG_P0_OUTPUT   ((xwu8_t)2)

在文件 device.h36 行定义.

◆ XWDS_TCA9539_REG_P0_POLINV

#define XWDS_TCA9539_REG_P0_POLINV   ((xwu8_t)4)

在文件 device.h38 行定义.

◆ XWDS_TCA9539_REG_P1_CFG

#define XWDS_TCA9539_REG_P1_CFG   ((xwu8_t)7)

在文件 device.h41 行定义.

◆ XWDS_TCA9539_REG_P1_INPUT

#define XWDS_TCA9539_REG_P1_INPUT   ((xwu8_t)1)

在文件 device.h35 行定义.

◆ XWDS_TCA9539_REG_P1_OUTPUT

#define XWDS_TCA9539_REG_P1_OUTPUT   ((xwu8_t)3)

在文件 device.h37 行定义.

◆ XWDS_TCA9539_REG_P1_POLINV

#define XWDS_TCA9539_REG_P1_POLINV   ((xwu8_t)5)

在文件 device.h39 行定义.

枚举类型说明

◆ xwds_tca9539_pin_direction_em

TCA9539 Pin方向枚举

枚举值
XWDS_TCA9539_PIN_DIRECTION_OUT 

输出

XWDS_TCA9539_PIN_DIRECTION_IN 

输入

在文件 device.h46 行定义.

46 {
49};
@ XWDS_TCA9539_PIN_DIRECTION_OUT
Definition device.h:47
@ XWDS_TCA9539_PIN_DIRECTION_IN
Definition device.h:48

函数说明

◆ xwds_tca9539_construct()

void xwds_tca9539_construct ( struct xwds_tca9539 tca9539)

TCA9539 API:TCA9539对象的构造函数

参数
[in]tca9539TCA9539对象指针

在文件 device.c26 行定义.

27{
29}
void xwds_i2cp_construct(struct xwds_i2cp *i2cp)
XWDS API:I2C外设的构造函数
Definition peripheral.c:57
struct xwds_i2cp i2cp
Definition chip.h:99
union xwds_iochip::@19 bc
struct xwds_iochip iochip
Definition device.h:128
函数调用图:

◆ xwds_tca9539_destruct()

void xwds_tca9539_destruct ( struct xwds_tca9539 tca9539)

TCA9539 API:TCA9539对象的析构函数

参数
[in]tca9539TCA9539对象指针

在文件 device.c32 行定义.

33{
35}
void xwds_i2cp_destruct(struct xwds_i2cp *i2cp)
XWDS API:I2C外设的构造函数
Definition peripheral.c:64
函数调用图:

◆ xwds_tca9539_drv_start()

xwer_t xwds_tca9539_drv_start ( struct xwds_device dev)

TCA9539基本驱动:启动设备

<No error

在文件 driver.c83 行定义.

84{
85 struct xwds_tca9539 * tca9539;
86 const struct xwds_resource_gpio * gpiorsc;
87 xwer_t rc;
88
89 tca9539 = xwds_cast(struct xwds_tca9539 *, dev);
90 gpiorsc = tca9539->gpiorsc.rst;
91 if (NULL != gpiorsc) {
92 rc = xwds_gpio_req(gpiorsc->soc, gpiorsc->port, gpiorsc->pinmask);
93 if (rc < 0) {
94 goto err_gpio_req_rst;
95 }
96 xwds_tca9539_reset(tca9539, true);
97 }
98 gpiorsc = tca9539->gpiorsc.irq;
99 if (NULL != gpiorsc) {
100 rc = xwds_gpio_req(gpiorsc->soc, gpiorsc->port, gpiorsc->pinmask);
101 if (rc < 0) {
102 goto err_gpio_req_irq;
103 }
104 }
105 return XWOK;
106
107err_gpio_req_irq:
108 gpiorsc = tca9539->gpiorsc.rst;
109 if (NULL != gpiorsc) {
110 xwds_gpio_rls(gpiorsc->soc, gpiorsc->port, gpiorsc->pinmask);
111 }
112err_gpio_req_rst:
113 return rc;
114}
#define xwds_cast(type, dev)
Definition standard.h:40
#define XWOK
No error
Definition errno.h:182
signed long xwer_t
Definition type.h:554
#define NULL
Definition type.h:28
void xwds_tca9539_reset(struct xwds_tca9539 *tca9539, bool active)
TCA9539 API:复位TCA9539
Definition driver.c:461
xwer_t xwds_gpio_rls(struct xwds_soc *soc, xwid_t port, xwsq_t pinmask)
XWDS API:释放SOC的GPIO
Definition gpio.c:63
xwer_t xwds_gpio_req(struct xwds_soc *soc, xwid_t port, xwsq_t pinmask)
XWDS API:申请SOC的GPIO
Definition gpio.c:27
设备栈GPIO资源
Definition standard.h:98
struct xwds_soc * soc
Definition standard.h:99
TCA9539对象
Definition device.h:127
const struct xwds_resource_gpio * irq
Definition device.h:131
const struct xwds_resource_gpio * rst
Definition device.h:130
struct xwds_tca9539::@39 gpiorsc
函数调用图:
这是这个函数的调用关系图:

◆ xwds_tca9539_grab()

static xwer_t xwds_tca9539_grab ( struct xwds_tca9539 tca9539)
inlinestatic

TCA9539 API:增加对象的引用计数

参数
[in]tca9539I2C TCA9539对象指针
返回
错误码
返回值

ref xwds_i2cp_grab()

在文件 device.h155 行定义.

156{
157 return xwds_i2cp_grab(&tca9539->iochip.bc.i2cp);
158}
xwer_t xwds_i2cp_grab(struct xwds_i2cp *i2cp)
XWDS API:增加对象的引用计数
Definition peripheral.c:70
函数调用图:

◆ xwds_tca9539_put()

static xwer_t xwds_tca9539_put ( struct xwds_tca9539 tca9539)
inlinestatic

TCA9539 API:减少对象的引用计数

参数
[in]tca9539I2C TCA9539对象指针
返回
错误码
返回值

ref xwds_i2cp_put()

在文件 device.h167 行定义.

168{
169 return xwds_i2cp_put(&tca9539->iochip.bc.i2cp);
170}
xwer_t xwds_i2cp_put(struct xwds_i2cp *i2cp)
XWDS API:减少对象的引用计数
Definition peripheral.c:76
函数调用图: