Class xwds.i2cm
XWLUA模块:I2C主机模式控制器
CAPI
MetaMethods
xwds.i2cm:metatable.__tostring (i2cm) | 元方法:__tostring |
Methods
xwds.i2cm:xfer (i2cm, addr, start, stop, rx, size, txd, time) | 接收数据 |
MetaMethods
- xwds.i2cm:metatable.__tostring (i2cm)
-
元方法:__tostring
将I2C主机模式控制器对象格式化成字符串,可用于终端打印调试。
Parameters:
- i2cm userdata (in) C代码中注册的I2C主机模式控制器控制器
Methods
- xwds.i2cm:xfer (i2cm, addr, start, stop, rx, size, txd, time)
-
接收数据
Parameters:
- i2cm userdata (in) C代码中注册的I2C主机模式控制器控制器
- addr number (in) I2C外设的地址
- start boolean (in) 是否产生 Start 条件
- stop boolean (in) 是否产生 Stop 条件
- rx boolean (in) 方向是否为 读
- size number (in) 本次传输的数据大小
- txd string (in) 待发送的数据
- time number (in , optional) 期望的阻塞等待时间
Returns:
-
number
rx
为false
时的错误码
● 0 没有错误
● -EINTR 等待被中断
● -ENOTTHDCTX 不在线程上下文中
● -ETIMEDOUT 超时,仅当存在可选参数 time 时才会出现此错误值Or
-
number
rx
为true
时的错误码
● 0 没有错误
● -EINTR 等待被中断
● -ENOTTHDCTX 不在线程上下文中
● -ETIMEDOUT 超时,仅当存在可选参数 time 时才会出现此错误值 -
string
rx
为true
时的接收数据
Usage:
-- 向EEPROM的0地址写入4字节数据,打包{地址0, 88, 87, 79, 83} txd = string.pack("BBBBB", 0, 88, 87, 79, 83) -- 写入地址和数据,最多等待2s rc = i2c2m:xfer(0xA0, true, true, false, #txd, txd, xwtm.ft(xwtm.s(2)))
-- 从EEPROM的0地址读出4字节数据,打包{地址0} txd = string.pack("B", 0) -- 写入地址,产生Start,不产生Stop rc = i2c2m:xfer(0xA0, true, false, false, #txd, txd) -- 读出数据,重新产生Start,产生Stop rc, rxd = i2c2m:xfer(0xA0, true, true, true, 4)