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 ✅ 是 ✅ 是

你可能感兴趣的:(uni-app,android)