Class xwds.i2cm

XWLUA模块:I2C主机模式控制器

CAPI

CAPI

Functions

xwds.i2cm.msg (num) 创建XWLUA I2C主机消息

MetaMethods

xwds.i2cm:metatable.__tostring () 元方法:__tostring

Methods

xwds.i2cm:xfer (msg, to) 传输I2C消息


Functions

Methods
xwds.i2cm.msg (num)
创建XWLUA I2C主机消息

Parameters:

  • num number (in) 消息的数量

Returns:

    userdata XWLUA I2C主机消息

MetaMethods

xwds.i2cm:metatable.__tostring ()
元方法:__tostring

将I2C主机模式控制器对象格式化成字符串,可用于终端打印调试。

Methods

xwds.i2cm:xfer (msg, to)
传输I2C消息

Parameters:

  • msg userdata (in) XWLUA I2C主机消息,由 xwds.i2cm.msg() 创建
  • to number (in , optional) 期望的阻塞等待时间

Returns:

    number 错误码
     ● 0 没有错误
     ● -EINTR 等待被中断
     ● -ENOTTHDCTX 不在线程上下文中
     ● -ETIMEDOUT 超时,仅当存在可选参数 to 时才会出现此错误值

Usage:

  • -- 向EEPROM的0地址写入4字节数据
    txd = string.pack(">HBBBB", 0x0000, 88, 87, 79, 83) -- 打包写数据{地址0, 88, 87, 79, 83}
    msg = xwds.i2cm.msg(1) -- 创建1个I2C消息
    msg:addr(0, 0x50, false) -- 设置msg[0]的外设地址为0x50,7位地址模式
    msg:start(0, true) -- 设置msg[0]的START标志
    msg:read(0, false) -- 清除msg[0]的READ标志
    msg:stop(0, true) -- 设置msg[0]的STOP标志
    msg:data(0, txd) -- 设置msg[0]的data
    -- 写入数据,最多等待2s
    rc = i2cm1:xfer(msg, xwtm.ft(xwtm.s(2)))
  • -- 从EEPROM的0地址读出16字节数据,
    txd = string.pack(">H", 0x0000) -- 打包写数据{地址0x0000}
    msg = xwds.i2cm.msg(2) -- 创建2个I2C消息
    msg:addr(0, 0x50, false) -- 设置msg[0]的外设地址为0x50,7位地址模式
    msg:start(0, true) -- 设置msg[0]的START标志
    msg:read(0, false) -- 清除msg[0]的READ标志
    msg:stop(0, false) -- 清除msg[0]的STOP标志
    msg:data(0, txd) -- 设置msg[0]的data
    msg:addr(1, 0x50, false) -- 设置msg[1]的外设地址为0x50,7位地址模式
    msg:start(1, true) -- 设置msg[1]的START标志
    msg:read(1, true) -- 设置msg[1]的READ标志
    msg:stop(1, true) -- 设置msg[1]的STOP标志
    rxd = msg:buffer(1, 4) -- 给msg[1]申请4字节读buffer
    -- 读取数据,最多等待2s
    rc = i2cm1:xfer(msg, xwtm.ft(xwtm.s(2)))
    print(rc)
    print(rxd)
generated by LDoc 1.5.0 Last updated 2026-02-16 14:09:59