九鼎创展论坛中文版English
登录 | 立即注册 设为首页收藏本站 切换到宽版
查看: 5555|回复: 3
打印 上一主题 下一主题

关于在Android Studio下通过程序控制GPIO的问题

[复制链接]
跳转到指定楼层
楼主
发表于 2017-1-6 18:42:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
x项目中需要通过Android SDK应用程序控制GPIO。
经过前几天的尝试,在终端下已经可以通过以下命令控制GPIO了:
echo 89 > /sys/class/gpio/export (导出GPIOC25引脚)
echo out > /sys/class/gpio/gpio89/direction (GPIOC25脚设置为输出)
echo 1 > /sys/class/gpio/gpio89/value (GPIOC25脚置高)

经过测试,都是正常的。

但是通过Android SDK程序来控制:
process = Runtime.getRuntime().exec("su");
process.waitFor();
dos = new DataOutputStream(process.getOutputStream());
dos.writeBytes("echo 89 > /sys/class/gpio/export");
确总是抛异常。开始是提示无法获得超级权限,这一步已通过chmod 06755 /system/xbin/su解决。而后运行到dos.writeBytes()时又出现java.io.IOException: write failed: EPIPE (Broken pipe)错误。不知是否you人遇到过此问题。

回复

使用道具 举报

沙发
发表于 2017-2-18 10:22:19 | 只看该作者
你在 /sys/class/gpio这个目录下su之后再运行你那个程序试下
回复 支持 反对

使用道具 举报

板凳
发表于 2017-2-18 12:10:34 | 只看该作者
EPIPE 这个的产生还是是权限问题,dos.writeBytes("echo 89 > /sys/class/gpio/export");,再次su下,在调用export
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳市九鼎创展科技官方论坛 ( 粤ICP备11028681号-2  

GMT+8, 2024-4-26 23:50 , Processed in 0.019138 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表