uniapp安卓GPIO电平控制
模块简介
本模块为 UniApp 提供了对 Android 系统下 GPIO 的访问能力,支持导出、设置方向、读写电平值等操作。适用于 Android 架构设备(如 RK3288 平台)。
支持功能
功能 | 方法名 | 说明 |
---|---|---|
初始化 GPIO 方向 | initGpio({gpio, direction}) | 设置 GPIO 输入/输出模式 |
设置 GPIO 电平 | setGpioValue({gpio, value}) | 设置高/低电平(仅限输出模式) |
读取 GPIO 电平 | readGpioValue({gpio}) | 获取当前引脚电平值 |
引脚说明(/sys/class/gpio
接口)
- 所有 GPIO 需先通过 initGpio 初始化方向后才可使用
- 输出模式下才可以调用 setGpioValue
- 输入模式下才可以调用 readGpioValue
使用示例
1. 加载插件
const gpioModule = uni.requireNativePlugin('zy-GpioModule');
2. 初始化 GPIO 方向
方法:initGpio(options, callback)
参数:
{"gpio": 17,"direction": "out"
}
示例代码:
gpioModule.initGpio({gpio: 17,direction: 'out'
}, (res) => {console.log(res);
});
返回结构:
{"code": 1,"msg": "GPIO 初始化成功","data": {"gpio": 17,"direction": "out"}
}
3. 设置 GPIO 电平
方法:setGpioValue(options, callback)
参数:
{"gpio": 17,"value": 1
}
示例代码:
gpioModule.setGpioValue({gpio: 17,value: 1
}, (res) => {console.log(res);
});
返回结构:
{"code": 1,"msg": "GPIO 设置成功","data": {"gpio": 17,"value": 1}
}
❗ 注意:如果未将 GPIO 设置为输出模式,将返回错误信息:
GPIO 设置失败:请先将 GPIO 17 设置为输出模式
4. 读取 GPIO 电平
方法:readGpioValue(options, callback)
参数:
{"gpio": 17
}
示例代码:
gpioModule.readGpioValue({gpio: 17
}, (res) => {console.log(res);
});
返回结构:
{"code": 1,"msg": "GPIO 读取成功","data": {"gpio": 17,"value": "1"}
}
返回统一结构说明
所有方法均返回以下格式的 JSON 对象:
{"code": 1,"msg": "描述信息","data": { ... }
}
错误处理建议
在 JS 中应根据 code
字段判断执行结果,并提示用户或记录日志:
if (res.code === 1) {uni.showToast({ title: res.msg });
} else {uni.showToast({ title: res.msg, icon: 'none' });console.error(res);
}
开发注意事项
项目 | 说明 |
---|---|
权限要求 | 必须具备 root 权限才能操作 /sys/class/gpio 文件系统 |
架构兼容性 | armeabi-v7a |
总结
功能 | 是否需要 root | 是否必须初始化方向 |
---|---|---|
initGpio | ✅ 是 | — |
setGpioValue | ✅ 是 | ✅ 是 |
readGpioValue | ✅ 是 | ✅ 是 |