关于linux的GPIO子系统:https://blog.csdn.net/mirkerson/article/details/8464290
用法总结:
1. 通过向文件/sys/class/gpio/export 写入io号生成相应io口的节点:
echo 204 > /sys/class/gpio/export
此时/sys/class/gpio目录下边生成一个gpio204的目录
2.通过向/sys/class/gpio/gpio204/direction 写入in 或者out 设置io口为输入或者输出:
echo in > /sys/class/gpio/gpio204/direction
3.输出模式下通过向/sys/class/gpio/gpio204/value 写入0 或者 1设置io口为低电平或者高电平:
echo 1 > /sys/class/gpio/gpio204/value
4.输入模式下通过向/sys/class/gpio/gpio204/edge 写入"none", "rising", "falling","both"设置输入口的模式:
none表示引脚为输入,不是中断引脚
rising表示引脚为中断输入,上升沿触发
falling表示引脚为中断输入,下降沿触发
both表示引脚为中断输入,边沿触发
echo both > /sys/class/gpio/gpio204/edge
为了使用poll()或者select()监听io口的变化,我们需要先把io口设置为中断模式。对于是both,falling还是rising依赖具体硬件的中断的触发方式。