本博文会不定时更新,主要记录在Linux开发过程中的一些细小知识点,以后后续查阅。
1.操作管脚电平
在Linux下,关于管脚的配置存在系统的 【/sys/class/gpio】目录下。其目录结构如下:
--w------- 1 root root 4096 Jan 1 00:00 export
lrwxrwxrwx 1 root root 0 Jan 1 00:00 gpio31 -> ../../devices/virtual/gpio/gpio31
lrwxrwxrwx 1 root root 0 Jan 27 19:17 gpio50 -> ../../devices/virtual/gpio/gpio50
lrwxrwxrwx 1 root root 0 Jan 1 00:00 gpiochip0 -> ../../devices/virtual/gpio/gpiochip0
lrwxrwxrwx 1 root root 0 Jan 1 00:00 gpiochip32 -> ../../devices/virtual/gpio/gpiochip32
lrwxrwxrwx 1 root root 0 Jan 1 00:00 gpiochip64 -> ../../devices/virtual/gpio/gpiochip64
lrwxrwxrwx 1 root root 0 Jan 1 00:00 gpiochip96 -> ../../devices/virtual/gpio/gpiochip96
--w------- 1 root root 4096 Jan 1 00:00 unexport
其中:
export 文件用于通知系统需要导出控制的 GPIO 引脚编号;
unexport 用于通知系统取消导出;
gpiochipX 目录保存系统中 GPIO 寄存器的信息,包括每个寄存器控制引脚的起始编号 base,寄存器名称,引脚总数;
gpioX目录保存关键的相关配置
下面通过系统命令来注册管脚并配置信息,具体命令如下:
注册管脚
echo 16 > /sys/class/gpio/export
设置管脚电平输出方向
echo out > /sys/class/gpio/gpio16/direction
direction 接受的参数可以是:in、out、high、low。其中参数 high / low 在设置方向为输出的同时,将 value 设置为相应的 1 / 0
查看管脚输出方向
cat /sys/class/gpio/gpio16/direction
设置管脚输出电平值
echo 1 > /sys/class/gpio/gpio16/value
查看管脚电平值
cat /sys/class/gpio/gpio16/value
注销管脚
echo 16 > /sys/class/gpio/unexport
关于gpio16该目录下所有文件的作用如下:
目录 | 作用 |
---|---|
active_low | 具有读写属性。用于决定value中的值是否翻转。0不翻转,1翻转 |
direction | 具有读写属性。用于查看或设置GPIO输入输出 |
edge | 具有读写属性。设备GPIO中断,或检测中断是否发生。none表示引脚为输入,不是中断引脚;rising表示引脚为中断输入,上升沿触发;falling表示引脚为中断输入,下降沿触发; both表示引脚为中断输入,边沿触发 |
subsystem | 符号链接,指向父目录。 |
uevent | 内核与udev(自动设备发现程序)之间的通讯接口 |
value | 具有读写属性。GPIO的电平状态设置或读取。 |