当前位置: 代码迷 >> 综合 >> linux应用编程1-GPIO
  详细解决方案

linux应用编程1-GPIO

热度:81   发布时间:2023-11-30 09:28:39.0

目录

1、GPIO设备驱动框架

2、文件

3、gpiochipX

3.1、GPIO编号

4、gpioX


1、GPIO设备驱动框架

通过GPIO框架注册的GPIO设备,可以通过sysfs方式进行操控。sysfs文件路径为/sys/class/gpio。

2、文件

文件夹 说明
gpiochipX

表示GPIO 控制器。

注:每一个 gpiochipX 文件夹用来管理一组 GPIO。

export

用于将指定编号的 GPIO 引脚导出。

注:并不是所有的GPIO引脚都可以成功导出,如果对应的GPIO已经在内核中被使用,则无法导出。 

unexport

将导出的 GPIO 引脚删除。

3、gpiochipX

文件 说明
base

与 gpiochipX 中的 X 相同,表示该控制器所管理的这组 GPIO 引脚中最小的编号。

注:每一个 GPIO引脚都会有一个对应的编号, Linux 下通过这个编号来操控对应的 GPIO 引脚。

label 该组 GPIO 对应的标签(名字)
ngpio

该控制器所管理的 GPIO 引脚的数量

注:引脚编号范围为base ~ base+ngpio-1

3.1、GPIO编号

对于给定的一个GPIOX_IOY引脚。

1) 当X从1开始,则其GPIO编号为:(X-1)*ngpio+Y

2) 当X从0开始,则其GPIO编号为:X*ngpio+Y

4、gpioX

将指定的编号写入到 export 文件中,可以导出指定编号的 GPIO 引脚,导出成功之后会生成/sys/class/gpio/gpioX文件夹。

direction

用于查看和配置 GPIO 引脚模式。

1)'in':输入模式

2)'out':输出模式

value

用于控制GPIO引脚电平。

1) active_low=0,value=0:低电平
2) active_low=0,value=1:高电平

3) active_low=1,value=0:高电平

4) active_low=1,value=1:低电平

active_low
edge

用于控制中断的触发模式。

1)'none':非中断引脚

2)'rising':上升沿触发

3)'falling':下降沿触发

4)'both':边沿触发