最近正在研究关于gpio的内容,想着先点亮小灯试试吧,结果就卡在了如果设置管脚输出电流的问题上,百度了好久相关信息,看别人的文章都是说计算一下就可以,然后也不说明白如何计算,看OrangePi的文档看了好久还是无果。最终无奈搬梯子查查,果然查到了,下面记录一下计算方法,给遇到相似问题的人省些时间。
先介绍一下我这里的基本环境:
OrangePi版本:OrangePi Zero一块
系统:Armbian 下载地址:https://www.armbian.com/orange-pi-zero/ 下载的Armbian Bionic
将系统烧录到32Gsd卡,我用的是mac操作系统,直接用读卡器将sd卡连接电脑,格式化,然后用Ether将系统烧录到sd内
然后将sd卡插入Pi内,开机启动,配置好网络后,ssh连接,下面是重点部分了。
进入到/sys/class/gpio文件夹内,会看到4个文件export、gpiochip0、gpiochip352、unexport,其中export是用来将gpio映射到系统中,unexport是取消映射。例如可以通过命令:echo 1 > export 将pin1映射到系统中。此时,当前文件夹下会多出来一个文件,文件名为gpio1。同理,echo 1 > unexport 可以取消映射,刚才的gpio1文件夹就会消失。这些操作网上有好多,就不具体解释了。
下面的图是在OrangePi网站的文档中找到的,标注了26pin的gpio部分用途。最开始,我就是图中的IO-x这些东西误导的,将小灯的IN端链接到GND(也就是接地),另一端查到了IO-1中,然后就天真的以为将gpio1的direction改为out,value改为1就可以了。结果很尴尬,就不多说了。
命令如下:cd gpio1
echo out > direction
echo 1 > value
第二条和第三条命令和 echo high > direction 是等价的,可以一步搞定。
我好像废话说多了。。。。
直接说结果把,那个IO-1实际的管脚号是7,下面说说怎么计算
看12号连线对应的PA7,这个东西才是计算管脚所需的东西,A在字母表中的序号是1,gpio号=(序号-1)* 32 + pin number,这里计算用到的就是后面的A和7。如果没看懂,我在举两个栗子(一手举一个),PB7(不管有没有这个叫法吧),他的gpio号就是39(计算方法 (2-1)*32 + 7),PC10的gpio号就是74(计算方法(3-1)*32 + 10)。
链接地址:https://linux-sunxi.org/GPIO
网友评论