全部产品

i2c - 串行总线

更新时间:2020-11-11 23:07

示例代码

板级配置

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

{
  "version": "1.0.0",
  "io": {
    "I2C0": {
      "type": "I2C",
      "port": 0,
      "addrWidth": 7,
      "freq": 400000,
      "mode": "master",
      "devAddr": 72
    }
  },
  "debugLevel": "DEBUG"
}
业务脚本
var i2c = require('i2c');

var lm75 = i2c.open({
  id: 'I2C0'
});

function lm75tmpGet()
{
 var temp;
 var sig = 1;
 var regval = lm75.readMem(0x00, 2);
 console.log('read regval is ' + regval);
 var tempAll = (regval[0] << 8) + regval[1];
 console.log('tempAll is ' + tempAll);

 if (regval[0] & 0x80 != 0) {
  tempAll = ~(tempAll) + 1;
  sig = -1;
 }

 tempAll = tempAll >> 5;
 console.log('tempAll final data ' + tempAll);
 temp = tempAll * 0.125 * sig;

 return temp;
}

setInterval(function(){
 temp = lm75tmpGet();
 console.log('lm75 data is ' + temp);
},1000);

open(Object options)

打开I2C,创建 I2C 实例。

入参

属性

类型

必填

描述

id

String

指定要打开的I2C端口。

返回

I2C 实例

I2C.write(String|ArrayBuffer data)

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

入参

属性

类型

必填

描述

data

String或ArrayBuffer

要发送的数据

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

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

入参

属性

类型

必填

描述

memaddr

Number

寄存器地址memaddr

data

String或ArrayBuffer

要发送的数据

I2C.read(Number bytes)

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

入参

属性

类型

必填

描述

bytes

Number

需要读取的字节个数

返回值

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

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

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

入参

属性

类型

必填

描述

memaddr

Number

寄存器地址memaddr

bytes

Number

需要读取的字节个数

返回值

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

I2C.close()

关闭I2C实例。