1、GPIO
GPIO,通用输入输出(General Purpose I/O)的简称,其引脚可以供编程使用。
嵌入式系统中常常有数量众多,但是结构却比较简单的外部设备,对这些设备的控制,有时只需要一位控制信号就够了,即只要开/关两种状态就够了,比如灯亮与灭。
对这些设备的控制,使用传统的串行口或并行口都不合适。所以在微控制器芯片上一般都会提供一个“通用可编程IO接口”,即GPIO。
2、S3c2440 GPIO
S3c2440 GPIO有130个GPIO口,分为A~J共9组:GPA、GPB、GPC……GPJ。通过设置相应寄存器,可以选择某个GPIO口是用于输入、输出还是其他特殊功能。例如可以设置GPH6作为一般的输入、输出端口,或者用于串口。
3、操作GPIO
每组GPIO(GPA - GPJ),都可以通过3个寄存器来控制与访问,这3个寄存器分别为
GPxCON
:GPIO配置寄存器
GPxDAT
:GPIO数据寄存器
GPxUP
:上拉电阻控制寄存器
(其中x为A、B、C……H、J)
(1)GPxCON寄存器
配置(Confugure)寄存器 ---- 选择GPIO口的功能。
其中PORTA与PORTB~PORTJ在功能选择方面有所不同。GPACON中每一位对应一个IO口(共23个)。
当某位被置为1时,相应的引脚为
地址线或用于地址控制
。
PORTB~PORTJ在寄存器操作方面完全相同,GPxCON中每两位控制一根引脚:
00 表示输入
01 表示输出
10 表示特殊功能
11 保留不用

(2)GPxDAT寄存器
GPxDAT寄存器用于读/写引脚:
当引脚被设为输入时,读此寄存器可知相应引脚电平状态是高还是低;
当引脚被设为输出时,写此寄存器相应的位可令此引脚输出高电平或低电平。

(3)GPxUP寄存器
GPxUP
:某位为1时,相应引脚无内部上拉电阻;
为0时,相应的引脚使用内部上拉电阻。
(上拉电阻:由于管脚悬空比较容易受到外界的电磁干扰,因此通过一个电阻来将此管脚与高电平相连,让其固定在高电平,这样的电阻称之为上拉电阻)
