5 GPIO接口
5.1 GPIO硬件接口介绍
- GPIO General Purpose I/O Port,通用输入、输出端口。简单说就是这个端口可以配成输入的(读电平信号),也可以配成输出的(设置电平信号)
- 无论是输入还是输出都是通过寄存器来实现的
- 输入 通过读某个寄存器来确定引脚电平是高还是低,是1还是0
- 输出 通过写入某个寄存器让这个引脚输出高电平或者低电平,1或者0
- 具体的寄存器设置需要看硬件手册,这里以2440为例
- GPxCON寄存器
- GPxDAT寄存器
- GPxUP寄存器
以上是GPACON GPADAT寄存器的手册说明。
从中可以看到A组GPIO的控制和数据寄存器的地址,编码格式。
- GPACON和GPADAT都是4字节,32位的寄存器,地址分别是0x56000000 0x56000004
- GPACON的有效配置位是0到24,分别对应GPA0到GPA24,每个端口一位
- GPACON的每一个端口,配置成0表示用作output端口,配置为1代表不同的控制信号,用作各种专门的用途
- GPADAT的0到24位,对应GPA0到24,用作output端口时,管脚的电平根据寄存器的设置来输出;用作其他用途的时候根据各自的用途,芯片自动设置
- GP A组的管脚作用特殊,我们可以看下B组的控制寄存器格式,B组是通用的
这是B组的GPIO寄存器格式,用3个寄存器控制。GPBCON的控制配置,GPBDAT的数据配置,GPBUP的状态配置。 - 与A组不同,GPBCON每2位控制一个GPIO管脚,可以有4种工作方式
- 00 输入
- 01 输出
- 10 特殊功能
- 11 保留
- GPBDAT
- 对应管脚是输入管脚的时候,通过对应的寄存器位判断输入信号
- 对应管脚是输出管脚的时候,通过设置对应的寄存器位,输出信号
- GPBUP
- 0 对应的管脚使用上拉电阻