全部产品
云市场
云游戏

i2c - 串行总线

更新时间:2020-07-20 16:04:52

示例代码

板级配置

板级详细配置说明见:app.json - 全局配置文件

{
  "io": {
    "i2c1":{
      "type":"I2C",
      "port":0,
      "mode":"slave",
      "addrWidth":7,
      "devAddr":27,
      "freq":400000
    }
  },
  "debugLevel": "DEBUG"
}
业务脚本
var i2c = require('i2c');

var memaddr = 0x18;
var msgbuf = [0x10, 0xee];
// sensor
var sensor = i2c.open({
  id: 'i2c1'
});

// sensor write
sensor.write(msgbuf);
var value = sensor.read(2);

console.log('sensor value is ' + value);

// sensor write to memory address
sensor.writeMem(memaddr, msgbuf);

// sensor read from memory address
var vol = sensor.readMem(memaddr, 2);
console.log('sensor read mem vol is ' + vol);

sensor.close();

open(Object options)

打开I2C,创建 I2C 实例。

入参

属性

类型

必填

描述

id

String

指定要打开的I2C端口。

返回

I2C 实例

I2C.write(String|ArrayBuffer data)

发送数据,该函数为阻塞函数,I2C发送完成后才会返回。

入参

  • ArrayBuffer类型或String类型,要发送的数据。

I2C.writeMem(ArrayBuffer memaddr, String|ArrayBuffer data)

向寄存器地址memaddr发送数据,该函数为阻塞函数,I2C发送完成后才会返回。

入参

属性

类型

必填

描述

memaddr

ArrayBuffer

寄存器地址memaddr

data

String或ArrayBuffer

要发送的数据

I2C.read(Number bytes)

主动读取指定bytes的I2C数据。该函数为阻塞函数,会一直等待读取指定bytes的数据。

入参

  • Number类型,指定需要读取的字节个数。

返回值

  • ArrayBuffer类型,读取到的I2C数据。

I2C.readMem(String|ArrayBuffer memaddr, Number bytes)

主动向寄存器地址memaddr读取指定bytes的I2C数据。该函数为阻塞函数,会一直等待读取指定bytes的数据。

入参

属性

类型

必填

描述

memaddr

String | ArrayBuffer

寄存器地址memaddr

bytes

Number

需要读取的字节个数

返回值

  • 读取到的I2C数据,ArrayBuffer类型。

I2C.close()

关闭I2C实例。