关于GPIO接口控制的方法求教

在群里和大神们聊了一些关于GPIO接口控制,但是由于基础太差,没懂,就去翻论坛,也去刷了一下百度,说的基本都差不多,并且都看不懂,所以现在来发帖请大神来点拨一二。
首先我先来描述一下我对GPIO的需求:
一个输出高低电平的接口(输出PWM波),因为我DIY的机箱,里面有风扇,现在是直接接电源,全速转,噪音有些大(对于24小时来说),我想用温度检测来检测机箱内部的温度,
然后,设定好温度阀值,达到不同的温度,来用不同的转速(pwm控速)来散热,这样,平时使用量 不大的时候,就会相对很安静。使用量大的时候噪音会大一点。并且我有一个很大的风扇,
强制抽风的风扇,加快风速,这个平时基本不用,只有很极端的情况下会用到,这样我就很急需来使用控速了。
至于pwm控速,我焊接了一个光耦隔离+三极管开关的小电路。控制引脚只需要给一个高或者低电平就行了。
我没有python基础(硬伤),一点点单片机编程的基础(流水灯级别),shell基础也不好(刚接触一个月)
所以很迷茫不知道怎么控制,

我在网上找到的 教程只有下面这些东西,说的比较笼统,不懂什么意思
查询结果如下:
那么,我们这里在香蕉派上写代码时,GPIO的序号就沿用树莓派博通的GPIO序号(注意:仅仅是Raspbain系统是如此,其他系统根据实际情况而定)。在树莓派上我们使用的是GPIO22来控制继电器的,所以这里还是用GPIO22。在此之前我们需要先进入到管理员权限模式下:[list=1]
*][email protected] ~ $ sudo su
[/list]
复制代码
首先我们要把需要的IO从内核空间暴露到用户空间,使用echo命令:[list=1]
*][email protected]:/home/bananapi# echo 22 > /sys/class/gpio/export
[/list]
复制代码
这样之后,在/sys/class/gpio目录下会自动建一个/sys/class/gpio/gpio22的目录,然后我们要跳转到这个目录里,使用cd命令:[list=1]
*][email protected]:/home/bananapi# cd /sys/class/gpio/gpio22
[/list]
复制代码
然后我们就可以用ls命令看看它下面的子目录文件,我们接下来对GPIO的各种控制命令文件都在里面:[list=1]
*][email protected]:/sys/class/gpio/gpio22# ls
[/list]
复制代码
命令行会显示出控制命令文件列表:active_low direction edge power subsystem uevent value
然后我们用echo命令操作direction文件,把这个GPIO设置为输出:[list=1]
*][email protected]:/sys/class/gpio/gpio22# echo out > direction
[/list]
复制代码
然后我们用echo命令操作value文件,把这个GPIO设置为低电平,继电器吸合,状态LED点亮:[list=1]
*][email protected]:/sys/class/gpio/gpio22# echo 0 > value
[/list]
复制代码
然后我们用echo命令操作value文件,把这个GPIO设置为高电平,继电器释放,状态LED熄灭:[list=1]
*][email protected]:/sys/class/gpio/gpio22# echo 1 > value
[/list]
复制代码

     <img width="600" height="0" src="http://www.eeboard.com/bbs/data/attachment/forum/201409/19/173006ih4ghsy54ckt7pz4.jpg">

相对单片机来说,香蕉的PWM似乎较弱,记得好像确实有一个,我也查查,一起学习

我现在是 没懂 GPIO到底要怎样控制,在坛子里看见忘记谁写的帖子了,能用C程序控制,但是怎么实现呢

https://bananapi.gitbooks.io/bpi-accessories/content/bpiextendboard.html

这些配件中都有使用实例 ,你可以参考一下。

十分感谢,明白了