你好,我想问下安卓的gpio管脚号的计算方式,比如要访问GPIOH5(PIN37),可以用echo 176 > export操控GPIOH5,这个176是怎么计算得到的呢?如果我要操控其他的gpio管脚,如gpioH4,我如何得到类似的管脚号呢?
你可以通过adb读取节点获取GPIO对应Num值,请参考如下:
# cat /sys/kernel/debug/pinctrl/c1109880.pinmux/gpio-ranges
GPIO ranges handled:
0: banks GPIOS [155 - 255] PINS [10 - 110]
0: ao-bank GPIOS [145 - 154] PINS [0 - 9]
Notice: ao-bank means GPIOAO_X gpios
# cat /sys/kernel/debug/pinctrl/c1109880.pinmux/pins
...
pin 5 (GPIOAO_5)
pin 6 (GPIOAO_6)
...
pin 28 (GPIOH_2)
pin 29 (GPIOH_3)
pin 30 (GPIOH_4)
pin 31 (GPIOH_5)
pin 32 (GPIOH_6)
pin 33 (GPIOH_7)
pin 34 (GPIOH_8)
pin 35 (GPIOH_9)
...
Num(GPIOH_5) = bank + pin = 155 - 10 + 31= 176
Num(GPIOH_4) = bank + pin = 155 - 10 + 30= 175
Num(GPIOAO_6) = bank + pin = 145 - 0 + 6 = 151
你好,我用的是安卓VIM1_Nougat_zhCN_V180622版本,我用命令echo 175(或177、178、179、180) >export时,发现无法添加gpio175等,这个怎么解决呢?
管脚GPIOH_4(175)是一个多功能脚,默认是SPDIF功能,如果你是一个开发者,可以修改代码屏蔽掉SPDIF功能,重新烧录你自己的固件。关于如何编译,请参考我们的docs文档. 如果不是, 建议直接用GPIOAO_6 /GPIOH_5这两个管脚做为GPIO管脚使用