GPIO - Shaofa/AliOS-Things-Certification-Manual GitHub Wiki
API
|
说明
|
GPIO.open(id)
|
功能:打开gpio
参数: id:和板级配置文件中的id保持一致
返回值:返回资源handle
|
GPIO.close(handle)
|
功能:关闭gpio
参数: handle:资源handle,为GPIO.open的返回值;
返回值:0=ok other=fail
|
GPIO.write(handle,level)
|
功能:设置gpio输出电压
参数: handle:资源handle,为GPIO.open的返回值;
level:电平值,0或1
返回值:0=ok other=fail
|
GPIO.read(handle)
|
功能:获取gpio输入电压
参数: handle:资源handle,为GPIO.open的返回值;
返回值:引脚电平值
|
GPIO.on(handle,edge,cb)
|
功能:gpio中断监听
参数: handle:资源handle,为GPIO.open的返回值;
edge:中断触发类型,"rising"上升沿触发,"falling"下降沿触发,"both"双边沿触发;
cb:服务function;
返回值:0=ok other=fail
|
参数名
|
类型/功能/值
|
说明
|
"id"
|
功能:资源唯一性标志
类型:string
值:任意,保持数组内id值唯一;
|
该id值和js层GPIO.open时的id值保持一致;
|
"port"
|
功能:端口值;
类型:number
值:和板级资源描述保持一致;
|
该port值和HAL层API对应的port保持一致;
|
"dir"
|
功能:配置gpio的输入或输出;
类型:number
值:0="output" 1="input" 2="irq" 3="analog";
|
配置gpio中断触发功能,有些场景使用"imput",有些场景使用"irq",需要根据实际的场景设定。
|
"pull"
|
功能:配置gpio的上拉下拉开漏;
类型:number
值:0="pulldown" 1="pullup" 2="open";
|
{
"GPIO":[
{
"id":"beep",
"port":22,
"dir":0,
"pull":1
},
{
"id":"key",
"port":23,
"dir":2,
"pull":1
}
]
}
无
/*apps/js/board_config.json*/
{
"GPIO":[
{
"id":"gled",
"port":60,
"dir":0,
"pull":1
}
]
}
print('start gled test.....................');
var gled_level = 0;
var gled_handle = GPIO.open('gled');
setInterval(function() {
GPIO.write(gled_level,1-gled_level);
gled_level = 1-gled_level;
}, 5000);
print('end gled test........................');
gled 间隔5s进行闪烁。
1)ESP32开发板; 2)按键模块;
EPS32 IO23引脚 连接 按键模块的OUT引脚; EPS32 GND引脚 连接 按键模块的GND引脚; EPS32 3.3V引脚 连接 按键模块的VCC引脚;
/*apps/js/board_config.json*/
{
"GPIO":[
{
"id":"key",
"port":23,
"dir":2,
"pull":1
}
]
}
print('start key test.....................');
var key_handle = GPIO.open('key');
GPIO.on(key_handle,'both',function(value){
print('key_value:'+value);
});
print('end key test........................');
按下按键,终端会打印对应的状态
1)ESP32开发板; 2)DHT11模块;
EPS32 IO19引脚 连接 DHT11模块的OUT引脚; EPS32 GND引脚 连接 DHT11模块的GND引脚; EPS32 3.3V引脚 连接 按键模块的VCC引脚;
/*apps/js/board_config.json*/
{
"GPIO":[
{
"id":"dht11",
"port":19,
"dir":3,
"pull":1
}
]
}
/*samples/js/dht11.js*/
var dht11_handle = GPIO.open('dht11');
setInterval(function() {
var dht11_buff = HW.getDht11(dht11_handle);
console.log('dht11->hum:'+dht11_buff[0]+ ' temp:'+dht11_buff[1]);
}, 5000);
系统每间隔5s打印温湿度值。
�