1、获取GPIO芯片对应的序号值
先读取下/sys/kernel/debug/gpio的值,得到每个GPIO芯片的序号范围,如GPIO芯片0就为0~31。
2、根据GPIO硬件编号计算出系统内使用的GPIO序号
根据GPIO的编号,比如说GPIO3_B0,前面GPIO3代表看GPIO3的信息就行了,它的范围是96-127。然后A0为0,开始直接累加,每逢8就进1,比如说A7的下一个就是B0。这样就得出了GPIO3_B0转为序号就是104。既从GPIO3的第一位(96)然后数8位(B0-A0=8),96+8=104。
3、创建操作GPIO的文件节点
前面得出了序号,那么要使用的话,就需要在/sys/class/gpio/export写入该序号。比如说要操作104,就可以用命令“echo 103 > /sys/class/gpio/export”,这样/sys/class/gpio/下就会被创建出一个名为gpio104的文件。通过这个文件就可以操作GPIO3_B0(gpio104)这个GPIO脚了。
4、设置GPIO为输出还是输入
使用命令“echo out > /sys/class/gpio/gpio104/direction”可以把这个GPIO设置为输出模式。使用命令“echo in > /sys/class/gpio/gpio104/direction”可以把这个GPIO设置为输入模式。
5、设置GPIO输出的电平
如果该GPIO脚为输出模式,那么可以使用命令“echo 1 > /sys/class/gpio/gpio104/value”输出高电平,使用命令“echo 0 > /sys/class/gpio/gpio104/value”输出低电平。
6、读取GPIO输入电平
如果该GPIO脚为输入模式,那么可以使用命令“cat /sys/class/gpio/gpio104/value”读取输入的电平。如果为0则说明输入了低电平,如果为1则说明输入了高电平。
如果不想使用echo和cat命令的话,也可以直接用代码(如open或者fopen)打开文件,然后进行读写就行了。