1:简介

在嵌入式系统中对GPIO的操作是最基本的操作。在Linux中有一个通用的GPIO操作方式,下面维芯科就介绍一下 /sys/class/gpio 方式。

/sys/class/gpio/下有个export文件,向export文件写入要操作的GPIO号,使得该GPIO的操作接口从内核空间暴露到用户空间,GPIO的操作接口包括directionvalue等,direction控制GPIO输入或者输出模式,而value可控制GPIO的状态或者读取状态。 

/sys/class/gpio/目录下各个文件说明:

/sys/class/gpio/export文件用于通知系统需要导出控制的GPIO引脚编号;

/sys/class/gpio/unexport   用于通知系统取消导出;

/sys/class/gpio/gpioX/direction文件,可以写入in(设置输入方向)或out(设置输出方向);

/sys/class/gpio/gpioX/value文件是可以读写GPIO状态;

/sys/class/gpio/gpiochipX目录保存系统中GPIO寄存器的信息,包括每个寄存器控制引脚的起始编号,寄存器名称,引脚总数;其中X表示具体的引脚编号。

 

1:操作GPIO

1.1: 首先计算此引脚编号

引脚编号 = 控制引脚的寄存器基数 + 控制引脚寄存器位数

举个例子: 以瑞萨G2L芯片为例子,双核A55处理器,高达1.2GHZ,工业级芯片,稳定性高,性价比好。

如果使想用 P43_2,那么引脚编号就可能等于 43 x 8 + 2 + 120 = 466

GPIO_ID = GPIO_port *   8 + GPIO_pin + 120                   

 

1.2:Export该引脚

/sys/class/gpio/export 写入此编号,比如P43_2引脚,在 shell 中可以通过以下命令实现:

root@weathink:~# echo 466 > /sys/class/gpio/export      

命令成功后生成 /sys/class/gpio/ P43_2 目录,如果没有出现相应的目录,说明此引脚不可导出。

 

1.3:设定方向

direction 文件,定义输入输入方向,可以通过下面命令定义为输出。

root@weathink:~#  echo out >   /sys/class/gpio/P43_2/direction      

 

direction 接受的参数可以是:inouthighlow。其中参数 high / low 在设置方向为输出的同时,将 value 设置为相应的 1 / 0

 

1.4:GPIO输出

value 文件是端口的数值,为10,通过下面命令将P43_2 设置为高电平。

使用echo命令来设置GPIO

root@weathink:~# echo 1 >   /sys/class/gpio/P43_2/value

root@weathink:~# echo 0 >   /sys/class/gpio/P43_2/value

 

1.5:读取GPIO

root@weathink:~# cat   /sys/class/gpio/P43_2/value         

如果返回1表示高电平,返回0表示低电平。

 

 

本文来自维芯科,转载请注明出处。


Tags: Array