8. GPIO/I2C/SPI等通讯接囗操作示例

8.1. 对GPIO的读写操作

1.在控制台使用echo命令将要操作的GPIO编号

echo N > /sys/class/gpio/export	  //export之后就会生成
/sys/class/gpio/gpioN 	目录

2.在控制台使用echo命令设置GPIO方向

echo in > /sys/class/gpio/gpioN/direction
echo out > /sys/class/gpio/gpioN/direction 	

3.在控制台使用cat或echo命令查看GPIO输入值或设置GPIO输出值

echo N > /sys/class/gpio/export	  //export之后就会生成
/sys/class/gpio/gpioN 	目录
cat /sys/class/gpio/gpioN/value	 //查看输入值
echo 0 > /sys/class/gpio/gpioN/value  //输出低
echo 1 > /sys/class/gpio/gpioN/value  //输出高
例如,设置GPIO1_17方向:
echo 49 > /sys/class/gpio/gpioN/export
echo in > /sys/class/gpio/gpio49/direction //输入使能
cat /sys/class/gpio/gpio49/value  //查看输入值
echo out > /sys/class/gpio/gpio49/direction  //输出使能
echo 0 > /sys/class/gpio/gpio49/value  //输出低
echo 1 > /sys/class/gpio/gpio49/value  //输出高
cat /sys/class/gpio/gpio49/direction  //查看GPIO方向GPIO的电平值只有0和1。0为低电平,1为高电平。

4.在控制台使用echo命令将操作的GPIO编号unexport

echo N > /sys/class/gpio/unexport

GPIO分为#0、#1、#2、#3,每组有32个GPIO。做如下约定N为GPIO的编号,P为组号取值范围为0、1、2、3,可以得到N=p32+offset。 以GPIO1_17为例计算GPIO的编号,可以知道P=1,offset为17,N=132+17=49。