本文介绍GPIO-通用I/O支持函数的参数说明及示例。
硬件平台
产品型号 | 是否支持 | 硬件类型 | 固件版本号 |
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)
打开GPIO接口,创建GPIO实例。
入参
Object类型,属性如下:
属性 | 类型 | 是否必填 | 描述 |
id | String | 是 | 在 |
port | String | 否 | GPIO端口号,范围0~255。 |
dir | String | 否 | GPIO方向:
|
pull | String | 否 | GPIO上下拉配置:
|
intMode | String | 否 | GPIO中断触发方式:
|
返回
GPIO实例。
writeValue(Number level)
设置GPIO电平值,GPIO引脚为输出模式时可用。
入参
属性 | 类型 | 是否必填 | 描述 |
level | Number | 是 | 电平值为1(高电平) 或者 0(低电平)。 |
返回
无。
toggle()
切换GPIO的电平,当前GPIO电平为低电平时,设置为高电平;当前GPIO电平为高电平时,设置为低电平。
入参
无。
返回
无。
onIRQ(Function cb)
开启引脚中断触发,引脚为输入模式时可用。
入参
属性 | 类型 | 是否必填 | 描述 |
cb | Function | 否 | 引脚中断触发回调函数。 |
返回
无。
readValue()
读取GPIO电平值,输入模式和输出模式时均可用。
入参
无。
返回
Number类型。电平值为1(高电平) 或者 0(低电平)。
close()
关闭GPIO实例。
入参
无。
返回
无。
示例代码
板级配置
板级详细配置说明,请参见app.json-全局配置文件。
{
"version": "1.0.0",
"io": {
"D2": {
"type": "GPIO",
"port": 18,
"dir": "output",
"pull": "pullup"
},
"D4": {
"type": "GPIO",
"port": 16,
"dir": "irq",
"pull": "pullup",
"intMode": "both"
},
"D13": {
"type": "GPIO",
"port": 33,
"dir": "output",
"pull": "pullup"
}
},
"debugLevel": "DEBUG",
"repl": "disable"
}
应用脚本
import * as gpio from "gpio";
var d2 = gpio.open({
id: "D2",
});
var key = gpio.open({
id: "D4",
});
var led = gpio.open({
id: "D13",
});
var num = 0;
var val;
setInterval(function () {
num = !num;
d2.writeValue(num);
val = d2.readValue();
console.log("gpio: D2 get value " + val);
}, 1000);
//key trigger callback
key.onIRQ({
cb: function () {
console.log("gpio: key level has changed\n");
},
});
var valLed;
setInterval(function () {
led.toggle();
valLed = led.readValue();
console.log("gpio: led get value " + valLed);
}, 1000);