嵌入式Linux 之GPIO接口

2019-07-12 15:08发布


 

1.    GPIO介绍

GPIO的意思是通用的输入输出端口(芯片引脚) , 我们可以通过GPIO读取写入引脚的状态(输出高低电频,输入高低电频)。

2.    通过寄存器操作GPIO引脚

每个引脚都可以作为很多的功能使用。同一个引脚在同一个设置之下, 可以作为输入,输出或者其他功能。引脚的输入,可以通过读取某个寄存器来确定是高低电频,引脚的输出,可以通过写入某个寄存器来写入数据信息。每种功能都会对应着不同寄存器。当然每个引脚的功能是可以配置的,通过寄存器的进行选择。

3.    GPxCON寄存器

GPxCON寄存器用于选择配置引脚的功能。每一个端口(引脚)在功能的选择上是不同的,例如,GPACON设置引脚为 0 ,那么这个引脚就是输出引脚,当通过寄存器CPADAT写入0或者1的时候,就输出高电频或者低电频。引脚写入 00 表示输入引脚引脚写入01表示输出引脚引脚写入10表示特殊功能引脚写入11表示保留不用一般情况下 GPACON引脚是设置为1,为了方便外界访问存储寄存器。

4.    GPxDAT寄存器

CPxDAT寄存器用于端口(引脚)的读写,当这个寄存器是设置为输入时写这个寄存器可以控制引脚输出高电频或者低电频。当这个寄存器设置为输出时读取这个寄存器可以获取电频的高低状态。

5.    GPxUP寄存器

GPxUP:某位为1时,相应引脚无内部上拉电阻;为0时,相应引脚使用内部上拉电阻。上拉电阻,下拉电阻的作用在于,当GPIO的处于第三方状态,既不是高电频也不是低电频而是呈现高阻态的时候,即相当于没有接芯片,他的电频状态是由上拉电阻和下拉电阻来确定的。

6.    怎样使用软件访问硬件

单个引脚的操作无非就是三种:输出高低电频,检测引脚状态,中断。对某个引脚(通用输入输出端口)的操作一般通过读写寄存器完成。例如:可以设置GPBCON寄存器将GPB5,GPB6,GPB7,GPB8设为输出功能。然后写GPBDAT寄存器相应的位使这四个引脚输出高电频或者低电频。

7.    以总线方式访问硬件

除了通过读写寄存器访问硬件外,通过总线方式访问硬件也是很常见的操作。