I2C总线-i2c

描述

I2C总线,父对象为device.io,无子对象


事件

  • detect: 开机检测到I2C总线上的设备时触发,事件方法定义onDetect(addr),参数addr为设备的地址
  • poll :当轮询时间到时触发,事件方法定义onPoll(), 无参数

属性

名称 功能说明 脚本例子
poll 使能轮询 device.io.i2c.poll=true 使能轮询
pollInterval 轮询间隔(单位:毫秒) device.io.i2c.pollInterval=500 设置轮询间隔为500毫秒

方法

名称 功能 脚本例子
isSupported() 检查硬件是否支持I2C总线 var supported = device.io.i2c.isSupported();
read(addr, reg, count) 从i2c总线设备地址addr寄存器地址reg上读取count个字节(如果设备没有寄存器地址,则reg传-1), 如果寄存器地址是多字节(如16位),参数reg传数组(如 [0x11, 0x22])注意:read返回值是个字节数组 var data = device.io.i2c.read(0x50, 0x11, 2); //从i2c总线地址0x50的设备上对寄存器地址0x11读取2个字节(寄存器地址为8位)
var data = device.io.i2c.read(0x50, [0x11,0x22], 2);//从i2c总线地址0x50的设备上对寄存器地址0x1122读取2个字节(寄存器地址为16位)
var data = device.io.i2c.read(0x68, -1, 3); //从i2c总线地址0x68上读取3个字节(无寄存器地址)
write(addr, data) 写数据到地址为addr的i2c总线设备,data为字节数组(如果设备有寄存器地址为8位,那么数组data的第1个字节即为寄存器地址,如果为16位,则data的前两个字节为寄存器地址) device.io.i2c.write(0x20, [0x10, 0x25]); // 向i2c总线地址为0x20的设备写入2个字节0x10, 0x25(无寄存器地址)
var value = [0x55, 0x66, 0x77]; device.io.i2c.write(0x20, value); // 向i2c总线地址为0x20的设备写入3个字节, 如果寄存器地址为8位,则写入的有效数据为0x66, 0x77;如果寄存器地址为16位,则写入的有效数据为0x77

results matching ""

    No results matching ""