这篇文档介绍如何在Android和Ubuntu下访问GPIO。
GPIO编号(部分)
1 | PIN GPIO Number |
注意有些GPIO默认复用为其他功能,如:I2C。如果配置为GPIO功能则需要修改DTS。
如何获取GPIO编号
可以使用下面的公式计算GPIO编号:
1 | n = (block_number * 32) + (sub_block_number * 8) + index |
- block_number: 块索引
- sub_block_number: 索引编号对应的值,最小为1
- index: 管脚号
例如: PIN15(GPIO1_C2)
1 | GPIO1_C2 -> (1 * 32) + (2 * 8) + 2 = 50 |
如何通过命令行访问GPIO
申请gpio(GPIO1_C2)
1 | $ echo 50 > /sys/class/gpio/export |
配置gpio(GPIO1_C2)为输出
1 | $ echo out > /sys/class/gpio/gpio50/direction |
设置gpio(GPIO1_C2)输出高电平
1 | $ echo 1 > /sys/class/gpio/gpio50/value |
配置gpio(GPIO1_C2)输出低电平
1 | $ echo 0 > /sys/class/gpio/gpio50/value |
配置gpio(GPIO1_C2)为输入
1 | $ echo in > /sys/class/gpio/gpio50/direction |
获取gpio(GPIO1_C2)电平
1 | $ cat /sys/class/gpio/gpio50/value |
释放gpio(GPIO1_C2)
1 | $ echo 50 > /sys/class/gpio/unexport |