本文介绍I2C-串行总线支持函数的参数说明及示例。
硬件平台
产品型号 | 是否支持 | 硬件类型 | 固件版本号 |
HaaS600Kit | 是 | 开发板 | 4.0.1 |
HaaS510 | 否 | DTU | 4.0.1 |
HaaS520 | 否 | DTU | 4.0.1 |
HaaS530 | 否 | DTU | 4.0.1 |
HaaS531 | 否 | DTU | 4.0.1 |
HaaS632-LT32V | 是 | 模组 | 4.0.1 |
HaaS600-EC600S | 是 | 模组 | 4.0.1 |
HaaS600-EC600N | 是 | 模组 | 4.0.1 |
HaaS600-EC600U | 否 | 模组 | 4.0.1 |
HaaS600-N715 | 是 | 模组 | 4.0.1 |
open(Object options)
打开I2C,创建I2C实例。
入参
属性 | 类型 | 是否必填 | 描述 |
id | String | 是 | 指定要打开的I2C端口。 |
devAddr | Number | 是 | 挂载的I2C设备从机地址。 |
success | Function | 否 | 创建I2C实例成功时的回调函数。 |
fail | Function | 否 | 创建I2C实例失败时的回调函数。 |
返回
I2C实例。
write(Uint8Array data)
发送数据,该函数为阻塞函数,I2C发送完成后才会返回。
入参
属性 | 类型 | 是否必填 | 描述 |
data | Uint8Array | 是 | 要发送的数据, |
返回
写成功返回值为0。
writeMem(Number memaddr, Uint8Array data)
向寄存器地址memaddr
发送数据,该函数为阻塞函数,I2C发送完成后才会返回。
入参
属性 | 类型 | 是否必填 | 描述 |
memaddr | Number | 是 | 寄存器地址 |
data | Uint8Array | 是 | 要发送的数据。 |
返回
写成功返回值为0。
read(Number bytes)
主动读取指定bytes
的I2C数据,无需配置寄存器地址,该函数为阻塞函数。
入参
属性 | 类型 | 是否必填 | 描述 |
bytes | Number | 是 | 需要读取的字节个数。 |
返回
读取到的I2C数据,Uint8Array
类型。
readMem(Number memaddr, Number bytes)
主动向寄存器地址memaddr
读取指定bytes
的I2C数据。该函数为阻塞函数。
入参
属性 | 类型 | 是否必填 | 描述 |
memaddr | Number | 是 | 寄存器地址 |
bytes | Number | 是 | 需要读取的字节个数。 |
返回
读取到的I2C数据,Uint8Array
类型。
close()
关闭I2C实例。
入参
无。
返回
无。
示例代码
板级配置
板级详细配置说明,请参见app.json-全局配置文件。
硬件平台
产品型号 是否支持 硬件类型 固件版本号
HaaS600Kit 是 开发板 4.0.1
HaaS510 否 DTU 4.0.1
HaaS520 否 DTU 4.0.1
HaaS530 否 DTU 4.0.1
HaaS531 否 DTU 4.0.1
HaaS632-LT32V 是 模组 4.0.1
HaaS600-EC600S 是 模组 4.0.1
HaaS600-EC600N 是 模组 4.0.1
HaaS600-EC600U 否 模组 4.0.1
HaaS600-N715 是 模组 4.0.1
API使用说明
open(Object options)
打开I2C,创建 I2C 实例。
入参
属性 类型 必填 描述
id String 是 指定要打开的I2C端口。
devAddr Number 是 挂载的I2C设备从机地址
success Function 否 创建 I2C 实例成功时的回调函数
fail Function 否 创建 I2C 实例失败时的回调函数
返回
● I2C 实例。
write(Uint8Array data)
发送数据,该函数为阻塞函数,I2C发送完成后才会返回。
入参
属性 类型 必填 描述
data Uint8Array 是 要发送的数据, data[0] 为寄存器地址。
返回
● 写成功返回值为0
writeMem(Number memaddr, Uint8Array data)
向寄存器地址memaddr发送数据,该函数为阻塞函数,I2C发送完成后才会返回。
入参
属性 类型 必填 描述
memaddr Number 是 寄存器地址memaddr
data Uint8Array 是 要发送的数据
返回
● 写成功返回值为0
read(Number bytes)
主动读取指定bytes的I2C数据,无需配置寄存器地址,该函数为阻塞函数。
入参
属性 类型 必填 描述
bytes Number 是 需要读取的字节个数
返回
● 读取到的I2C数据,Uint8Array类型。
readMem(Number memaddr, Number bytes)
主动向寄存器地址memaddr读取指定bytes的I2C数据。该函数为阻塞函数。
入参
属性 类型 必填 描述
memaddr Number 是 寄存器地址memaddr
bytes Number 是 需要读取的字节个数
返回
● 读取到的I2C数据,Uint8Array类型。
close()
关闭I2C实例。
入参
● 无
返回
● 无
应用脚本
import * as i2c from 'i2c';
var lm75 = i2c.open({
id: 'I2C0',
devAddr: 72,
success: function () {
console.log('lm75 sensor open success')
},
fail: function () {
console.log('lm75 sensor open failed')
}
});
var temp;
function lm75tmpGet() {
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);
var bmp280 = i2c.open({
id: 'I2C0',
devAddr: 118,
success: function () {
console.log('bmp280 sensor open success')
},
fail: function () {
console.log('bmp280 sensor open failed')
}
});
function bmp280SoftReset()
{
var regaddr = 0xe0;
var regval = [0xb6];
bmp280.writeMem(regaddr, regval);
console.log('bmp280 soft reset');
}
bmp280SoftReset();